import android.app.Dialog;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.net.ConnectivityManager;
@SearchIndexable
public class WifiSettings extends RestrictedSettingsFragment
implements Indexable, WifiTracker.WifiListener, AccessPointListener,
- WifiDialog.WifiDialogListener {
+ WifiDialog.WifiDialogListener, DialogInterface.OnDismissListener {
private static final String TAG = "WifiSettings";
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
-
- // If the dialog is showing, save its state.
- if (mDialog != null && mDialog.isShowing()) {
+ // If dialog has been shown, save its state.
+ if (mDialog != null) {
outState.putInt(SAVE_DIALOG_MODE, mDialogMode);
if (mDlgAccessPoint != null) {
mAccessPointSavedState = new Bundle();
}
@Override
+ public void onDialogShowing() {
+ super.onDialogShowing();
+ setOnDismissListener(this);
+ }
+
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ // We don't keep any dialog object when dialog was dismissed.
+ mDialog = null;
+ }
+
+ @Override
public int getDialogMetricsCategory(int dialogId) {
switch (dialogId) {
case WIFI_DIALOG_ID: