From 3eb3b104d7f05ae330e2d91b346d4ecf765845f2 Mon Sep 17 00:00:00 2001 From: Sanket Padawe Date: Fri, 20 Mar 2015 10:07:50 -0700 Subject: [PATCH] Restore password visibility on screen rotation in Hotspot/Wifi setup. Bug: 16237425 Change-Id: I2bf0aaaa657d60f007858c6635d2a17326562c66 --- src/com/android/settings/wifi/WifiApDialog.java | 9 +++++++++ src/com/android/settings/wifi/WifiConfigController.java | 16 +++++++--------- src/com/android/settings/wifi/WifiDialog.java | 5 +++++ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/wifi/WifiApDialog.java b/src/com/android/settings/wifi/WifiApDialog.java index eee3db9706..3c4d912d31 100644 --- a/src/com/android/settings/wifi/WifiApDialog.java +++ b/src/com/android/settings/wifi/WifiApDialog.java @@ -184,6 +184,15 @@ public class WifiApDialog extends AlertDialog implements View.OnClickListener, validate(); } + public void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + mPassword.setInputType( + InputType.TYPE_CLASS_TEXT | + (((CheckBox) mView.findViewById(R.id.show_password)).isChecked() ? + InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : + InputType.TYPE_TEXT_VARIATION_PASSWORD)); + } + private void validate() { if ((mSsid != null && mSsid.length() == 0) || ((mSecurityTypeIndex == WPA2_INDEX)&& diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 5462d262e2..c0dbaa471d 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -999,14 +999,12 @@ public class WifiConfigController implements TextWatcher, /** * Make the characters of the password visible if show_password is checked. */ - private void updatePasswordVisibility(boolean checked) { - int pos = mPasswordView.getSelectionEnd(); - mPasswordView.setInputType( - InputType.TYPE_CLASS_TEXT | (checked ? - InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : - InputType.TYPE_TEXT_VARIATION_PASSWORD)); - if (pos >= 0) { - ((EditText)mPasswordView).setSelection(pos); - } + public void updatePassword() { + TextView passwdView = (TextView) mView.findViewById(R.id.password); + passwdView.setInputType( + InputType.TYPE_CLASS_TEXT | + (((CheckBox) mView.findViewById(R.id.show_password)).isChecked() ? + InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : + InputType.TYPE_TEXT_VARIATION_PASSWORD)); } } diff --git a/src/com/android/settings/wifi/WifiDialog.java b/src/com/android/settings/wifi/WifiDialog.java index 942c5dd871..ce554bca9c 100644 --- a/src/com/android/settings/wifi/WifiDialog.java +++ b/src/com/android/settings/wifi/WifiDialog.java @@ -74,6 +74,11 @@ class WifiDialog extends AlertDialog implements WifiConfigUiBase { } } + public void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + mController.updatePassword(); + } + @Override public boolean isEdit() { return mEdit; -- 2.11.0