[DO NOT MERGE] Add FLAG_SECURE for ChooseLockPassword and Pattern

Prevent ChooseLockPassword and ChooseLockPatten being projected to
remote views, add FLAG_SECURE for these screens.

Bug: 179725730
Test: Check these 2 screens not projected to chromecast
Test: robo test for SetupChooseLockPatternTest ChooseLockPatternTest
      SetupChooseLockPasswordTest ChooseLockPasswordTest
Change-Id: I7449a24427c966c1aa4280a7b7e7e70b60997cca
Merged-In: I7449a24427c966c1aa4280a7b7e7e70b60997cca
(cherry picked from commit 98239c0da6)
This commit is contained in:
Milton Wu
2022-08-08 09:05:00 +00:00
parent d04dc24d56
commit aac79b894f
4 changed files with 30 additions and 0 deletions

View File

@@ -27,6 +27,7 @@ import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
import static com.android.internal.widget.LockPatternUtils.PASSWORD_TYPE_KEY;
import static com.android.settings.password.ChooseLockGeneric.CONFIRM_CREDENTIALS;
@@ -158,6 +159,21 @@ public class ChooseLockPasswordTest {
.isNotNull();
}
@Test
public void activity_shouldHaveSecureFlag() {
PasswordPolicy policy = new PasswordPolicy();
policy.quality = PASSWORD_QUALITY_ALPHABETIC;
policy.length = 10;
Intent intent = createIntentForPasswordValidation(
/* minMetrics */ policy.getMinMetrics(),
/* minComplexity= */ PASSWORD_COMPLEXITY_NONE,
/* passwordType= */ PASSWORD_QUALITY_ALPHABETIC);
ChooseLockPassword activity = buildChooseLockPasswordActivity(intent);
final int flags = activity.getWindow().getAttributes().flags;
assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE);
}
@Test
public void processAndValidatePasswordRequirements_noMinPasswordComplexity() {
PasswordPolicy policy = new PasswordPolicy();

View File

@@ -16,6 +16,8 @@
package com.android.settings.password;
import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
@@ -107,6 +109,14 @@ public class ChooseLockPatternTest {
assertThat(iconView.getVisibility()).isEqualTo(View.GONE);
}
@Test
public void activity_shouldHaveSecureFlag() {
final ChooseLockPattern activity = Robolectric.buildActivity(
ChooseLockPattern.class, new IntentBuilder(application).build()).setup().get();
final int flags = activity.getWindow().getAttributes().flags;
assertThat(flags & FLAG_SECURE).isEqualTo(FLAG_SECURE);
}
private ChooseLockPattern createActivity(boolean addFingerprintExtra) {
return Robolectric.buildActivity(
ChooseLockPattern.class,