diff options
author | yongga <yongga@codeaurora.org> | 2016-01-12 14:23:17 +0800 |
---|---|---|
committer | Zhao Wei Liew <zhaoweiliew@gmail.com> | 2016-10-28 12:10:56 +0800 |
commit | 5afe58bbb2af4045b122a138438b4018486456a9 (patch) | |
tree | 493f699356c68ffc46716ca34cd1fcece8e2f5e6 | |
parent | 59c9f1911dab44b95fa60a18cfeed6d0264a2f2e (diff) | |
download | android_packages_apps_CMFileManager-5afe58bbb2af4045b122a138438b4018486456a9.tar.gz android_packages_apps_CMFileManager-5afe58bbb2af4045b122a138438b4018486456a9.tar.bz2 android_packages_apps_CMFileManager-5afe58bbb2af4045b122a138438b4018486456a9.zip |
CMFileManager: Do not create multiple action dialogs
Multiple instances of ActionsDialog are created if the user
clicks the menu too quickly.
Do not create an instance if a dialog has already been displayed.
CRs-Fixed: 960229, 970649
Change-Id: I610331cf71cb1b59aef6f89d8fdcb1c6ccda6044
-rwxr-xr-x | src/com/cyanogenmod/filemanager/activities/NavigationActivity.java | 12 | ||||
-rw-r--r-- | src/com/cyanogenmod/filemanager/ui/dialogs/ActionsDialog.java | 10 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java index e1e4a35f..cc9ecce5 100755 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -207,6 +207,7 @@ public class NavigationActivity extends Activity private InputMethodManager mImm; private FilesystemInfoDialog.OnConfigChangeListener mOnConfigChangeListener; private ListPopupWindow mPopupWindow; + private ActionsDialog mActionsDialog; private final BroadcastReceiver mNotificationReceiver = new BroadcastReceiver() { @Override @@ -2526,10 +2527,13 @@ public class NavigationActivity extends Activity // For this to work, SecureConsole NEEDS to be refactored. // Show the dialog - ActionsDialog dialog = new ActionsDialog(this, this, item, global, false); - dialog.setOnRequestRefreshListener(this); - dialog.setOnSelectionListener(getCurrentNavigationView()); - dialog.show(); + if (mActionsDialog != null && mActionsDialog.isShowing()) { + return; + } + mActionsDialog = new ActionsDialog(this, this, item, global, false); + mActionsDialog.setOnRequestRefreshListener(this); + mActionsDialog.setOnSelectionListener(getCurrentNavigationView()); + mActionsDialog.show(); } /** diff --git a/src/com/cyanogenmod/filemanager/ui/dialogs/ActionsDialog.java b/src/com/cyanogenmod/filemanager/ui/dialogs/ActionsDialog.java index 753c382f..4d0c436a 100644 --- a/src/com/cyanogenmod/filemanager/ui/dialogs/ActionsDialog.java +++ b/src/com/cyanogenmod/filemanager/ui/dialogs/ActionsDialog.java @@ -199,6 +199,16 @@ public class ActionsDialog implements OnItemClickListener, OnItemLongClickListen } /** + * Method that judges whether the dialog is showing. + */ + public boolean isShowing() { + if (this.mDialog != null) { + return this.mDialog.isShowing(); + } + return false; + } + + /** * {@inheritDoc} */ @Override |