summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DevelopmentSettings.java
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2009-08-12 05:42:23 -0700
committerAmith Yamasani <yamasani@google.com>2009-08-12 05:48:10 -0700
commit24bd892bdeced9cadd0ee60bbd6a9dd9c035d54b (patch)
tree6d2f4e0a46f0a11431e7d8c7db95308c86f2591c /src/com/android/settings/DevelopmentSettings.java
parent443c8e317762a4c2e7b82d421cf387a8210ebfb3 (diff)
downloadpackages_apps_Settings-24bd892bdeced9cadd0ee60bbd6a9dd9c035d54b.zip
packages_apps_Settings-24bd892bdeced9cadd0ee60bbd6a9dd9c035d54b.tar.gz
packages_apps_Settings-24bd892bdeced9cadd0ee60bbd6a9dd9c035d54b.tar.bz2
Fix a dialog leak. #1792635
Fixes the dialog leak when switching orientation in Development settings.
Diffstat (limited to 'src/com/android/settings/DevelopmentSettings.java')
-rw-r--r--src/com/android/settings/DevelopmentSettings.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index c1da18a..e9e57b3 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -17,6 +17,7 @@
package com.android.settings;
import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.DialogInterface;
import android.os.BatteryManager;
import android.os.Bundle;
@@ -45,6 +46,8 @@ public class DevelopmentSettings extends PreferenceActivity
// To track whether Yes was clicked in the adb warning dialog
private boolean mOkClicked;
+ private Dialog mOkDialog;
+
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -80,14 +83,15 @@ public class DevelopmentSettings extends PreferenceActivity
if (preference == mEnableAdb) {
if (mEnableAdb.isChecked()) {
mOkClicked = false;
- new AlertDialog.Builder(this).setMessage(
+ if (mOkDialog != null) dismissDialog();
+ mOkDialog = new AlertDialog.Builder(this).setMessage(
getResources().getString(R.string.adb_warning_message))
.setTitle(R.string.adb_warning_title)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.yes, this)
.setNegativeButton(android.R.string.no, this)
- .show()
- .setOnDismissListener(this);
+ .show();
+ mOkDialog.setOnDismissListener(this);
} else {
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0);
}
@@ -99,10 +103,15 @@ public class DevelopmentSettings extends PreferenceActivity
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION,
mAllowMockLocation.isChecked() ? 1 : 0);
}
-
+
return false;
}
+ private void dismissDialog() {
+ mOkDialog.dismiss();
+ mOkDialog = null;
+ }
+
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
mOkClicked = true;
@@ -119,4 +128,10 @@ public class DevelopmentSettings extends PreferenceActivity
mEnableAdb.setChecked(false);
}
}
+
+ @Override
+ public void onDestroy() {
+ dismissDialog();
+ super.onDestroy();
+ }
}