aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryongga <yongga@codeaurora.org>2016-01-12 14:23:17 +0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-10-26 17:14:49 -0700
commitc53dafc44136ab32f1ae4a9cb4156b12cf72815d (patch)
treea98310763714686c5e82c33212351a7c63cc9e6b
parente62ef71f279e076acd136dad954003c83bfdda52 (diff)
downloadandroid_packages_apps_CMFileManager-c53dafc44136ab32f1ae4a9cb4156b12cf72815d.tar.gz
android_packages_apps_CMFileManager-c53dafc44136ab32f1ae4a9cb4156b12cf72815d.tar.bz2
android_packages_apps_CMFileManager-c53dafc44136ab32f1ae4a9cb4156b12cf72815d.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-xsrc/com/cyanogenmod/filemanager/activities/NavigationActivity.java12
-rw-r--r--src/com/cyanogenmod/filemanager/ui/dialogs/ActionsDialog.java10
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 675a8745..fa165c4c 100755
--- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
+++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
@@ -208,6 +208,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
@@ -2530,10 +2531,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