diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/gallery3d/ui/ActionModeHandler.java | 2 | ||||
| -rw-r--r-- | src/com/android/gallery3d/ui/MenuExecutor.java | 10 | ||||
| -rw-r--r-- | src/com/android/gallery3d/ui/SelectionMenu.java | 6 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/ui/ActionModeHandler.java b/src/com/android/gallery3d/ui/ActionModeHandler.java index 4765c6838..04d361a19 100644 --- a/src/com/android/gallery3d/ui/ActionModeHandler.java +++ b/src/com/android/gallery3d/ui/ActionModeHandler.java @@ -138,6 +138,7 @@ public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickLi } public void startActionMode() { + mMenuExecutor.setLeaving(false); Activity a = mActivity; // mActionMode = a.startActionMode(this); mActionMode = mActivity.getToolbar().startActionMode(this); @@ -213,6 +214,7 @@ public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickLi if (itemId == R.id.action_select_all) { updateSupportedOperation(); mMenuExecutor.onMenuClicked(itemId, null, false, true); + mSelectionMenu.setLeaving(mMenuExecutor.isLeaving()); } return true; } finally { diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java index c57e848e3..8f3409131 100644 --- a/src/com/android/gallery3d/ui/MenuExecutor.java +++ b/src/com/android/gallery3d/ui/MenuExecutor.java @@ -67,6 +67,7 @@ public class MenuExecutor { // wait the operation to finish when we want to stop it. private boolean mWaitOnStop; private boolean mPaused; + private boolean isLeaving = false; private final AbstractGalleryActivity mActivity; private final SelectionManager mSelectionManager; @@ -233,6 +234,14 @@ public class MenuExecutor { return new Intent(action).setDataAndType(manager.getContentUri(path), mimeType); } + public void setLeaving(boolean leaving) { + isLeaving = leaving; + } + + public boolean isLeaving() { + return isLeaving; + } + private void onMenuClicked(int action, ProgressListener listener) { onMenuClicked(action, listener, false, true); } @@ -243,6 +252,7 @@ public class MenuExecutor { switch (action) { case R.id.action_select_all: if (mSelectionManager.inSelectAllMode()) { + isLeaving = true; mSelectionManager.deSelectAll(); } else { mSelectionManager.selectAll(); diff --git a/src/com/android/gallery3d/ui/SelectionMenu.java b/src/com/android/gallery3d/ui/SelectionMenu.java index 4ee60b437..07815cd80 100644 --- a/src/com/android/gallery3d/ui/SelectionMenu.java +++ b/src/com/android/gallery3d/ui/SelectionMenu.java @@ -31,6 +31,7 @@ public class SelectionMenu implements OnClickListener { private final Context mContext; private final Button mButton; private final PopupList mPopupList; + private boolean isLeaving = false; public SelectionMenu(Context context, Button button, OnPopupItemClickListener listener) { mContext = context; @@ -44,6 +45,7 @@ public class SelectionMenu implements OnClickListener { @Override public void onClick(View v) { + if (isLeaving) return; mPopupList.show(); } @@ -58,4 +60,8 @@ public class SelectionMenu implements OnClickListener { public void setTitle(CharSequence title) { mButton.setText(title); } + + public void setLeaving(boolean leaving) { + isLeaving = leaving; + } } |
