diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 8167583ed08..e204dd92154 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2809,9 +2809,6 @@ - @@ -2822,13 +2819,9 @@ - + android:exported="false" + android:theme="@style/GlifTheme.Light" + android:taskAffinity="com.android.settings.root" /> - @@ -2849,6 +2838,7 @@ + - 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 diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt deleted file mode 100644 index 853a3df01b8..00000000000 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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 - get() = FingerprintEnrollIntroduction::class.java - open val setup: Class - get() = SetupFingerprintEnrollIntroduction::class.java - open val internal: Class - get() = FingerprintEnrollIntroductionInternal::class.java - - companion object { - @JvmStatic - val instance = FingerprintEnrollActivityClassProvider() - } -} diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java index baa88b5655a..c1e34a579a8 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java @@ -33,6 +33,7 @@ public interface FingerprintFeatureProvider { */ SfpsEnrollmentFeature getSfpsEnrollmentFeature(); + /** * Gets calibrator for udfps pre-enroll * @param appContext application context @@ -51,13 +52,4 @@ public interface FingerprintFeatureProvider { * @return the feature implementation */ SfpsRestToUnlockFeature getSfpsRestToUnlockFeature(@NonNull Context context); - - /** - * Gets the provider for current fingerprint enrollment activity classes - * @return the provider - */ - @NonNull - default FingerprintEnrollActivityClassProvider getEnrollActivityClassProvider() { - return FingerprintEnrollActivityClassProvider.getInstance(); - } } diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index 20d453f2ea8..125691fbf1c 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -1142,7 +1142,7 @@ public class FingerprintSettings extends SubSettings { private void addFirstFingerprint(@Nullable Long gkPwHandle) { Intent intent = new Intent(); intent.setClassName(SETTINGS_PACKAGE_NAME, - FingerprintEnroll.InternalActivity.class.getName()); + FingerprintEnrollIntroductionInternal.class.getName()); intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true); intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE, SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE); diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollTest.kt b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollTest.kt deleted file mode 100644 index 07cdffb942c..00000000000 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollTest.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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 -import android.content.Intent -import com.android.settings.overlay.FeatureFactory -import com.android.settings.testutils.FakeFeatureFactory -import com.google.common.truth.Truth.assertThat -import org.junit.Before -import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mockito.`when` -import org.robolectric.Robolectric -import org.robolectric.RobolectricTestRunner -import org.robolectric.Shadows - -@RunWith(RobolectricTestRunner::class) -class FingerprintEnrollTest { - - private lateinit var featureFactory: FeatureFactory - - private companion object { - const val INTENT_KEY = "testKey" - const val INTENT_VALUE = "testValue" - val INTENT = Intent().apply { - putExtra(INTENT_KEY, INTENT_VALUE) - } - } - - private val activityProvider = FingerprintEnrollActivityClassProvider() - - @Before - fun setUp() { - featureFactory = FakeFeatureFactory.setupForTest() - `when`(featureFactory.fingerprintFeatureProvider.enrollActivityClassProvider) - .thenReturn(activityProvider) - } - - private fun setupActivity(activityClass: Class): FingerprintEnroll { - return Robolectric.buildActivity(activityClass, INTENT).create().get() - } - - @Test - fun testFinishAndLaunchDefaultActivity() { - // Run - val activity = setupActivity(FingerprintEnroll::class.java) - - // Verify - verifyLaunchNextActivity(activity, activityProvider.default) - } - - @Test - fun testFinishAndLaunchSetupActivity() { - // Run - val activity = setupActivity(FingerprintEnroll.SetupActivity::class.java) - - // Verify - verifyLaunchNextActivity(activity, activityProvider.setup) - } - - @Test - fun testFinishAndLaunchInternalActivity() { - // Run - val activity = setupActivity(FingerprintEnroll.InternalActivity::class.java) - - // Verify - verifyLaunchNextActivity(activity, activityProvider.internal) - } - - private fun verifyLaunchNextActivity( - currentActivityInstance : FingerprintEnroll, - nextActivityClass: Class - ) { - assertThat(currentActivityInstance.isFinishing).isTrue() - val nextActivityIntent = Shadows.shadowOf(currentActivityInstance).nextStartedActivity - assertThat(nextActivityIntent.component!!.className).isEqualTo(nextActivityClass.name) - assertThat(nextActivityIntent.extras!!.size()).isEqualTo(1) - assertThat(nextActivityIntent.getStringExtra(INTENT_KEY)).isEqualTo(INTENT_VALUE) - } -}