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