summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorYuli Huang <yuli@google.com>2012-05-02 03:46:19 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-05-02 03:46:19 -0700
commitf9c34e21b209b2dda131a26a4dd09096eaeb4277 (patch)
treed8fb41f66e347cc40c1d5a4e61313dba7fa4c6dd /src/com/android
parent3e0f230725d1dd8e1f451fb3a1c81e0ad3a07dc0 (diff)
parentfe2b997fbbc24d9bb118bf5cb9d36d3b2f38663d (diff)
downloadandroid_packages_apps_Gallery2-f9c34e21b209b2dda131a26a4dd09096eaeb4277.tar.gz
android_packages_apps_Gallery2-f9c34e21b209b2dda131a26a4dd09096eaeb4277.tar.bz2
android_packages_apps_Gallery2-f9c34e21b209b2dda131a26a4dd09096eaeb4277.zip
am fe2b997f: am f50ce2b7: Fix \'Edit\' and \'Crop\' behaviors.
* commit 'fe2b997fbbc24d9bb118bf5cb9d36d3b2f38663d': Fix 'Edit' and 'Crop' behaviors.
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/gallery3d/app/PhotoDataAdapter.java2
-rw-r--r--src/com/android/gallery3d/app/PhotoPage.java43
-rw-r--r--src/com/android/gallery3d/photoeditor/PhotoEditor.java2
-rw-r--r--src/com/android/gallery3d/ui/MenuExecutor.java50
4 files changed, 48 insertions, 49 deletions
diff --git a/src/com/android/gallery3d/app/PhotoDataAdapter.java b/src/com/android/gallery3d/app/PhotoDataAdapter.java
index 86ef04d17..d5a4efd6c 100644
--- a/src/com/android/gallery3d/app/PhotoDataAdapter.java
+++ b/src/com/android/gallery3d/app/PhotoDataAdapter.java
@@ -598,7 +598,6 @@ public class PhotoDataAdapter implements PhotoPage.Model {
}
} else {
entry = new ImageEntry();
- entry.rotation = item.getFullImageRotation();
mImageCache.put(version, entry);
}
}
@@ -658,7 +657,6 @@ public class PhotoDataAdapter implements PhotoPage.Model {
private static class ImageEntry {
public int requestedBits = 0;
- public int rotation;
public BitmapRegionDecoder fullImage;
public ScreenNail screenNail;
public Future<ScreenNail> screenNailTask;
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index a237cbac3..d7936e24f 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -43,7 +43,6 @@ import com.android.gallery3d.data.MediaObject;
import com.android.gallery3d.data.MediaSet;
import com.android.gallery3d.data.MtpDevice;
import com.android.gallery3d.data.Path;
-import com.android.gallery3d.data.SnailItem;
import com.android.gallery3d.data.SnailSource;
import com.android.gallery3d.picasasource.PicasaSource;
import com.android.gallery3d.ui.DetailsHelper;
@@ -75,6 +74,7 @@ public class PhotoPage extends ActivityState implements
private static final int REQUEST_SLIDESHOW = 1;
private static final int REQUEST_CROP = 2;
private static final int REQUEST_CROP_PICASA = 3;
+ private static final int REQUEST_EDIT = 4;
public static final String KEY_MEDIA_SET_PATH = "media-set-path";
public static final String KEY_MEDIA_ITEM_PATH = "media-item-path";
@@ -520,6 +520,14 @@ public class PhotoPage extends ActivityState implements
: REQUEST_CROP);
return true;
}
+ case R.id.action_edit: {
+ Intent intent = new Intent(Intent.ACTION_EDIT)
+ .setData(manager.getContentUri(path))
+ .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ ((Activity) mActivity).startActivityForResult(Intent.createChooser(intent, null),
+ REQUEST_EDIT);
+ return true;
+ }
case R.id.action_details: {
if (mShowDetails) {
hideDetails();
@@ -534,7 +542,6 @@ public class PhotoPage extends ActivityState implements
case R.id.action_rotate_ccw:
case R.id.action_rotate_cw:
case R.id.action_show_on_map:
- case R.id.action_edit:
mSelectionManager.deSelectAll();
mSelectionManager.toggle(path);
mMenuExecutor.onMenuClicked(item, needsConfirm, null);
@@ -633,26 +640,34 @@ public class PhotoPage extends ActivityState implements
}
}
+ private void setCurrentPhotoByIntent(Intent intent) {
+ if (intent == null) return;
+ Path path = mApplication.getDataManager()
+ .findPathByUri(intent.getData(), intent.getType());
+ if (path != null) {
+ mModel.setCurrentPhoto(path, mCurrentIndex);
+ }
+ }
+
@Override
protected void onStateResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
+ case REQUEST_EDIT:
+ setCurrentPhotoByIntent(data);
+ break;
case REQUEST_CROP:
if (resultCode == Activity.RESULT_OK) {
- if (data == null) break;
- Path path = mApplication.getDataManager()
- .findPathByUri(data.getData(), data.getType());
- if (path != null) {
- mModel.setCurrentPhoto(path, mCurrentIndex);
- }
+ setCurrentPhotoByIntent(data);
}
break;
case REQUEST_CROP_PICASA: {
- Context context = mActivity.getAndroidContext();
- // TODO: Use crop_saved instead of photo_saved after its new translation is done.
- String message = resultCode == Activity.RESULT_OK ? context.getString(
- R.string.photo_saved, context.getString(R.string.folder_download))
- : context.getString(R.string.crop_not_saved);
- Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
+ if (resultCode == Activity.RESULT_OK) {
+ Context context = mActivity.getAndroidContext();
+ // TODO: Use crop_saved instead of photo_saved after its new translation is done.
+ String message = context.getString(R.string.photo_saved,
+ context.getString(R.string.folder_download));
+ Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
+ }
break;
}
case REQUEST_SLIDESHOW: {
diff --git a/src/com/android/gallery3d/photoeditor/PhotoEditor.java b/src/com/android/gallery3d/photoeditor/PhotoEditor.java
index 19e49c4a1..4359cf6ed 100644
--- a/src/com/android/gallery3d/photoeditor/PhotoEditor.java
+++ b/src/com/android/gallery3d/photoeditor/PhotoEditor.java
@@ -195,10 +195,12 @@ public class PhotoEditor extends Activity {
@Override
public void run() {
+ // Discard unsaved photo for the result.
finish();
}
}, R.string.save_photo).show();
} else {
+ setResult(RESULT_OK, new Intent().setData(saveUri));
finish();
}
}
diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java
index a052c500d..636da3985 100644
--- a/src/com/android/gallery3d/ui/MenuExecutor.java
+++ b/src/com/android/gallery3d/ui/MenuExecutor.java
@@ -27,7 +27,6 @@ import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
-import android.widget.Toast;
import com.android.gallery3d.R;
import com.android.gallery3d.app.CropImage;
@@ -175,9 +174,15 @@ public class MenuExecutor {
return ids.get(0);
}
+ private Intent getIntentBySingleSelectedPath(String action) {
+ DataManager manager = mActivity.getDataManager();
+ Path path = getSingleSelectedPath();
+ String mimeType = getMimeType(manager.getMediaType(path));
+ return new Intent(action).setDataAndType(manager.getContentUri(path), mimeType);
+ }
+
private void onMenuClicked(int action, ProgressListener listener) {
int title;
- DataManager manager = mActivity.getDataManager();
switch (action) {
case R.id.action_select_all:
if (mSelectionManager.inSelectAllMode()) {
@@ -187,21 +192,20 @@ public class MenuExecutor {
}
return;
case R.id.action_crop: {
- Path path = getSingleSelectedPath();
- String mimeType = getMimeType(manager.getMediaType(path));
- Intent intent = new Intent(CropImage.ACTION_CROP)
- .setDataAndType(manager.getContentUri(path), mimeType);
+ Intent intent = getIntentBySingleSelectedPath(CropImage.ACTION_CROP);
((Activity) mActivity).startActivity(intent);
return;
}
+ case R.id.action_edit: {
+ Intent intent = getIntentBySingleSelectedPath(Intent.ACTION_EDIT)
+ .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ ((Activity) mActivity).startActivity(Intent.createChooser(intent, null));
+ return;
+ }
case R.id.action_setas: {
- Path path = getSingleSelectedPath();
- int type = manager.getMediaType(path);
- Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
- String mimeType = getMimeType(type);
- intent.setDataAndType(manager.getContentUri(path), mimeType);
- intent.putExtra("mimeType", mimeType);
- intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ Intent intent = getIntentBySingleSelectedPath(Intent.ACTION_ATTACH_DATA)
+ .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ intent.putExtra("mimeType", intent.getType());
Activity activity = (Activity) mActivity;
activity.startActivity(Intent.createChooser(
intent, activity.getString(R.string.set_as)));
@@ -219,9 +223,6 @@ public class MenuExecutor {
case R.id.action_show_on_map:
title = R.string.show_on_map;
break;
- case R.id.action_edit:
- title = R.string.edit;
- break;
case R.id.action_import:
title = R.string.Import;
break;
@@ -310,23 +311,6 @@ public class MenuExecutor {
result = obj.Import();
break;
}
- case R.id.action_edit: {
- Activity activity = (Activity) mActivity;
- MediaItem item = (MediaItem) manager.getMediaObject(path);
- try {
- activity.startActivity(Intent.createChooser(
- new Intent(Intent.ACTION_EDIT)
- .setDataAndType(item.getContentUri(), item.getMimeType())
- .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION),
- null));
- } catch (Throwable t) {
- Log.w(TAG, "failed to start edit activity: ", t);
- Toast.makeText(activity,
- activity.getString(R.string.activity_not_found),
- Toast.LENGTH_SHORT).show();
- }
- break;
- }
default:
throw new AssertionError();
}