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

Commit 2677fb5c authored by d34d's avatar d34d Committed by Gerrit Code Review
Browse files

Include subQuality when returning from EncryptionInterstitial

When a device is encrypted and the user selects fingerprint as the
unlock method, the user would be presented with instructions about
using face unlock instead of proceeding with setting up a fingerprint.

This patch stores the subQuality in a member variable which can then
be used to determine which screen to show next.

Change-Id: Ie3f26917a27c7eabb96430646b69775d014b2db2
REF: CYNGNOS-664
parent 8672a517
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ public class ChooseLockGeneric extends SettingsActivity {
        private static final String TAG = "ChooseLockGenericFragment";
        public static final String MINIMUM_QUALITY_KEY = "minimum_quality";
        public static final String ENCRYPT_REQUESTED_QUALITY = "encrypt_requested_quality";
        public static final String ENCRYPT_REQUESTED_SUBQUALITY = "encrypt_requested_subquality";
        public static final String ENCRYPT_REQUESTED_DISABLED = "encrypt_requested_disabled";
        public static final String TAG_FRP_WARNING_DIALOG = "frp_warning_dialog";

@@ -105,6 +106,7 @@ public class ChooseLockGeneric extends SettingsActivity {
        private boolean mWaitingForConfirmation = false;
        private boolean mFinishPending = false;
        private int mEncryptionRequestQuality;
        private int mEncryptionRequestSubQuality;
        private boolean mEncryptionRequestDisabled;
        private boolean mRequirePassword;
        private LockPatternUtils mLockPatternUtils;
@@ -130,6 +132,8 @@ public class ChooseLockGeneric extends SettingsActivity {
                mWaitingForConfirmation = savedInstanceState.getBoolean(WAITING_FOR_CONFIRMATION);
                mFinishPending = savedInstanceState.getBoolean(FINISH_PENDING);
                mEncryptionRequestQuality = savedInstanceState.getInt(ENCRYPT_REQUESTED_QUALITY);
                mEncryptionRequestSubQuality =
                        savedInstanceState.getInt(ENCRYPT_REQUESTED_SUBQUALITY);
                mEncryptionRequestDisabled = savedInstanceState.getBoolean(
                        ENCRYPT_REQUESTED_DISABLED);
            }
@@ -194,6 +198,7 @@ public class ChooseLockGeneric extends SettingsActivity {
        private void maybeEnableEncryption(int quality, boolean disabled, int subQuality) {
            if (Process.myUserHandle().isOwner() && LockPatternUtils.isDeviceEncryptionEnabled()) {
                mEncryptionRequestQuality = quality;
                mEncryptionRequestSubQuality = subQuality;
                mEncryptionRequestDisabled = disabled;
                final Context context = getActivity();
                // If accessibility is enabled and the user hasn't seen this dialog before, set the
@@ -244,7 +249,8 @@ public class ChooseLockGeneric extends SettingsActivity {
                    && resultCode == Activity.RESULT_OK) {
                mRequirePassword = data.getBooleanExtra(
                        EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true);
                updateUnlockMethodAndFinish(mEncryptionRequestQuality, mEncryptionRequestDisabled);
                updateUnlockMethodAndFinish(mEncryptionRequestQuality, mEncryptionRequestDisabled,
                        mEncryptionRequestSubQuality);
            } else {
                getActivity().setResult(Activity.RESULT_CANCELED);
                finish();
@@ -259,6 +265,7 @@ public class ChooseLockGeneric extends SettingsActivity {
            outState.putBoolean(WAITING_FOR_CONFIRMATION, mWaitingForConfirmation);
            outState.putBoolean(FINISH_PENDING, mFinishPending);
            outState.putInt(ENCRYPT_REQUESTED_QUALITY, mEncryptionRequestQuality);
            outState.putInt(ENCRYPT_REQUESTED_SUBQUALITY, mEncryptionRequestSubQuality);
            outState.putBoolean(ENCRYPT_REQUESTED_DISABLED, mEncryptionRequestDisabled);
        }

@@ -603,9 +610,8 @@ public class ChooseLockGeneric extends SettingsActivity {
                maybeEnableEncryption(
                        DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC, false);
            } else if (KEY_UNLOCK_SET_FINGERPRINT.equals(unlockMethod)) {
                maybeEnableEncryption(
                        DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK, false,
                        LockPatternUtils.BIOMETRIC_WEAK_FINGERPRINT);
                updateUnlockMethodAndFinish(DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK,
                        false, LockPatternUtils.BIOMETRIC_WEAK_FINGERPRINT);
            } else {
                Log.e(TAG, "Encountered unknown unlock method to set: " + unlockMethod);
                return false;