[WifiSettings] Add Wi-Fi dialog activity
Add a Wi-Fi dialog activity that can be started by setup wizard to connect to a Wi-Fi access point. Also refactored mEdit and mModify in WifiConfigController into an int-enum mMode, with modes view, connect and modify. This is how the new modes maps to the old flags: MODE_VIEW -- mEdit = false, mModify = * MODE_CONNECT -- mEdit = true, mModify = false MODE_MODIFY -- mEdit = true, mModify = true Bug: 23426311 Change-Id: I8e2221fd3c42577068e07686dab245dd5888e0ae
This commit is contained in:
@@ -112,8 +112,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
private static final int WRITE_NFC_DIALOG_ID = 6;
|
||||
|
||||
// Instance state keys
|
||||
private static final String SAVE_DIALOG_EDIT_MODE = "edit_mode";
|
||||
private static final String SAVE_DIALOG_MODIFY_MODE = "modify_mode";
|
||||
private static final String SAVE_DIALOG_MODE = "dialog_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";
|
||||
|
||||
@@ -145,8 +144,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
private boolean mEnableNextOnConnection;
|
||||
|
||||
// Save the dialog details
|
||||
private boolean mDlgModify;
|
||||
private boolean mDlgEdit;
|
||||
private int mDialogMode;
|
||||
private AccessPoint mDlgAccessPoint;
|
||||
private Bundle mAccessPointSavedState;
|
||||
private Bundle mWifiNfcDialogSavedState;
|
||||
@@ -243,8 +241,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
};
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
mDlgEdit = savedInstanceState.getBoolean(SAVE_DIALOG_EDIT_MODE);
|
||||
mDlgModify = savedInstanceState.getBoolean(SAVE_DIALOG_MODIFY_MODE);
|
||||
mDialogMode = savedInstanceState.getInt(SAVE_DIALOG_MODE);
|
||||
if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) {
|
||||
mAccessPointSavedState =
|
||||
savedInstanceState.getBundle(SAVE_DIALOG_ACCESS_POINT_STATE);
|
||||
@@ -375,8 +372,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
|
||||
// If the dialog is showing, save its state.
|
||||
if (mDialog != null && mDialog.isShowing()) {
|
||||
outState.putBoolean(SAVE_DIALOG_EDIT_MODE, mDlgEdit);
|
||||
outState.putBoolean(SAVE_DIALOG_MODIFY_MODE, mDlgModify);
|
||||
outState.putInt(SAVE_DIALOG_MODE, mDialogMode);
|
||||
if (mDlgAccessPoint != null) {
|
||||
mAccessPointSavedState = new Bundle();
|
||||
mDlgAccessPoint.saveWifiState(mAccessPointSavedState);
|
||||
@@ -504,8 +500,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
mSelectedAccessPoint.generateOpenNetworkConfig();
|
||||
connect(mSelectedAccessPoint.getConfig());
|
||||
} else {
|
||||
mDlgModify = false;
|
||||
showDialog(mSelectedAccessPoint, true);
|
||||
showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_CONNECT);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -514,8 +509,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
return true;
|
||||
}
|
||||
case MENU_ID_MODIFY: {
|
||||
mDlgModify = true;
|
||||
showDialog(mSelectedAccessPoint, true);
|
||||
showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_MODIFY);
|
||||
return true;
|
||||
}
|
||||
case MENU_ID_WRITE_NFC:
|
||||
@@ -540,11 +534,9 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
connect(mSelectedAccessPoint.getConfig());
|
||||
} else if (mSelectedAccessPoint.isSaved()){
|
||||
mDlgModify = false;
|
||||
showDialog(mSelectedAccessPoint, false);
|
||||
showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_VIEW);
|
||||
} else {
|
||||
mDlgModify = false;
|
||||
showDialog(mSelectedAccessPoint, true);
|
||||
showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_CONNECT);
|
||||
}
|
||||
} else {
|
||||
return super.onPreferenceTreeClick(screen, preference);
|
||||
@@ -552,7 +544,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
return true;
|
||||
}
|
||||
|
||||
private void showDialog(AccessPoint accessPoint, boolean edit) {
|
||||
private void showDialog(AccessPoint accessPoint, int dialogMode) {
|
||||
if (accessPoint != null) {
|
||||
WifiConfiguration config = accessPoint.getConfig();
|
||||
if (isEditabilityLockedDown(getActivity(), config) && accessPoint.isActive()) {
|
||||
@@ -587,7 +579,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
|
||||
// Save the access point and edit mode
|
||||
mDlgAccessPoint = accessPoint;
|
||||
mDlgEdit = edit;
|
||||
mDialogMode = dialogMode;
|
||||
|
||||
showDialog(WIFI_DIALOG_ID);
|
||||
}
|
||||
@@ -610,8 +602,8 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
mSelectedAccessPoint = ap;
|
||||
final boolean hideForget = (ap == null || isEditabilityLockedDown(getActivity(),
|
||||
ap.getConfig()));
|
||||
mDialog = new WifiDialog(getActivity(), this, ap, mDlgEdit,
|
||||
mDlgModify, /* no hide submit/connect */ false,
|
||||
mDialog = new WifiDialog(getActivity(), this, ap, mDialogMode,
|
||||
/* no hide submit/connect */ false,
|
||||
/* hide forget if config locked down */ hideForget);
|
||||
return mDialog;
|
||||
case WPS_PBC_DIALOG_ID:
|
||||
@@ -830,7 +822,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
&& mSelectedAccessPoint.isSaved()) {
|
||||
connect(mSelectedAccessPoint.getConfig());
|
||||
}
|
||||
} else if (configController.isModify()) {
|
||||
} else if (configController.getMode() == WifiConfigUiBase.MODE_MODIFY) {
|
||||
mWifiManager.save(config, mSaveListener);
|
||||
} else {
|
||||
mWifiManager.save(config, mSaveListener);
|
||||
@@ -891,7 +883,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
MetricsLogger.action(getActivity(), MetricsLogger.ACTION_WIFI_ADD_NETWORK);
|
||||
// No exact access point is selected.
|
||||
mSelectedAccessPoint = null;
|
||||
showDialog(null, true);
|
||||
showDialog(null, WifiConfigUiBase.MODE_CONNECT);
|
||||
}
|
||||
|
||||
/* package */ int getAccessPointsCount() {
|
||||
|
Reference in New Issue
Block a user