Loading AndroidManifest.xml +14 −4 Original line number Diff line number Diff line Loading @@ -2809,6 +2809,9 @@ <activity android:name=".biometrics.fingerprint.FingerprintEnrollFinish" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintEnrollParentalConsent" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintEnrollIntroduction" android:exported="false" android:theme="@style/GlifTheme.Light" /> <activity android:name=".biometrics.fingerprint.FingerprintEnroll" android:exported="true" android:theme="@style/GlifTheme.Light"> <intent-filter> Loading @@ -2822,6 +2825,10 @@ android:exported="false" android:theme="@style/GlifTheme.Light" android:taskAffinity="com.android.settings.root" /> <activity android:name=".biometrics.fingerprint.FingerprintEnroll$InternalActivity" android:exported="false" android:theme="@style/GlifTheme.Light" android:taskAffinity="com.android.settings.root" /> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor" android:exported="false" Loading @@ -2829,6 +2836,10 @@ <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollEnrolling" android:exported="false"/> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFinish" android:exported="false"/> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollIntroduction" android:exported="false" android:permission="android.permission.MANAGE_FINGERPRINT" android:theme="@style/GlifTheme.Light" /> <activity android:name=".biometrics.fingerprint.FingerprintEnroll$SetupActivity" android:exported="true" android:permission="android.permission.MANAGE_FINGERPRINT" android:theme="@style/GlifTheme.Light"> Loading @@ -2838,7 +2849,6 @@ </intent-filter> </activity> <activity android:name=".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity" android:exported="true" android:permission="android.permission.MANAGE_FINGERPRINT" Loading src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java +7 −4 Original line number Diff line number Diff line Loading @@ -40,9 +40,8 @@ import com.android.settings.SettingsActivity; import com.android.settings.SubSettings; import com.android.settings.biometrics.face.FaceEnrollIntroduction; import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal; import com.android.settings.biometrics.fingerprint.FingerprintEnrollActivityClassProvider; import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling; import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction; import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal; import com.android.settings.core.FeatureFlags; import com.android.settings.homepage.DeepLinkHomepageActivity; import com.android.settings.homepage.DeepLinkHomepageActivityInternal; Loading Loading @@ -255,8 +254,12 @@ public class ActivityEmbeddingRulesController { .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE); addActivityFilter(activityFilters, searchIntent); } addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class); addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class); final FingerprintEnrollActivityClassProvider fpClassProvider = FeatureFactory .getFeatureFactory() .getFingerprintFeatureProvider() .getEnrollActivityClassProvider(); addActivityFilter(activityFilters, fpClassProvider.getDefault()); addActivityFilter(activityFilters, fpClassProvider.getInternal()); addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class); addActivityFilter(activityFilters, FaceEnrollIntroductionInternal.class); addActivityFilter(activityFilters, FaceEnrollIntroduction.class); Loading src/com/android/settings/biometrics/BiometricUtils.java +3 −4 Original line number Diff line number Diff line Loading @@ -44,10 +44,9 @@ 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.FingerprintEnrollIntroduction; import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor; import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction; import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.ChooseLockGeneric; import com.android.settings.password.ChooseLockSettingsHelper; Loading Loading @@ -262,13 +261,13 @@ public class BiometricUtils { /** * @param context caller's context * @param activityIntent The intent that started the caller's activity * @return Intent for starting FingerprintEnrollIntroduction * @return Intent for starting FingerprintEnroll */ public static Intent getFingerprintIntroIntent(@NonNull Context context, @NonNull Intent activityIntent) { final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent); final Intent intent = new Intent(context, isSuw ? SetupFingerprintEnrollIntroduction.class : FingerprintEnrollIntroduction.class); ? FingerprintEnroll.SetupActivity.class : FingerprintEnroll.class); if (isSuw) { WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent); } Loading src/com/android/settings/biometrics/fingerprint/FingerprintEnroll.kt 0 → 100644 +69 −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.fingerprint 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 /** * Default class for handling fingerprint enrollment, designed to launch a subsequent activity and * forward the result, then finish itself. */ open class FingerprintEnroll: AppCompatActivity() { /** Inner class representing enrolling fingerprint enrollment in SetupWizard environment */ class SetupActivity : FingerprintEnroll() { override val nextActivityClass: Class<*> get() = enrollActivityProvider.setup } /** Inner class representing enrolling fingerprint enrollment from FingerprintSettings */ class InternalActivity : FingerprintEnroll() { override val nextActivityClass: Class<*> get() = enrollActivityProvider.internal } /** * 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. */ open val nextActivityClass: Class<*> get() = enrollActivityProvider.default protected val enrollActivityProvider: FingerprintEnrollActivityClassProvider get() = featureFactory.fingerprintFeatureProvider.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("FingerprintEnroll", "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 src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt 0 → 100644 +34 −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.fingerprint import android.app.Activity open class FingerprintEnrollActivityClassProvider { open val default: Class<out Activity> get() = FingerprintEnrollIntroduction::class.java open val setup: Class<out Activity> get() = SetupFingerprintEnrollIntroduction::class.java open val internal: Class<out Activity> get() = FingerprintEnrollIntroductionInternal::class.java companion object { @JvmStatic val instance = FingerprintEnrollActivityClassProvider() } } Loading
AndroidManifest.xml +14 −4 Original line number Diff line number Diff line Loading @@ -2809,6 +2809,9 @@ <activity android:name=".biometrics.fingerprint.FingerprintEnrollFinish" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintEnrollParentalConsent" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintEnrollIntroduction" android:exported="false" android:theme="@style/GlifTheme.Light" /> <activity android:name=".biometrics.fingerprint.FingerprintEnroll" android:exported="true" android:theme="@style/GlifTheme.Light"> <intent-filter> Loading @@ -2822,6 +2825,10 @@ android:exported="false" android:theme="@style/GlifTheme.Light" android:taskAffinity="com.android.settings.root" /> <activity android:name=".biometrics.fingerprint.FingerprintEnroll$InternalActivity" android:exported="false" android:theme="@style/GlifTheme.Light" android:taskAffinity="com.android.settings.root" /> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor" android:exported="false" Loading @@ -2829,6 +2836,10 @@ <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollEnrolling" android:exported="false"/> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFinish" android:exported="false"/> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollIntroduction" android:exported="false" android:permission="android.permission.MANAGE_FINGERPRINT" android:theme="@style/GlifTheme.Light" /> <activity android:name=".biometrics.fingerprint.FingerprintEnroll$SetupActivity" android:exported="true" android:permission="android.permission.MANAGE_FINGERPRINT" android:theme="@style/GlifTheme.Light"> Loading @@ -2838,7 +2849,6 @@ </intent-filter> </activity> <activity android:name=".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity" android:exported="true" android:permission="android.permission.MANAGE_FINGERPRINT" Loading
src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java +7 −4 Original line number Diff line number Diff line Loading @@ -40,9 +40,8 @@ import com.android.settings.SettingsActivity; import com.android.settings.SubSettings; import com.android.settings.biometrics.face.FaceEnrollIntroduction; import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal; import com.android.settings.biometrics.fingerprint.FingerprintEnrollActivityClassProvider; import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling; import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction; import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal; import com.android.settings.core.FeatureFlags; import com.android.settings.homepage.DeepLinkHomepageActivity; import com.android.settings.homepage.DeepLinkHomepageActivityInternal; Loading Loading @@ -255,8 +254,12 @@ public class ActivityEmbeddingRulesController { .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE); addActivityFilter(activityFilters, searchIntent); } addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class); addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class); final FingerprintEnrollActivityClassProvider fpClassProvider = FeatureFactory .getFeatureFactory() .getFingerprintFeatureProvider() .getEnrollActivityClassProvider(); addActivityFilter(activityFilters, fpClassProvider.getDefault()); addActivityFilter(activityFilters, fpClassProvider.getInternal()); addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class); addActivityFilter(activityFilters, FaceEnrollIntroductionInternal.class); addActivityFilter(activityFilters, FaceEnrollIntroduction.class); Loading
src/com/android/settings/biometrics/BiometricUtils.java +3 −4 Original line number Diff line number Diff line Loading @@ -44,10 +44,9 @@ 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.FingerprintEnrollIntroduction; import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor; import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction; import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.ChooseLockGeneric; import com.android.settings.password.ChooseLockSettingsHelper; Loading Loading @@ -262,13 +261,13 @@ public class BiometricUtils { /** * @param context caller's context * @param activityIntent The intent that started the caller's activity * @return Intent for starting FingerprintEnrollIntroduction * @return Intent for starting FingerprintEnroll */ public static Intent getFingerprintIntroIntent(@NonNull Context context, @NonNull Intent activityIntent) { final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent); final Intent intent = new Intent(context, isSuw ? SetupFingerprintEnrollIntroduction.class : FingerprintEnrollIntroduction.class); ? FingerprintEnroll.SetupActivity.class : FingerprintEnroll.class); if (isSuw) { WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent); } Loading
src/com/android/settings/biometrics/fingerprint/FingerprintEnroll.kt 0 → 100644 +69 −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.fingerprint 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 /** * Default class for handling fingerprint enrollment, designed to launch a subsequent activity and * forward the result, then finish itself. */ open class FingerprintEnroll: AppCompatActivity() { /** Inner class representing enrolling fingerprint enrollment in SetupWizard environment */ class SetupActivity : FingerprintEnroll() { override val nextActivityClass: Class<*> get() = enrollActivityProvider.setup } /** Inner class representing enrolling fingerprint enrollment from FingerprintSettings */ class InternalActivity : FingerprintEnroll() { override val nextActivityClass: Class<*> get() = enrollActivityProvider.internal } /** * 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. */ open val nextActivityClass: Class<*> get() = enrollActivityProvider.default protected val enrollActivityProvider: FingerprintEnrollActivityClassProvider get() = featureFactory.fingerprintFeatureProvider.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("FingerprintEnroll", "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
src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt 0 → 100644 +34 −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.fingerprint import android.app.Activity open class FingerprintEnrollActivityClassProvider { open val default: Class<out Activity> get() = FingerprintEnrollIntroduction::class.java open val setup: Class<out Activity> get() = SetupFingerprintEnrollIntroduction::class.java open val internal: Class<out Activity> get() = FingerprintEnrollIntroductionInternal::class.java companion object { @JvmStatic val instance = FingerprintEnrollActivityClassProvider() } }