diff options
author | Bobby Georgescu <georgescu@google.com> | 2013-01-28 16:16:44 -0800 |
---|---|---|
committer | Bobby Georgescu <georgescu@google.com> | 2013-01-28 16:16:44 -0800 |
commit | d00f521a3138a8f244c91748b0277290edbf61f6 (patch) | |
tree | 444e1cc89d08f91da1701fadfcab3c181fb73863 /src/com/android/gallery3d/ui | |
parent | ca593b02ab6a3054f625878621ee5117953f7385 (diff) | |
download | android_packages_apps_Gallery2-d00f521a3138a8f244c91748b0277290edbf61f6.tar.gz android_packages_apps_Gallery2-d00f521a3138a8f244c91748b0277290edbf61f6.tar.bz2 android_packages_apps_Gallery2-d00f521a3138a8f244c91748b0277290edbf61f6.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.java | 14 |
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 : |