diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 768d8ed7bb8..164d42e5ffb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -205,7 +205,9 @@ + android:exported="false" + android:theme="@style/Theme.SubSettings" + android:taskAffinity="com.android.settings.root" /> + + + + + + android:exported="false" + android:taskAffinity="com.android.settings.root"> + android:exported="true" + android:screenOrientation="portrait"> + + @@ -2217,7 +2236,9 @@ - + @@ -2231,6 +2252,11 @@ + + diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 57d7d105188..5c3e53e90eb 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -28,6 +28,7 @@ import android.util.FeatureFlagUtils; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; +import com.android.settings.biometrics.face.FaceSettings; import com.android.settings.core.FeatureFlags; import com.android.settings.enterprise.EnterprisePrivacySettings; import com.android.settings.network.SubscriptionUtil; @@ -50,6 +51,8 @@ public class Settings extends SettingsActivity { public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ } public static class CreateShortcutActivity extends SettingsActivity { /* empty */ } public static class FaceSettingsActivity extends SettingsActivity { /* empty */ } + /** Container for {@link FaceSettings} to use with a pre-defined task affinity. */ + public static class FaceSettingsInternalActivity extends SettingsActivity { /* empty */ } public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ } public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ } public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ } diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java index 124bb4f2707..6736805ec11 100644 --- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java +++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java @@ -38,6 +38,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.SubSettings; 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.SettingsHomepageActivity; @@ -220,6 +221,7 @@ public class ActivityEmbeddingRulesController { addActivityFilter(activityFilters, searchIntent); } addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class); + addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class); addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class); addActivityFilter(activityFilters, AvatarPickerActivity.class); mSplitController.registerRule(new ActivityRule(activityFilters, true /* alwaysExpand */)); diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroductionInternal.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroductionInternal.java new file mode 100644 index 00000000000..7dd29da3aea --- /dev/null +++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroductionInternal.java @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2022 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; + +/** + * Wrapper of {@link FaceEnrollIntroduction} to use with a pre-defined task affinity. + */ +public class FaceEnrollIntroductionInternal extends FaceEnrollIntroduction { +} diff --git a/src/com/android/settings/biometrics/face/FaceStatusUtils.java b/src/com/android/settings/biometrics/face/FaceStatusUtils.java index 1749aca2051..80ffb03b0b2 100644 --- a/src/com/android/settings/biometrics/face/FaceStatusUtils.java +++ b/src/com/android/settings/biometrics/face/FaceStatusUtils.java @@ -71,8 +71,8 @@ public class FaceStatusUtils { * Returns the class name of the Settings page corresponding to face settings. */ public String getSettingsClassName() { - return hasEnrolled() ? Settings.FaceSettingsActivity.class.getName() - : FaceEnrollIntroduction.class.getName(); + return hasEnrolled() ? Settings.FaceSettingsInternalActivity.class.getName() + : FaceEnrollIntroductionInternal.class.getName(); } /** diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionInternal.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionInternal.java new file mode 100644 index 00000000000..ac32d5013af --- /dev/null +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroductionInternal.java @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2022 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; + +/** + * Wrapper of {@link FingerprintEnrollIntroduction} to use with a pre-defined task affinity. + */ +public class FingerprintEnrollIntroductionInternal extends FingerprintEnrollIntroduction { +} diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java index 5707f328601..82ceed6c878 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java @@ -79,7 +79,7 @@ public class FingerprintStatusUtils { */ public String getSettingsClassName() { return hasEnrolled() ? FingerprintSettings.class.getName() - : FingerprintEnrollIntroduction.class.getName(); + : FingerprintEnrollIntroductionInternal.class.getName(); } /** diff --git a/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java index 9f9dd9355ec..6dfb1e6093f 100644 --- a/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java @@ -171,7 +171,7 @@ public class FaceStatusUtilsTest { when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); assertThat(mFaceStatusUtils.getSettingsClassName()) - .isEqualTo(FaceEnrollIntroduction.class.getName()); + .isEqualTo(FaceEnrollIntroductionInternal.class.getName()); } @Test @@ -179,6 +179,6 @@ public class FaceStatusUtilsTest { when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); assertThat(mFaceStatusUtils.getSettingsClassName()) - .isEqualTo(Settings.FaceSettingsActivity.class.getName()); + .isEqualTo(Settings.FaceSettingsInternalActivity.class.getName()); } } diff --git a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java index 4ecf82e3479..6faf8011278 100644 --- a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java @@ -183,7 +183,7 @@ public class FingerprintStatusUtilsTest { when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); assertThat(mFingerprintStatusUtils.getSettingsClassName()) - .isEqualTo(FingerprintEnrollIntroduction.class.getName()); + .isEqualTo(FingerprintEnrollIntroductionInternal.class.getName()); } @Test diff --git a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java index 765032b4b70..addb4917381 100644 --- a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java +++ b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java @@ -47,8 +47,8 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.Settings; -import com.android.settings.biometrics.face.FaceEnrollIntroduction; -import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction; +import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal; +import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal; import com.android.settings.biometrics.fingerprint.FingerprintSettings; import com.android.settings.testutils.ResourcesUtils; @@ -187,7 +187,7 @@ public class BiometricsSafetySourceTest { assertSafetySourceEnabledDataSetWithSingularSummary( "security_settings_fingerprint_preference_title", "security_settings_fingerprint_preference_summary_none", - FingerprintEnrollIntroduction.class.getName()); + FingerprintEnrollIntroductionInternal.class.getName()); } @Test @@ -258,7 +258,7 @@ public class BiometricsSafetySourceTest { assertSafetySourceEnabledDataSetWithSingularSummary( "security_settings_face_preference_title", "security_settings_face_preference_summary_none", - FaceEnrollIntroduction.class.getName()); + FaceEnrollIntroductionInternal.class.getName()); } @Test @@ -290,7 +290,7 @@ public class BiometricsSafetySourceTest { assertSafetySourceEnabledDataSetWithSingularSummary( "security_settings_face_preference_title", "security_settings_face_preference_summary", - Settings.FaceSettingsActivity.class.getName()); + Settings.FaceSettingsInternalActivity.class.getName()); } @Test