import android.app.Activity;
import android.app.AlertDialog;
+import android.app.Dialog;
import android.app.SearchManager;
import android.content.BroadcastReceiver;
import android.content.Context;
private boolean mExitFlag = false;
private long mExitBackTimeout = -1;
+ private Dialog mActiveDialog = null;
+
private int mOrientation;
/**
Log.d(TAG, "NavigationActivity.onDestroy"); //$NON-NLS-1$
}
+ if (mActiveDialog != null && mActiveDialog.isShowing()) {
+ mActiveDialog.dismiss();
+ }
+
// Unregister the receiver
try {
unregisterReceiver(this.mNotificationReceiver);
theme.setImageDrawable(this, (ButtonItem) v, "ab_delete_drawable"); //$NON-NLS-1$
}
+ public void updateActiveDialog(Dialog dialog) {
+ mActiveDialog = dialog;
+ }
}
package com.cyanogenmod.filemanager.util;
+import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.Toast;
import com.cyanogenmod.filemanager.R;
+import com.cyanogenmod.filemanager.activities.NavigationActivity;
import com.cyanogenmod.filemanager.adapters.CheckableListAdapter;
import com.cyanogenmod.filemanager.ui.ThemeManager;
import com.cyanogenmod.filemanager.ui.ThemeManager.Theme;
* @param dialog The dialog to show
*/
public static void delegateDialogShow(Context context, AlertDialog dialog) {
- // Show the dialog
- dialog.show();
+ boolean isActivityFinishing = false;
+ if (context instanceof Activity) {
+ Activity activity = (Activity) context;
+ if (activity instanceof NavigationActivity) {
+ ((NavigationActivity) activity).updateActiveDialog(dialog);
+ }
+ isActivityFinishing = activity.isFinishing();
+ }
+
+ if (!isActivityFinishing) {
+ // Show the dialog
+ dialog.show();
+ }
// Apply theme
Theme theme = ThemeManager.getCurrentTheme(context);