Merge "Fix crash when rotating NFC dialog"

This commit is contained in:
Andres Morales
2015-04-24 23:19:35 +00:00
committed by Android (Google) Code Review
2 changed files with 47 additions and 8 deletions

View File

@@ -111,6 +111,7 @@ public class WifiSettings extends RestrictedSettingsFragment
// Instance state keys
private static final String SAVE_DIALOG_EDIT_MODE = "edit_mode";
private static final String SAVE_DIALOG_ACCESS_POINT_STATE = "wifi_ap_state";
private static final String SAVED_WIFI_NFC_DIALOG_STATE = "wifi_nfc_dlg_state";
private static boolean savedNetworksExist;
@@ -142,6 +143,7 @@ public class WifiSettings extends RestrictedSettingsFragment
private boolean mDlgEdit;
private AccessPoint mDlgAccessPoint;
private Bundle mAccessPointSavedState;
private Bundle mWifiNfcDialogSavedState;
private WifiTracker mWifiTracker;
@@ -209,6 +211,11 @@ public class WifiSettings extends RestrictedSettingsFragment
mAccessPointSavedState =
savedInstanceState.getBundle(SAVE_DIALOG_ACCESS_POINT_STATE);
}
if (savedInstanceState.containsKey(SAVED_WIFI_NFC_DIALOG_STATE)) {
mWifiNfcDialogSavedState =
savedInstanceState.getBundle(SAVED_WIFI_NFC_DIALOG_STATE);
}
}
// if we're supposed to enable/disable the Next button based on our current connection
@@ -350,6 +357,12 @@ public class WifiSettings extends RestrictedSettingsFragment
outState.putBundle(SAVE_DIALOG_ACCESS_POINT_STATE, mAccessPointSavedState);
}
}
if (mWifiToNfcDialog != null && mWifiToNfcDialog.isShowing()) {
Bundle savedState = new Bundle();
mWifiToNfcDialog.saveState(savedState);
outState.putBundle(SAVED_WIFI_NFC_DIALOG_STATE, savedState);
}
}
@Override
@@ -576,10 +589,15 @@ public class WifiSettings extends RestrictedSettingsFragment
case WRITE_NFC_DIALOG_ID:
if (mSelectedAccessPoint != null) {
mWifiToNfcDialog = new WriteWifiConfigToNfcDialog(
getActivity(), mSelectedAccessPoint, mWifiManager);
return mWifiToNfcDialog;
getActivity(), mSelectedAccessPoint.getConfig().networkId,
mSelectedAccessPoint.getSecurity(),
mWifiManager);
} else if (mWifiNfcDialogSavedState != null) {
mWifiToNfcDialog = new WriteWifiConfigToNfcDialog(
getActivity(), mWifiNfcDialogSavedState, mWifiManager);
}
return mWifiToNfcDialog;
}
return super.onCreateDialog(dialogId);
}