diff options
author | Bobby Georgescu <georgescu@google.com> | 2012-12-03 13:56:00 -0800 |
---|---|---|
committer | Bobby Georgescu <georgescu@google.com> | 2012-12-03 16:15:54 -0800 |
commit | 32f5fee98df0e2f4b30475bb2d04e5fafa969727 (patch) | |
tree | 846c279a0fa07dc59df716cc52cba178b7b11168 /src/com/android/gallery3d/ui | |
parent | 8d26578f8db895dadb7e0e1d7a56c00fa18183ec (diff) | |
download | android_packages_apps_Snap-32f5fee98df0e2f4b30475bb2d04e5fafa969727.tar.gz android_packages_apps_Snap-32f5fee98df0e2f4b30475bb2d04e5fafa969727.tar.bz2 android_packages_apps_Snap-32f5fee98df0e2f4b30475bb2d04e5fafa969727.zip |
Move MenuExecutor operations into Service
Bug: 6680729
Change-Id: I538bb0a8783f7c1ff467ba8d8eb0deefdc0b6ea2
Diffstat (limited to 'src/com/android/gallery3d/ui')
-rw-r--r-- | src/com/android/gallery3d/ui/ActionModeHandler.java | 5 | ||||
-rw-r--r-- | src/com/android/gallery3d/ui/MenuExecutor.java | 17 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/ui/ActionModeHandler.java b/src/com/android/gallery3d/ui/ActionModeHandler.java index 0a3318d8d..d90fc20d0 100644 --- a/src/com/android/gallery3d/ui/ActionModeHandler.java +++ b/src/com/android/gallery3d/ui/ActionModeHandler.java @@ -475,7 +475,12 @@ public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickLi mMenuExecutor.pause(); } + public void destroy() { + mMenuExecutor.destroy(); + } + public void resume() { if (mSelectionManager.inSelectionMode()) updateSupportedOperation(); + mMenuExecutor.resume(); } } diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java index 3d088d18a..847ec8953 100644 --- a/src/com/android/gallery3d/ui/MenuExecutor.java +++ b/src/com/android/gallery3d/ui/MenuExecutor.java @@ -63,6 +63,7 @@ public class MenuExecutor { private Future<?> mTask; // wait the operation to finish when we want to stop it. private boolean mWaitOnStop; + private boolean mPaused; private final AbstractGalleryActivity mActivity; private final SelectionManager mSelectionManager; @@ -114,7 +115,7 @@ public class MenuExecutor { break; } case MSG_TASK_UPDATE: { - if (mDialog != null) mDialog.setProgress(message.arg1); + if (mDialog != null && !mPaused) mDialog.setProgress(message.arg1); if (message.obj != null) { ProgressListener listener = (ProgressListener) message.obj; listener.onProgressUpdate(message.arg1); @@ -134,13 +135,23 @@ public class MenuExecutor { if (mTask != null) { if (!mWaitOnStop) mTask.cancel(); mTask.waitDone(); - mDialog.dismiss(); + if (mDialog != null && mDialog.isShowing()) mDialog.dismiss(); mDialog = null; mTask = null; } } + public void resume() { + mPaused = false; + if (mDialog != null) mDialog.show(); + } + public void pause() { + mPaused = true; + if (mDialog != null && mDialog.isShowing()) mDialog.hide(); + } + + public void destroy() { stopTaskAndDismissDialog(); } @@ -335,7 +346,7 @@ public class MenuExecutor { mDialog.show(); } MediaOperation operation = new MediaOperation(action, ids, listener); - mTask = mActivity.getThreadPool().submit(operation, null); + mTask = mActivity.getBatchServiceThreadPoolIfAvailable().submit(operation, null); mWaitOnStop = waitOnStop; } |