summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/ui
diff options
context:
space:
mode:
authorBobby Georgescu <georgescu@google.com>2013-01-28 16:16:44 -0800
committerBobby Georgescu <georgescu@google.com>2013-01-28 16:16:44 -0800
commit248c7e912dbddaeeeec52e4602a319976d24dddb (patch)
tree58de16cd49bf60754645e9a1bd0337ced8524379 /src/com/android/gallery3d/ui
parent07e9353082b6b0d41c8ec33efa9aa6e8c2633202 (diff)
downloadandroid_packages_apps_Snap-248c7e912dbddaeeeec52e4602a319976d24dddb.tar.gz
android_packages_apps_Snap-248c7e912dbddaeeeec52e4602a319976d24dddb.tar.bz2
android_packages_apps_Snap-248c7e912dbddaeeeec52e4602a319976d24dddb.zip
Fix ANRs due to waiting for IO on UI thread
Bug: 7998915 Change-Id: I938145a7072170f713099a04578f98951b35cbab
Diffstat (limited to 'src/com/android/gallery3d/ui')
-rw-r--r--src/com/android/gallery3d/ui/MenuExecutor.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java
index 28fd71e10..497632f5e 100644
--- a/src/com/android/gallery3d/ui/MenuExecutor.java
+++ b/src/com/android/gallery3d/ui/MenuExecutor.java
@@ -132,7 +132,6 @@ public class MenuExecutor {
private void stopTaskAndDismissDialog() {
if (mTask != null) {
if (!mWaitOnStop) mTask.cancel();
- mTask.waitDone();
if (mDialog != null && mDialog.isShowing()) mDialog.dismiss();
mDialog = null;
mTask = null;
@@ -334,15 +333,26 @@ public class MenuExecutor {
stopTaskAndDismissDialog();
Activity activity = mActivity;
- mDialog = createProgressDialog(activity, title, ids.size());
if (showDialog) {
+ mDialog = createProgressDialog(activity, title, ids.size());
mDialog.show();
+ } else {
+ mDialog = null;
}
MediaOperation operation = new MediaOperation(action, ids, listener);
mTask = mActivity.getBatchServiceThreadPoolIfAvailable().submit(operation, null);
mWaitOnStop = waitOnStop;
}
+ public void startSingleItemAction(int action, Path targetPath) {
+ ArrayList<Path> ids = new ArrayList<Path>(1);
+ ids.add(targetPath);
+ mDialog = null;
+ MediaOperation operation = new MediaOperation(action, ids, null);
+ mTask = mActivity.getBatchServiceThreadPoolIfAvailable().submit(operation, null);
+ mWaitOnStop = false;
+ }
+
public static String getMimeType(int type) {
switch (type) {
case MediaObject.MEDIA_TYPE_IMAGE :