Declare task affinity for entries that could be launched by SafetyCenter

Test: manual

Bug: 222676668
Change-Id: I44c2f0cee61ffd8f10284cda5a740a9e9d9ea7bb
This commit is contained in:
Yuri Ufimtsev
2022-03-09 09:49:15 +00:00
parent 46756fcb44
commit be98245015
10 changed files with 93 additions and 16 deletions

View File

@@ -205,7 +205,9 @@
</receiver> </receiver>
<activity android:name=".SubSettings" <activity android:name=".SubSettings"
android:theme="@style/Theme.SubSettings" /> android:exported="false"
android:theme="@style/Theme.SubSettings"
android:taskAffinity="com.android.settings.root" />
<activity android:name=".Settings$CreateShortcutActivity" <activity android:name=".Settings$CreateShortcutActivity"
android:exported="true" android:exported="true"
@@ -620,6 +622,17 @@
android:value="@string/menu_key_security"/> android:value="@string/menu_key_security"/>
</activity> </activity>
<activity android:name="Settings$FaceSettingsInternalActivity"
android:label="@string/security_settings_face_preference_title"
android:exported="false"
android:icon="@drawable/ic_face_header"
android:taskAffinity="com.android.settings.root">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.biometrics.face.FaceSettings" />
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
android:value="@string/menu_key_security"/>
</activity>
<activity android:name="Settings$FingerprintSettingsActivity" <activity android:name="Settings$FingerprintSettingsActivity"
android:label="@string/security_settings_fingerprint_preference_title" android:label="@string/security_settings_fingerprint_preference_title"
android:exported="true" android:exported="true"
@@ -636,7 +649,8 @@
<activity android:name="Settings$CombinedBiometricSettingsActivity" <activity android:name="Settings$CombinedBiometricSettingsActivity"
android:label="@string/security_settings_biometric_preference_title" android:label="@string/security_settings_biometric_preference_title"
android:exported="false"> android:exported="false"
android:taskAffinity="com.android.settings.root">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS" <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.biometrics.combination.CombinedBiometricSettings" /> android:value="com.android.settings.biometrics.combination.CombinedBiometricSettings" />
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY" <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
@@ -2188,6 +2202,11 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".biometrics.face.FaceEnrollIntroductionInternal"
android:exported="false"
android:screenOrientation="portrait"
android:taskAffinity="com.android.settings.root" />
<activity android:name=".biometrics.face.FaceEnrollEducation" <activity android:name=".biometrics.face.FaceEnrollEducation"
android:exported="false" android:exported="false"
android:screenOrientation="portrait"/> android:screenOrientation="portrait"/>
@@ -2217,7 +2236,9 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".biometrics.fingerprint.FingerprintSettings" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintSettings"
android:exported="false"
android:taskAffinity="com.android.settings.root" />
<activity android:name=".biometrics.fingerprint.FingerprintEnrollFindSensor" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintEnrollFindSensor" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollEnrolling" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintEnrollEnrolling" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollFinish" android:exported="false"/> <activity android:name=".biometrics.fingerprint.FingerprintEnrollFinish" android:exported="false"/>
@@ -2231,6 +2252,11 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollIntroductionInternal"
android:exported="false"
android:theme="@style/GlifTheme.Light"
android:taskAffinity="com.android.settings.root" />
<activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor" android:exported="false"/> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollEnrolling" android:exported="false"/> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollEnrolling" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFinish" android:exported="false"/> <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFinish" android:exported="false"/>

View File

@@ -28,6 +28,7 @@ import android.util.FeatureFlagUtils;
import android.util.Log; import android.util.Log;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.biometrics.face.FaceSettings;
import com.android.settings.core.FeatureFlags; import com.android.settings.core.FeatureFlags;
import com.android.settings.enterprise.EnterprisePrivacySettings; import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.network.SubscriptionUtil; 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 BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
public static class CreateShortcutActivity extends SettingsActivity { /* empty */ } public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }
public static class FaceSettingsActivity 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 FingerprintSettingsActivity extends SettingsActivity { /* empty */ }
public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ } public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ }
public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ } public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ }

View File

@@ -38,6 +38,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.SubSettings; import com.android.settings.SubSettings;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling; import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction; import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal;
import com.android.settings.core.FeatureFlags; import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.DeepLinkHomepageActivity; import com.android.settings.homepage.DeepLinkHomepageActivity;
import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SettingsHomepageActivity;
@@ -220,6 +221,7 @@ public class ActivityEmbeddingRulesController {
addActivityFilter(activityFilters, searchIntent); addActivityFilter(activityFilters, searchIntent);
} }
addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class); addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class);
addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class);
addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class); addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class);
addActivityFilter(activityFilters, AvatarPickerActivity.class); addActivityFilter(activityFilters, AvatarPickerActivity.class);
mSplitController.registerRule(new ActivityRule(activityFilters, true /* alwaysExpand */)); mSplitController.registerRule(new ActivityRule(activityFilters, true /* alwaysExpand */));

