diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java index 653a7816a7b..b4f19ddd723 100644 --- a/src/com/android/settings/CryptKeeper.java +++ b/src/com/android/settings/CryptKeeper.java @@ -474,6 +474,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList int passwordType = StorageManager.CRYPT_TYPE_PASSWORD; String owner_info; boolean pattern_visible; + boolean password_visible; @Override public Void doInBackground(Void... v) { @@ -482,6 +483,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList passwordType = service.getPasswordType(); owner_info = service.getField(StorageManager.OWNER_INFO_KEY); pattern_visible = !("0".equals(service.getField(StorageManager.PATTERN_VISIBLE_KEY))); + password_visible = !("0".equals(service.getField(StorageManager.PASSWORD_VISIBLE_KEY))); } catch (Exception e) { Log.e(TAG, "Error calling mount service " + e); } @@ -491,6 +493,9 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList @Override public void onPostExecute(java.lang.Void v) { + Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, + password_visible ? 1 : 0); + if (passwordType == StorageManager.CRYPT_TYPE_PIN) { setContentView(R.layout.crypt_keeper_pin_entry); mStatusString = R.string.enter_pin; diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java index 513a42871c4..45b50f6f969 100644 --- a/src/com/android/settings/CryptKeeperConfirm.java +++ b/src/com/android/settings/CryptKeeperConfirm.java @@ -27,6 +27,7 @@ import android.os.IBinder; import android.os.ServiceManager; import android.os.UserHandle; import android.os.storage.IMountService; +import android.provider.Settings; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -127,6 +128,11 @@ public class CryptKeeperConfirm extends InstrumentedFragment { utils.setOwnerInfo(utils.getOwnerInfo(UserHandle.USER_OWNER), UserHandle.USER_OWNER); } + int value = Settings.System.getInt(getContext().getContentResolver(), + Settings.System.TEXT_SHOW_PASSWORD, + 1); + utils.setVisiblePasswordEnabled(value != 0, UserHandle.USER_OWNER); + Intent intent = new Intent(getActivity(), Blank.class); intent.putExtras(getArguments()); startActivity(intent); diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 1c0f445bae2..8f6c8490ae7 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -689,6 +689,7 @@ public class SecuritySettings extends SettingsPreferenceFragment } else if (KEY_SHOW_PASSWORD.equals(key)) { Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, ((Boolean) value) ? 1 : 0); + lockPatternUtils.setVisiblePasswordEnabled((Boolean) value, MY_USER_ID); } else if (KEY_TOGGLE_INSTALL_APPLICATIONS.equals(key)) { if ((Boolean) value) { mToggleAppInstallation.setChecked(false);