Fix 1956859: "Set as" is not working with the downloaded image.
diff --git a/src/com/android/camera/MenuHelper.java b/src/com/android/camera/MenuHelper.java
index dd3250a..1cb5047 100644
--- a/src/com/android/camera/MenuHelper.java
+++ b/src/com/android/camera/MenuHelper.java
@@ -579,9 +579,7 @@
                     return;
                 }
 
-                Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
-                intent.setDataAndType(u, image.getMimeType());
-                intent.putExtra("mimeType", image.getMimeType());
+                Intent intent = Util.createSetAsIntent(image);
                 activity.startActivity(Intent.createChooser(intent,
                         activity.getText(R.string.setImage)));
             }
diff --git a/src/com/android/camera/ReviewImage.java b/src/com/android/camera/ReviewImage.java
index eec57db..6061906 100644
--- a/src/com/android/camera/ReviewImage.java
+++ b/src/com/android/camera/ReviewImage.java
@@ -936,8 +936,8 @@
                 break;
             }
             case R.id.btn_set_as: {
-                Uri u = mAllImages.getImageAt(mCurrentPosition).fullSizeImageUri();
-                Intent intent = new Intent(Intent.ACTION_ATTACH_DATA, u);
+                IImage image = mAllImages.getImageAt(mCurrentPosition);
+                Intent intent = Util.createSetAsIntent(image);
                 try {
                     startActivity(Intent.createChooser(
                             intent, getText(R.string.setImage)));
diff --git a/src/com/android/camera/Util.java b/src/com/android/camera/Util.java
index 0f832cd..e3d4784 100644
--- a/src/com/android/camera/Util.java
+++ b/src/com/android/camera/Util.java
@@ -21,6 +21,7 @@
 import android.app.ProgressDialog;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
@@ -461,4 +462,13 @@
                 activity, title, message, true, false);
         new Thread(new BackgroundJob(activity, job, dialog, handler)).start();
     }
+
+    // Returns an intent which is used for "set as" menu items.
+    public static Intent createSetAsIntent(IImage image) {
+        Uri u = image.fullSizeImageUri();
+        Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
+        intent.setDataAndType(u, image.getMimeType());
+        intent.putExtra("mimeType", image.getMimeType());
+        return intent;
+    }
 }
diff --git a/src/com/android/camera/ViewImage.java b/src/com/android/camera/ViewImage.java
index dc0851f..7bf8e09 100644
--- a/src/com/android/camera/ViewImage.java
+++ b/src/com/android/camera/ViewImage.java
@@ -1003,8 +1003,8 @@
                 break;
             }
             case R.id.setas: {
-                Uri u = mAllImages.getImageAt(mCurrentPosition).fullSizeImageUri();
-                Intent intent = new Intent(Intent.ACTION_ATTACH_DATA, u);
+                IImage image = mAllImages.getImageAt(mCurrentPosition);
+                Intent intent = Util.createSetAsIntent(image);                
                 try {
                     startActivity(Intent.createChooser(
                             intent, getText(R.string.setImage)));