diff options
author | Amith Yamasani <yamasani@google.com> | 2009-08-12 05:42:23 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2009-08-12 05:48:10 -0700 |
commit | 24bd892bdeced9cadd0ee60bbd6a9dd9c035d54b (patch) | |
tree | 6d2f4e0a46f0a11431e7d8c7db95308c86f2591c /src/com/android/settings/DevelopmentSettings.java | |
parent | 443c8e317762a4c2e7b82d421cf387a8210ebfb3 (diff) | |
download | packages_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.java | 23 |
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(); + } } |