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

Commit 9b64697d authored by /e/ robot's avatar /e/ robot
Browse files

Merge remote-tracking branch 'origin/lineage-17.1' into v1-q

parents 48d3ee62 0206af9c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -50,6 +50,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.LinearLayout;
import android.widget.TextView;
@@ -176,6 +177,7 @@ public class ChooseLockPassword extends SettingsActivity {

        setTitle(msg);
        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
@@ -34,6 +34,7 @@ import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.view.WindowManager;
import android.widget.TextView;

import androidx.fragment.app.Fragment;
@@ -166,6 +167,7 @@ public class ChooseLockPattern extends SettingsActivity {

        setTitle(msg);
        findViewById(R.id.content_parent).setFitsSystemWindows(false);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
    }

    @Override
+5 −4
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
@@ -280,13 +281,13 @@ public class EditUserPhotoController {
    }

    private boolean startSystemActivityForResult(Intent intent, int code) {
        ActivityInfo info = intent.resolveActivityInfo(mContext.getPackageManager(),
                PackageManager.MATCH_SYSTEM_ONLY);
        if (info == null) {
        List<ResolveInfo> resolveInfos = mContext.getPackageManager()
                .queryIntentActivities(intent, PackageManager.MATCH_SYSTEM_ONLY);
        if (resolveInfos.isEmpty()) {
            Log.w(TAG, "No system package activity could be found for code " + code);
            return false;
        }
        intent.setPackage(info.packageName);
        intent.setPackage(resolveInfos.get(0).activityInfo.packageName);
        mFragment.startActivityForResult(intent, code);
        return true;
    }
+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;
@@ -146,6 +147,21 @@ public class ChooseLockPasswordTest {
        assertThat(intent.hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)).isFalse();
    }

    @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() {
        mShadowDpm.setPasswordQuality(PASSWORD_QUALITY_ALPHABETIC);
+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 org.robolectric.RuntimeEnvironment.application;
@@ -111,6 +113,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,