Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f027703 authored by Milton Wu's avatar Milton Wu Committed by Presubmit Automerger Backend
Browse files

[automerge] [DO NOT MERGE] Add FLAG_SECURE for ChooseLockPassword and Pattern 2p: 98e3bfde

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19949403

Bug: 179725730
Change-Id: If1f5f223ce35e9eb7d038523dd663c8849426070
Merged-In: I7449a24427c966c1aa4280a7b7e7e70b60997cca
parents 11484d51 98e3bfde
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -61,6 +61,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;
@@ -205,6 +206,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
+2 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.TextView;

import androidx.fragment.app.Fragment;
@@ -171,6 +172,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
+16 −0
Original line number Diff line number Diff line
@@ -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;
@@ -162,6 +163,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();
+10 −0
Original line number Diff line number Diff line
@@ -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,