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
This commit is contained in:
@@ -69,6 +69,7 @@ import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.ImeAwareEditText;
|
||||
import android.widget.TextView;
|
||||
@@ -214,6 +215,7 @@ public class ChooseLockPassword extends SettingsActivity {
|
||||
ThemeHelper.trySetDynamicColor(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
findViewById(R.id.content_parent).setFitsSystemWindows(false);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
|
||||
}
|
||||
|
||||
public static class ChooseLockPasswordFragment extends InstrumentedFragment
|
||||
|
@@ -41,6 +41,7 @@ import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
@@ -175,6 +176,7 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
ThemeHelper.trySetDynamicColor(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
findViewById(R.id.content_parent).setFitsSystemWindows(false);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -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();
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user