From: Paul Lawrence Date: Mon, 18 May 2015 20:25:01 +0000 (-0700) Subject: Honor password visible setting in CryptKeeper X-Git-Tag: android-x86-6.0-r1~500^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c04420ce2581627478b59cc5d8b453f1fa329e02;p=android-x86%2Fpackages-apps-Settings.git Honor password visible setting in CryptKeeper Requires matching framework change: https://googleplex-android-review.git.corp.google.com/#/c/692822/ Bug: 20184626 Change-Id: I04bfb9ed61a7b40fbc28fbc0b4b10bf848b34a2c --- diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java index 653a7816a7..b4f19ddd72 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 513a42871c..45b50f6f96 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 1c0f445bae..8f6c8490ae 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);