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

Commit 92de599c authored by LuK1337's avatar LuK1337
Browse files

Settings: Make FRP go through ChooseLockPatternSize if needed

Change-Id: I70b0ddb20033dd5505c391763a0a58fd2f9c8004
parent 2c261b66
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -104,6 +104,7 @@ public class ChooseLockPattern extends SettingsActivity {

        public IntentBuilder(Context context) {
            mIntent = new Intent(context, ChooseLockPatternSize.class);
            mIntent.putExtra("className", ChooseLockPattern.class.getName());
            mIntent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false);
            mIntent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, false);
            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false);
+4 −2
Original line number Diff line number Diff line
@@ -95,8 +95,10 @@ public class ChooseLockPatternSize extends SettingsActivity {
                patternSize = 3;
            }

            Intent intent = new Intent(getActivity(), ChooseLockPattern.class);
            intent.putExtras(getActivity().getIntent().getExtras());
            Bundle extras = getActivity().getIntent().getExtras();
            Intent intent = new Intent();
            intent.setClassName(getActivity(), extras.getString("className"));
            intent.putExtras(extras);
            intent.putExtra("pattern_size", patternSize);
            intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
            startActivity(intent);
+7 −2
Original line number Diff line number Diff line
@@ -377,6 +377,9 @@ public final class ChooseLockSettingsHelper {

    public boolean launchFrpConfirmationActivity(int request, @Nullable CharSequence header,
            @Nullable CharSequence description, @Nullable CharSequence alternateButton) {
        Bundle extras = new Bundle();
        extras.putString("className", ConfirmLockPattern.class.getName());

        return launchConfirmationActivity(
                request /* request */,
                null /* title */,
@@ -388,7 +391,7 @@ public final class ChooseLockSettingsHelper {
                0 /* challenge */,
                LockPatternUtils.USER_FRP /* userId */,
                alternateButton /* alternateButton */,
                null /* extras */,
                extras /* extras */,
                false /* foregroundOnly */);
    }

@@ -403,7 +406,9 @@ public final class ChooseLockSettingsHelper {
        switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
            case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                launched = launchConfirmationActivity(request, title, header, description,
                        returnCredentials || hasChallenge
                        extras != null && userId == LockPatternUtils.USER_FRP
                                ? ChooseLockPatternSize.class
                                : returnCredentials || hasChallenge
                                ? ConfirmLockPattern.InternalActivity.class
                                : ConfirmLockPattern.class, returnCredentials, external,
                                hasChallenge, challenge, userId, alternateButton, extras,
+5 −3
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
        private DisappearAnimationUtils mDisappearAnimationUtils;

        private boolean mIsManagedProfile;
        private byte mPatternSize;

        // required constructor for fragments
        public ConfirmLockPatternFragment() {
@@ -123,6 +124,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
            mErrorTextView = (TextView) view.findViewById(R.id.errorText);

            mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mEffectiveUserId);
            mPatternSize = mLockPatternUtils.getLockPatternSize(mEffectiveUserId);

            // make it so unhandled touch events within the unlock screen go to the
            // lock pattern view.
@@ -136,6 +138,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
                        ConfirmDeviceCredentialBaseFragment.HEADER_TEXT);
                mDetailsText = intent.getCharSequenceExtra(
                        ConfirmDeviceCredentialBaseFragment.DETAILS_TEXT);
                mPatternSize = intent.getByteExtra("pattern_size", mPatternSize);
            }
            if (TextUtils.isEmpty(mHeaderText) && mIsManagedProfile) {
                mHeaderText = mDevicePolicyManager.getOrganizationNameForUser(mUserId);
@@ -145,8 +148,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
                    mLockPatternUtils.isTactileFeedbackEnabled());
            mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled(
                    mEffectiveUserId));
            mLockPatternView.setLockPatternSize(
                    mLockPatternUtils.getLockPatternSize(mEffectiveUserId));
            mLockPatternView.setLockPatternSize(mPatternSize);
            mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener);
            updateStage(Stage.NeedToUnlock);

@@ -427,7 +429,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
                final boolean verifyChallenge = getActivity().getIntent().getBooleanExtra(
                        ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false);
                final LockscreenCredential credential = LockscreenCredential.createPattern(pattern,
                        mLockPatternUtils.getLockPatternSize(mEffectiveUserId));
                        mPatternSize);
                //TODO: how to sanitize this?
                Intent intent = new Intent();
                if (verifyChallenge) {