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

Commit 962f57dc authored by Shawn Lin's avatar Shawn Lin
Browse files

[Biometric Onboarding & Edu] Update Set up Face Unlock page

Update icons, strings and layouts for new UX design

Bug: 370940762
Test: manual:
      Pre condition - no face enrolled
      Go Settings>Security & privacy>Device unlock>Face unlock
Test: atest FaceEnrollTest
Flag: com.android.settings.flags.biometrics_onboarding_education
Change-Id: Ie469c47005afb941f5646a2f790736362c23c697
parent 299449e2
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2830,6 +2830,12 @@
                  android:screenOrientation="portrait"/>

        <activity android:name=".biometrics.face.FaceEnrollIntroduction"
                  android:exported="false"
                  android:theme="@style/GlifV4Theme.DayNight"
                  android:screenOrientation="nosensor">
        </activity>

        <activity android:name=".biometrics.face.FaceEnroll"
                  android:exported="true"
                  android:theme="@style/GlifV4Theme.DayNight"
                  android:screenOrientation="nosensor">
+6 −2
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.SettingsActivity;
import com.android.settings.SubSettings;
import com.android.settings.biometrics.face.FaceEnrollIntroduction;
import com.android.settings.biometrics.face.FaceEnrollActivityClassProvider;
import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollActivityClassProvider;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling;
@@ -254,6 +254,11 @@ public class ActivityEmbeddingRulesController {
                    .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE);
            addActivityFilter(activityFilters, searchIntent);
        }
        final FaceEnrollActivityClassProvider faceClassProvider = FeatureFactory
                .getFeatureFactory()
                .getFaceFeatureProvider()
                .getEnrollActivityClassProvider();
        addActivityFilter(activityFilters, faceClassProvider.getNext());
        final FingerprintEnrollActivityClassProvider fpClassProvider = FeatureFactory
                .getFeatureFactory()
                .getFingerprintFeatureProvider()
@@ -263,7 +268,6 @@ public class ActivityEmbeddingRulesController {
        addActivityFilter(activityFilters, fpClassProvider.getAddAnother());
        addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class);
        addActivityFilter(activityFilters, FaceEnrollIntroductionInternal.class);
        addActivityFilter(activityFilters, FaceEnrollIntroduction.class);
        addActivityFilter(activityFilters, RemoteAuthActivity.class);
        addActivityFilter(activityFilters, RemoteAuthActivityInternal.class);
        addActivityFilter(activityFilters, ChooseLockPattern.class);
+1 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
    private boolean mParentalConsentRequired;
    private boolean mHasScrolledToBottom = false;

    @Nullable private PorterDuffColorFilter mIconColorFilter;
    @Nullable protected PorterDuffColorFilter mIconColorFilter;

    /**
     * @return true if the biometric is disabled by a device administrator
+3 −2
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.VerifyCredentialResponse;
import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.biometrics.face.FaceEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.FingerprintEnroll;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollFindSensor;
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor;
@@ -281,7 +280,9 @@ public class BiometricUtils {
     */
    public static Intent getFaceIntroIntent(@NonNull Context context,
            @NonNull Intent activityIntent) {
        final Intent intent = new Intent(context, FaceEnrollIntroduction.class);
        final Intent intent = new Intent(context,
                FeatureFactory.getFeatureFactory().getFaceFeatureProvider()
                        .getEnrollActivityClassProvider().getNext());
        WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
        return intent;
    }
+54 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.biometrics.face

import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

import com.android.settings.overlay.FeatureFactory.Companion.featureFactory

class FaceEnroll: AppCompatActivity() {

    /**
     * The class of the next activity to launch. This is open to allow subclasses to provide their
     * own behavior. Defaults to the default activity class provided by the
     * enrollActivityClassProvider.
     */
    private val nextActivityClass: Class<*>
        get() = enrollActivityProvider.next

    private val enrollActivityProvider: FaceEnrollActivityClassProvider
        get() = featureFactory.faceFeatureProvider.enrollActivityClassProvider

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        /**
         *  Logs the next activity to be launched, creates an intent for that activity,
         *  adds flags to forward the result, includes any existing extras from the current intent,
         *  starts the new activity and then finishes the current one
         */
        Log.d("FaceEnroll", "forward to $nextActivityClass")
        val nextIntent = Intent(this, nextActivityClass)
        nextIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
        nextIntent.putExtras(intent)
        startActivity(nextIntent)
        finish()
    }
}
 No newline at end of file
Loading