diff options
author | Likai Ding <likaid@codeaurora.org> | 2016-04-15 14:19:32 +0800 |
---|---|---|
committer | Likai Ding <likaid@codeaurora.org> | 2016-04-15 14:19:32 +0800 |
commit | 51b026f6ef908758662ad2689db370e897e820f5 (patch) | |
tree | 76d26ff1b9190a8a61d1d94879b58578c5cb8e17 /src/com/android/gallery3d/ui | |
parent | d2a63a15f7cccee6567502059b8555e692e96e1f (diff) | |
download | android_packages_apps_Gallery2-51b026f6ef908758662ad2689db370e897e820f5.tar.gz android_packages_apps_Gallery2-51b026f6ef908758662ad2689db370e897e820f5.tar.bz2 android_packages_apps_Gallery2-51b026f6ef908758662ad2689db370e897e820f5.zip |
Gallery: fix crash after deletion
If an image is deleted, before UI update, it can still be selected.
Add checks to avoid crash.
Change-Id: I1eaa74fb62c5f4d205b82854bc75d442bf59fee0
CRs-Fixed: 991985
Diffstat (limited to 'src/com/android/gallery3d/ui')
-rw-r--r-- | src/com/android/gallery3d/ui/MenuExecutor.java | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java index c4636cb38..e65649bcf 100644 --- a/src/com/android/gallery3d/ui/MenuExecutor.java +++ b/src/com/android/gallery3d/ui/MenuExecutor.java @@ -216,13 +216,16 @@ public class MenuExecutor { private Path getSingleSelectedPath() { ArrayList<Path> ids = mSelectionManager.getSelected(true); - Utils.assertTrue(ids.size() == 1); - return ids.get(0); + if (ids.size() != 1) + return null; + return ids.get(0); } private Intent getIntentBySingleSelectedPath(String action) { DataManager manager = mActivity.getDataManager(); Path path = getSingleSelectedPath(); + if (path == null) + return null; String mimeType = getMimeType(manager.getMediaType(path)); return new Intent(action).setDataAndType(manager.getContentUri(path), mimeType); } @@ -248,26 +251,30 @@ public class MenuExecutor { 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)); + Intent intent = getIntentBySingleSelectedPath(Intent.ACTION_EDIT); + if (intent != null) { + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + ((Activity) mActivity).startActivity(Intent.createChooser(intent, null)); + } return; } case R.id.action_setas: { - Intent intent = getIntentBySingleSelectedPath(Intent.ACTION_ATTACH_DATA) - .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - intent.putExtra("mimeType", intent.getType()); - - // DRM files can be set as wallpaper only. Don't show other options - // to set as. - Uri uri = intent.getData(); + Intent intent = getIntentBySingleSelectedPath(Intent.ACTION_ATTACH_DATA); + if (intent != null) { + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.putExtra("mimeType", intent.getType()); + + // DRM files can be set as wallpaper only. Don't show other options + // to set as. + Uri uri = intent.getData(); // if (DrmHelper.isDrmFile(DrmHelper.getFilePath(mActivity, uri))) { // intent.setPackage("com.android.gallery3d"); // } - Activity activity = mActivity; - activity.startActivity(Intent.createChooser( - intent, activity.getString(R.string.set_as))); + Activity activity = mActivity; + activity.startActivity(Intent.createChooser( + intent, activity.getString(R.string.set_as))); + } return; } case R.id.action_delete: |