View File

@@ -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 {
}

View File

@@ -71,8 +71,8 @@ public class FaceStatusUtils {
* Returns the class name of the Settings page corresponding to face settings. * Returns the class name of the Settings page corresponding to face settings.
*/ */
public String getSettingsClassName() { public String getSettingsClassName() {
return hasEnrolled() ? Settings.FaceSettingsActivity.class.getName() return hasEnrolled() ? Settings.FaceSettingsInternalActivity.class.getName()
: FaceEnrollIntroduction.class.getName(); : FaceEnrollIntroductionInternal.class.getName();
} }
/** /**

View File

@@ -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 {
}

View File

@@ -79,7 +79,7 @@ public class FingerprintStatusUtils {
*/ */
public String getSettingsClassName() { public String getSettingsClassName() {
return hasEnrolled() ? FingerprintSettings.class.getName() return hasEnrolled() ? FingerprintSettings.class.getName()
: FingerprintEnrollIntroduction.class.getName(); : FingerprintEnrollIntroductionInternal.class.getName();
} }
/** /**

View File

@@ -171,7 +171,7 @@ public class FaceStatusUtilsTest {
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
assertThat(mFaceStatusUtils.getSettingsClassName()) assertThat(mFaceStatusUtils.getSettingsClassName())
.isEqualTo(FaceEnrollIntroduction.class.getName()); .isEqualTo(FaceEnrollIntroductionInternal.class.getName());
} }
@Test @Test
@@ -179,6 +179,6 @@ public class FaceStatusUtilsTest {
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
assertThat(mFaceStatusUtils.getSettingsClassName()) assertThat(mFaceStatusUtils.getSettingsClassName())
.isEqualTo(Settings.FaceSettingsActivity.class.getName()); .isEqualTo(Settings.FaceSettingsInternalActivity.class.getName());
} }
} }

View File

@@ -183,7 +183,7 @@ public class FingerprintStatusUtilsTest {
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
assertThat(mFingerprintStatusUtils.getSettingsClassName()) assertThat(mFingerprintStatusUtils.getSettingsClassName())
.isEqualTo(FingerprintEnrollIntroduction.class.getName()); .isEqualTo(FingerprintEnrollIntroductionInternal.class.getName());
} }
@Test @Test

View File

@@ -47,8 +47,8 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.Settings; import com.android.settings.Settings;
import com.android.settings.biometrics.face.FaceEnrollIntroduction; import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction; import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal;
import com.android.settings.biometrics.fingerprint.FingerprintSettings; import com.android.settings.biometrics.fingerprint.FingerprintSettings;
import com.android.settings.testutils.ResourcesUtils; import com.android.settings.testutils.ResourcesUtils;
@@ -187,7 +187,7 @@ public class BiometricsSafetySourceTest {
assertSafetySourceEnabledDataSetWithSingularSummary( assertSafetySourceEnabledDataSetWithSingularSummary(
"security_settings_fingerprint_preference_title", "security_settings_fingerprint_preference_title",
"security_settings_fingerprint_preference_summary_none", "security_settings_fingerprint_preference_summary_none",
FingerprintEnrollIntroduction.class.getName()); FingerprintEnrollIntroductionInternal.class.getName());
} }
@Test @Test
@@ -258,7 +258,7 @@ public class BiometricsSafetySourceTest {
assertSafetySourceEnabledDataSetWithSingularSummary( assertSafetySourceEnabledDataSetWithSingularSummary(
"security_settings_face_preference_title", "security_settings_face_preference_title",
"security_settings_face_preference_summary_none", "security_settings_face_preference_summary_none",
FaceEnrollIntroduction.class.getName()); FaceEnrollIntroductionInternal.class.getName());
} }
@Test @Test
@@ -290,7 +290,7 @@ public class BiometricsSafetySourceTest {
assertSafetySourceEnabledDataSetWithSingularSummary( assertSafetySourceEnabledDataSetWithSingularSummary(
"security_settings_face_preference_title", "security_settings_face_preference_title",
"security_settings_face_preference_summary", "security_settings_face_preference_summary",
Settings.FaceSettingsActivity.class.getName()); Settings.FaceSettingsInternalActivity.class.getName());
} }
@Test @Test