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
This commit is contained in:
Paul Lawrence
2015-05-18 13:25:01 -07:00
parent 227ba29e39
commit c04420ce25
3 changed files with 12 additions and 0 deletions

View File

@@ -474,6 +474,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
int passwordType = StorageManager.CRYPT_TYPE_PASSWORD; int passwordType = StorageManager.CRYPT_TYPE_PASSWORD;
String owner_info; String owner_info;
boolean pattern_visible; boolean pattern_visible;
boolean password_visible;
@Override @Override
public Void doInBackground(Void... v) { public Void doInBackground(Void... v) {
@@ -482,6 +483,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
passwordType = service.getPasswordType(); passwordType = service.getPasswordType();
owner_info = service.getField(StorageManager.OWNER_INFO_KEY); owner_info = service.getField(StorageManager.OWNER_INFO_KEY);
pattern_visible = !("0".equals(service.getField(StorageManager.PATTERN_VISIBLE_KEY))); pattern_visible = !("0".equals(service.getField(StorageManager.PATTERN_VISIBLE_KEY)));
password_visible = !("0".equals(service.getField(StorageManager.PASSWORD_VISIBLE_KEY)));
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "Error calling mount service " + e); Log.e(TAG, "Error calling mount service " + e);
} }
@@ -491,6 +493,9 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
@Override @Override
public void onPostExecute(java.lang.Void v) { 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) { if (passwordType == StorageManager.CRYPT_TYPE_PIN) {
setContentView(R.layout.crypt_keeper_pin_entry); setContentView(R.layout.crypt_keeper_pin_entry);
mStatusString = R.string.enter_pin; mStatusString = R.string.enter_pin;

View File

@@ -27,6 +27,7 @@ import android.os.IBinder;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.storage.IMountService; import android.os.storage.IMountService;
import android.provider.Settings;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@@ -127,6 +128,11 @@ public class CryptKeeperConfirm extends InstrumentedFragment {
utils.setOwnerInfo(utils.getOwnerInfo(UserHandle.USER_OWNER), utils.setOwnerInfo(utils.getOwnerInfo(UserHandle.USER_OWNER),
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 intent = new Intent(getActivity(), Blank.class);
intent.putExtras(getArguments()); intent.putExtras(getArguments());
startActivity(intent); startActivity(intent);

View File

@@ -689,6 +689,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
} else if (KEY_SHOW_PASSWORD.equals(key)) { } else if (KEY_SHOW_PASSWORD.equals(key)) {
Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD,
((Boolean) value) ? 1 : 0); ((Boolean) value) ? 1 : 0);
lockPatternUtils.setVisiblePasswordEnabled((Boolean) value, MY_USER_ID);
} else if (KEY_TOGGLE_INSTALL_APPLICATIONS.equals(key)) { } else if (KEY_TOGGLE_INSTALL_APPLICATIONS.equals(key)) {
if ((Boolean) value) { if ((Boolean) value) {
mToggleAppInstallation.setChecked(false); mToggleAppInstallation.setChecked(false);