Declare task affinity for entries that could be launched by SafetyCenter

Test: manual

Bug: 222676668
Change-Id: I44c2f0cee61ffd8f10284cda5a740a9e9d9ea7bb
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 57d7d10..5c3e53e 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -28,6 +28,7 @@
 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 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 124bb4f..6736805 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.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 @@
             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 0000000..7dd29da
--- /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 1749aca..80ffb03 100644
--- a/src/com/android/settings/biometrics/face/FaceStatusUtils.java
+++ b/src/com/android/settings/biometrics/face/FaceStatusUtils.java
@@ -71,8 +71,8 @@
      * 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 0000000..ac32d50
--- /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 5707f32..82ceed6 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
@@ -79,7 +79,7 @@
      */
     public String getSettingsClassName() {
         return hasEnrolled() ? FingerprintSettings.class.getName()
-                : FingerprintEnrollIntroduction.class.getName();
+                : FingerprintEnrollIntroductionInternal.class.getName();
     }
 
     /**