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

Commit 79f49b46 authored by Kevin Chyn's avatar Kevin Chyn Committed by Android (Google) Code Review
Browse files

Merge "Launch correct enrollment activity from ChooseLock" into qt-dev

parents ee35c1bd 5ab064f3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1562,6 +1562,11 @@
            android:exported="false"
            android:screenOrientation="portrait"/>

        <!-- Must not be exported -->
        <activity android:name=".biometrics.BiometricEnrollActivity$InternalActivity"
            android:exported="false"
            android:theme="@style/GlifTheme.Light"/>

        <activity android:name=".biometrics.BiometricEnrollActivity"
            android:exported="true"
            android:theme="@style/GlifTheme.Light">
+38 −4
Original line number Diff line number Diff line
@@ -20,11 +20,15 @@ import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.UserHandle;

import com.android.settings.SetupWizardUtils;
import com.android.settings.biometrics.face.FaceEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollFindSensor;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
import com.android.settings.core.InstrumentedActivity;
import com.android.settings.password.ChooseLockSettingsHelper;

import com.google.android.setupcompat.util.WizardManagerHelper;

@@ -36,6 +40,12 @@ import com.google.android.setupcompat.util.WizardManagerHelper;
 */
public class BiometricEnrollActivity extends InstrumentedActivity {

    private static final String TAG = "BiometricEnrollActivity";

    public static final String EXTRA_SKIP_INTRO = "skip_intro";

    public static final class InternalActivity extends BiometricEnrollActivity {}

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -45,19 +55,43 @@ public class BiometricEnrollActivity extends InstrumentedActivity {

        // This logic may have to be modified on devices with multiple biometrics.
        if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
            intent = getFingerprintEnrollIntent();
            // ChooseLockGeneric can request to start fingerprint enroll bypassing the intro screen.
            if (getIntent().getBooleanExtra(EXTRA_SKIP_INTRO, false)
                    && this instanceof InternalActivity) {
                intent = getFingerprintFindSensorIntent();
            } else {
                intent = getFingerprintIntroIntent();
            }
        } else if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
            intent = getFaceEnrollIntent();
            intent = getFaceIntroIntent();
        }

        if (intent != null) {
            intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);

            if (this instanceof InternalActivity) {
                // Propagate challenge and user Id from ChooseLockGeneric.
                final byte[] token = getIntent()
                        .getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
                final int userId = getIntent()
                        .getIntExtra(Intent.EXTRA_USER_ID, UserHandle.USER_NULL);

                intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
                intent.putExtra(Intent.EXTRA_USER_ID, userId);
            }

            startActivity(intent);
        }
        finish();
    }

    private Intent getFingerprintEnrollIntent() {
    private Intent getFingerprintFindSensorIntent() {
        Intent intent = new Intent(this, FingerprintEnrollFindSensor.class);
        SetupWizardUtils.copySetupExtras(getIntent(), intent);
        return intent;
    }

    private Intent getFingerprintIntroIntent() {
        if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
            Intent intent = new Intent(this, SetupFingerprintEnrollIntroduction.class);
            WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
@@ -67,7 +101,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
        }
    }

    private Intent getFaceEnrollIntent() {
    private Intent getFaceIntroIntent() {
        Intent intent = new Intent(this, FaceEnrollIntroduction.class);
        WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
        return intent;
+3 −1
Original line number Diff line number Diff line
@@ -150,7 +150,9 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
        if (!mHasPassword) {
            // No password registered, launch into enrollment wizard.
            launchChooseLock();
        } else if (!mLaunchedConfirmLock || mToken == null) {
        } else if (mToken == null) {
            // It's possible to have a token but mLaunchedConfirmLock == false, since
            // ChooseLockGeneric can pass us a token.
            launchConfirmLock(getConfirmLockTitleResId(), getChallenge());
        }
    }
+11 −9
Original line number Diff line number Diff line
@@ -66,8 +66,8 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollActivity;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollFindSensor;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -76,7 +76,6 @@ import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.FooterPreferenceMixinCompat;

import java.util.Arrays;
import java.util.List;

public class ChooseLockGeneric extends SettingsActivity {
@@ -141,7 +140,7 @@ public class ChooseLockGeneric extends SettingsActivity {
        @VisibleForTesting
        static final int CHOOSE_LOCK_REQUEST = 102;
        @VisibleForTesting
        static final int CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST = 103;
        static final int CHOOSE_LOCK_BEFORE_BIOMETRIC_REQUEST = 103;
        @VisibleForTesting
        static final int SKIP_FINGERPRINT_REQUEST = 104;

@@ -366,7 +365,7 @@ public class ChooseLockGeneric extends SettingsActivity {
                startActivityForResult(
                        intent,
                        mIsSetNewPassword && mHasChallenge
                                ? CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST
                                ? CHOOSE_LOCK_BEFORE_BIOMETRIC_REQUEST
                                : ENABLE_ENCRYPTION_REQUEST);
            } else {
                if (mForChangeCredRequiredForBoot) {
@@ -411,9 +410,9 @@ public class ChooseLockGeneric extends SettingsActivity {
                        finish();
                    }
                }
            } else if (requestCode == CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST
            } else if (requestCode == CHOOSE_LOCK_BEFORE_BIOMETRIC_REQUEST
                    && resultCode == BiometricEnrollBase.RESULT_FINISHED) {
                Intent intent = getFindSensorIntent(getActivity());
                Intent intent = getBiometricEnrollIntent(getActivity());
                if (data != null) {
                    intent.putExtras(data.getExtras());
                }
@@ -438,8 +437,11 @@ public class ChooseLockGeneric extends SettingsActivity {
            }
        }

        protected Intent getFindSensorIntent(Context context) {
            return new Intent(context, FingerprintEnrollFindSensor.class);
        protected Intent getBiometricEnrollIntent(Context context) {
            final Intent intent =
                    new Intent(context, BiometricEnrollActivity.InternalActivity.class);
            intent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true);
            return intent;
        }

        @Override
@@ -764,7 +766,7 @@ public class ChooseLockGeneric extends SettingsActivity {
                intent.putExtra(EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS, getIntent().getExtras());
                startActivityForResult(intent,
                        mIsSetNewPassword && mHasChallenge
                                ? CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST
                                ? CHOOSE_LOCK_BEFORE_BIOMETRIC_REQUEST
                                : CHOOSE_LOCK_REQUEST);
                return;
            }
+3 −2
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.SetupEncryptionInterstitial;
import com.android.settings.SetupWizardUtils;
import com.android.settings.biometrics.BiometricEnrollActivity;
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor;
import com.android.settings.utils.SettingsDividerItemDecoration;

@@ -229,8 +230,8 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
        }

        @Override
        protected Intent getFindSensorIntent(Context context) {
            final Intent intent = new Intent(context, SetupFingerprintEnrollFindSensor.class);
        protected Intent getBiometricEnrollIntent(Context context) {
            final Intent intent = getBiometricEnrollIntent(context);
            SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
            return intent;
        }
Loading