diff options
author | Sanket Padawe <sanketpadawe@google.com> | 2015-07-24 13:52:03 -0700 |
---|---|---|
committer | Sanket Padawe <sanketpadawe@google.com> | 2015-07-24 13:52:03 -0700 |
commit | 3bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3 (patch) | |
tree | dab52b84ae7179d8dab2cf11b6e41d607faa65e5 /src/com/android/settings/wifi | |
parent | 32b96646eec917987fdd38208c6b11a9bc8832d3 (diff) | |
download | packages_apps_Settings-3bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3.zip packages_apps_Settings-3bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3.tar.gz packages_apps_Settings-3bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3.tar.bz2 |
Fix issues in AP dialog arising after clicking on AP preferences.
+Added a new flag to keep track if user wanted to modify AP by hard
pressing on AP.
Bug: 22485686
Change-Id: Ia60a564a5344393f5e5340a3493ae7c660ead3d7
Diffstat (limited to 'src/com/android/settings/wifi')
4 files changed, 35 insertions, 26 deletions
diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java index 72abe1e..45aafdf 100644 --- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java +++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java @@ -147,7 +147,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment final boolean hideForgetButton = WifiSettings.isEditabilityLockedDown(getActivity(), mDlgAccessPoint.getConfig()); mDialog = new WifiDialog(getActivity(), this, mDlgAccessPoint, - false /* not editting */, true /* hide the submit button */, + false /* not editting */, false, true /* hide the submit button */, hideForgetButton); return mDialog; diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index f3f0ccb..1a4b1dd 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -142,12 +142,14 @@ public class WifiConfigController implements TextWatcher, private String[] mLevels; private boolean mEdit; + private boolean mModify; private TextView mSsidView; private Context mContext; public WifiConfigController( - WifiConfigUiBase parent, View view, AccessPoint accessPoint, boolean edit) { + WifiConfigUiBase parent, View view, AccessPoint accessPoint, boolean edit, + boolean modify) { mConfigUi = parent; mView = view; @@ -155,6 +157,7 @@ public class WifiConfigController implements TextWatcher, mAccessPointSecurity = (accessPoint == null) ? AccessPoint.SECURITY_NONE : accessPoint.getSecurity(); mEdit = edit; + mModify = modify; mTextViewChangedHandler = new Handler(); mContext = mConfigUi.getContext(); @@ -245,7 +248,7 @@ public class WifiConfigController implements TextWatcher, } } - if (mEdit) { + if (mModify) { mConfigUi.setSubmitButton(res.getString(R.string.wifi_save)); } else { final DetailedState state = mAccessPoint.getDetailedState(); @@ -303,12 +306,7 @@ public class WifiConfigController implements TextWatcher, } } - if ((mEdit) || (mAccessPoint != null - && mAccessPoint.getDetailedState() == null && mAccessPoint.getLevel() != -1)){ - mConfigUi.setCancelButton(res.getString(R.string.wifi_cancel)); - }else{ - mConfigUi.setCancelButton(res.getString(R.string.wifi_display_options_done)); - } + mConfigUi.setCancelButton(res.getString(R.string.wifi_cancel)); if (mConfigUi.getSubmitButton() != null) { enableSubmitIfAppropriate(); } @@ -370,7 +368,7 @@ public class WifiConfigController implements TextWatcher, } /* package */ WifiConfiguration getConfig() { - if (mAccessPoint != null && mAccessPoint.isSaved() && !mEdit) { + if (!mEdit) { return null; } @@ -953,6 +951,10 @@ public class WifiConfigController implements TextWatcher, return mEdit; } + public boolean isModify() { + return mModify; + } + @Override public void afterTextChanged(Editable s) { mTextViewChangedHandler.post(new Runnable() { diff --git a/src/com/android/settings/wifi/WifiDialog.java b/src/com/android/settings/wifi/WifiDialog.java index c18baf5..d052c95 100644 --- a/src/com/android/settings/wifi/WifiDialog.java +++ b/src/com/android/settings/wifi/WifiDialog.java @@ -31,6 +31,7 @@ class WifiDialog extends AlertDialog implements WifiConfigUiBase { static final int BUTTON_FORGET = DialogInterface.BUTTON_NEUTRAL; private final boolean mEdit; + private final boolean mModify; private final DialogInterface.OnClickListener mListener; private final AccessPoint mAccessPoint; @@ -40,17 +41,18 @@ class WifiDialog extends AlertDialog implements WifiConfigUiBase { private boolean mHideForgetButton; public WifiDialog(Context context, DialogInterface.OnClickListener listener, - AccessPoint accessPoint, boolean edit, boolean hideSubmitButton, - boolean hideForgetButton) { - this(context, listener, accessPoint, edit); + AccessPoint accessPoint, boolean edit, boolean modify, + boolean hideSubmitButton, boolean hideForgetButton) { + this(context, listener, accessPoint, edit, modify); mHideSubmitButton = hideSubmitButton; mHideForgetButton = hideForgetButton; } public WifiDialog(Context context, DialogInterface.OnClickListener listener, - AccessPoint accessPoint, boolean edit) { + AccessPoint accessPoint, boolean edit, boolean modify) { super(context); mEdit = edit; + mModify = modify; mListener = listener; mAccessPoint = accessPoint; mHideSubmitButton = false; @@ -67,7 +69,7 @@ class WifiDialog extends AlertDialog implements WifiConfigUiBase { mView = getLayoutInflater().inflate(R.layout.wifi_dialog, null); setView(mView); setInverseBackgroundForced(true); - mController = new WifiConfigController(this, mView, mAccessPoint, mEdit); + mController = new WifiConfigController(this, mView, mAccessPoint, mEdit, mModify); super.onCreate(savedInstanceState); if (mHideSubmitButton) { diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 7ce5dd0..341650c 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -119,6 +119,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_MODIFY_MODE = "modify_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"; @@ -150,6 +151,7 @@ public class WifiSettings extends RestrictedSettingsFragment private boolean mEnableNextOnConnection; // Save the dialog details + private boolean mDlgModify; private boolean mDlgEdit; private AccessPoint mDlgAccessPoint; private Bundle mAccessPointSavedState; @@ -248,6 +250,7 @@ public class WifiSettings extends RestrictedSettingsFragment if (savedInstanceState != null) { mDlgEdit = savedInstanceState.getBoolean(SAVE_DIALOG_EDIT_MODE); + mDlgModify = savedInstanceState.getBoolean(SAVE_DIALOG_MODIFY_MODE); if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) { mAccessPointSavedState = savedInstanceState.getBundle(SAVE_DIALOG_ACCESS_POINT_STATE); @@ -379,6 +382,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); if (mDlgAccessPoint != null) { mAccessPointSavedState = new Bundle(); mDlgAccessPoint.saveWifiState(mAccessPointSavedState); @@ -506,6 +510,7 @@ public class WifiSettings extends RestrictedSettingsFragment mSelectedAccessPoint.generateOpenNetworkConfig(); connect(mSelectedAccessPoint.getConfig()); } else { + mDlgModify = false; showDialog(mSelectedAccessPoint, true); } return true; @@ -515,6 +520,7 @@ public class WifiSettings extends RestrictedSettingsFragment return true; } case MENU_ID_MODIFY: { + mDlgModify = true; showDialog(mSelectedAccessPoint, true); return true; } @@ -539,8 +545,12 @@ public class WifiSettings extends RestrictedSettingsFragment getActivity().invalidateOptionsMenu(); } connect(mSelectedAccessPoint.getConfig()); - } else { + } else if (mSelectedAccessPoint.isSaved()){ + mDlgModify = false; showDialog(mSelectedAccessPoint, false); + } else { + mDlgModify = false; + showDialog(mSelectedAccessPoint, true); } } else { return super.onPreferenceTreeClick(screen, preference); @@ -607,7 +617,7 @@ public class WifiSettings extends RestrictedSettingsFragment final boolean hideForget = (ap == null || isEditabilityLockedDown(getActivity(), ap.getConfig())); mDialog = new WifiDialog(getActivity(), this, ap, mDlgEdit, - /* no hide submit/connect */ false, + mDlgModify, /* no hide submit/connect */ false, /* hide forget if config locked down */ hideForget); return mDialog; case WPS_PBC_DIALOG_ID: @@ -825,16 +835,11 @@ public class WifiSettings extends RestrictedSettingsFragment && mSelectedAccessPoint.isSaved()) { connect(mSelectedAccessPoint.getConfig()); } - } else if (config.networkId != INVALID_NETWORK_ID) { - if (mSelectedAccessPoint != null) { - mWifiManager.save(config, mSaveListener); - } + } else if (configController.isModify()) { + mWifiManager.save(config, mSaveListener); } else { - if (configController.isEdit()) { - mWifiManager.save(config, mSaveListener); - } else { - connect(config); - } + mWifiManager.save(config, mSaveListener); + connect(config); } mWifiTracker.resumeScanning(); |