From 08e6612a3d6a0f98aad0740843d6978b265f8f7d Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Fri, 17 Feb 2023 23:23:17 +0000 Subject: [PATCH 1/2] Stop calling LockPatternUtils.setVisiblePasswordEnabled() Since the removal of support for Full Disk Encryption (FDE) in favor of File Based Encryption (FBE), this method has been a no-op. Bug: 208476087 Test: atest ShowPasswordPreferenceControllerTest. Note, isAvailable_whenNotVisible_isFalse fails both before and after. Change-Id: Ifb8fc93757366240cf37e4b9a600c2034302919e Merged-In: Ifb8fc93757366240cf37e4b9a600c2034302919e (cherry picked from commit bcee8ce1afaa6946d1281db3c1756ec5a9cae15a) --- .../security/ShowPasswordPreferenceController.java | 9 --------- .../ShowPasswordPreferenceControllerTest.java | 13 ------------- 2 files changed, 22 deletions(-) diff --git a/src/com/android/settings/security/ShowPasswordPreferenceController.java b/src/com/android/settings/security/ShowPasswordPreferenceController.java index 696854a3ce5..a6e4db612ac 100644 --- a/src/com/android/settings/security/ShowPasswordPreferenceController.java +++ b/src/com/android/settings/security/ShowPasswordPreferenceController.java @@ -17,25 +17,17 @@ package com.android.settings.security; import android.content.Context; -import android.os.UserHandle; import android.provider.Settings; -import com.android.internal.widget.LockPatternUtils; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; -import com.android.settings.overlay.FeatureFactory; public class ShowPasswordPreferenceController extends TogglePreferenceController { private static final String KEY_SHOW_PASSWORD = "show_password"; - private static final int MY_USER_ID = UserHandle.myUserId(); - private final LockPatternUtils mLockPatternUtils; public ShowPasswordPreferenceController(Context context) { super(context, KEY_SHOW_PASSWORD); - mLockPatternUtils = FeatureFactory.getFactory(context) - .getSecurityFeatureProvider() - .getLockPatternUtils(context); } @Override @@ -48,7 +40,6 @@ public class ShowPasswordPreferenceController extends TogglePreferenceController public boolean setChecked(boolean isChecked) { Settings.System.putInt(mContext.getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, isChecked ? 1 : 0); - mLockPatternUtils.setVisiblePasswordEnabled(isChecked, MY_USER_ID); return true; } diff --git a/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java index 5e3c27aa35d..206dee1ffb2 100644 --- a/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java @@ -18,20 +18,15 @@ package com.android.settings.security; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.content.Context; -import android.os.UserHandle; import android.provider.Settings; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import com.android.internal.widget.LockPatternUtils; -import com.android.settings.testutils.FakeFeatureFactory; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -44,12 +39,9 @@ import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class ShowPasswordPreferenceControllerTest { - @Mock - private LockPatternUtils mLockPatternUtils; @Mock private PreferenceScreen mScreen; - private FakeFeatureFactory mFeatureFactory; private Context mContext; private ShowPasswordPreferenceController mController; private Preference mPreference; @@ -58,9 +50,6 @@ public class ShowPasswordPreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; - mFeatureFactory = FakeFeatureFactory.setupForTest(); - when(mFeatureFactory.securityFeatureProvider.getLockPatternUtils(mContext)) - .thenReturn(mLockPatternUtils); mController = new ShowPasswordPreferenceController(mContext); mPreference = new Preference(mContext); mPreference.setKey(mController.getPreferenceKey()); @@ -98,7 +87,6 @@ public class ShowPasswordPreferenceControllerTest { mController.onPreferenceChange(mPreference, true); assertThat(mController.isChecked()).isTrue(); - verify(mLockPatternUtils).setVisiblePasswordEnabled(true, UserHandle.myUserId()); } @Test @@ -106,6 +94,5 @@ public class ShowPasswordPreferenceControllerTest { mController.onPreferenceChange(mPreference, false); assertThat(mController.isChecked()).isFalse(); - verify(mLockPatternUtils).setVisiblePasswordEnabled(false, UserHandle.myUserId()); } } From 6cb2d5a795a15810ea9c6ef782f520589c0185ae Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 27 Apr 2023 18:56:28 +0000 Subject: [PATCH 2/2] ChooseLockPattern: remove redundant setting of visible pattern default Remove the code that set LOCK_PATTERN_VISIBLE to true the first time a pattern was set, since LOCK_PATTERN_VISIBLE now defaults to true when unset (ag/22912136). The explicit defaulting to true was only needed before because the low-level default value was wrong. Bug: 270013005 Test: Set a pattern. Verified that Keyguard uses visible pattern. Disabled the "Make pattern visible" option in Settings. Verified that Keyguard doesn't use visible pattern. Change-Id: I63f29c68f9a508fee0ee2f03f2cca33317fb8a32 Merged-In: I63f29c68f9a508fee0ee2f03f2cca33317fb8a32 (cherry picked from commit 6c3de30086d37947d11dca146354dca33a935755) --- .../android/settings/password/ChooseLockPattern.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java index c0342d104e8..e1e7047775a 100644 --- a/src/com/android/settings/password/ChooseLockPattern.java +++ b/src/com/android/settings/password/ChooseLockPattern.java @@ -889,7 +889,6 @@ public class ChooseLockPattern extends SettingsActivity { private LockscreenCredential mChosenPattern; private LockscreenCredential mCurrentCredential; - private boolean mLockVirgin; public void start(LockPatternUtils utils, boolean credentialRequired, boolean requestGatekeeperPassword, LockscreenCredential chosenPattern, @@ -901,8 +900,6 @@ public class ChooseLockPattern extends SettingsActivity { mChosenPattern = chosenPattern; mUserId = userId; - mLockVirgin = !mUtils.isPatternEverChosen(mUserId); - start(); } @@ -933,14 +930,5 @@ public class ChooseLockPattern extends SettingsActivity { } return Pair.create(success, result); } - - @Override - protected void finish(Intent resultData) { - if (mLockVirgin) { - mUtils.setVisiblePatternEnabled(true, mUserId); - } - - super.finish(resultData); - } } }