diff options
| author | 2024-03-14 09:48:26 +0000 | |
|---|---|---|
| committer | 2024-03-14 09:48:26 +0000 | |
| commit | 04864bd0a4eae1daeee191b381a84ebbf532fe72 (patch) | |
| tree | 6323e92aaa6cde05e257603ab145f4cdbeeb5332 | |
| parent | 99efcd4992736c6bb2aa1046cdb9dc3d6222a9b7 (diff) | |
| parent | 2b0d2943cc3aece5de4ecd8ce5f40b82d91ccf8a (diff) | |
Merge "Add enable_private_space_features flag check for Private Space implementation" into main
6 files changed, 33 insertions, 13 deletions
diff --git a/core/java/android/content/pm/multiuser.aconfig b/core/java/android/content/pm/multiuser.aconfig index 48a7cc920f1d..749e0f84db77 100644 --- a/core/java/android/content/pm/multiuser.aconfig +++ b/core/java/android/content/pm/multiuser.aconfig @@ -108,6 +108,7 @@ flag { is_fixed_read_only: true } +# This flag guards the private space feature and all its implementations excluding the APIs. APIs are guarded by android.os.Flags.allow_private_profile. flag { name: "enable_private_space_features" namespace: "profile_experiences" diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index fdaa0b467566..318c2911197c 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -3189,6 +3189,7 @@ public class UserManager { conditional = true) @UserHandleAware public boolean canAddPrivateProfile() { + if (!android.multiuser.Flags.enablePrivateSpaceFeatures()) return false; if (android.multiuser.Flags.blockPrivateSpaceCreation()) { try { return mService.canAddPrivateProfile(mUserId); diff --git a/core/java/android/os/flags.aconfig b/core/java/android/os/flags.aconfig index 943014caeb09..375d729a4e08 100644 --- a/core/java/android/os/flags.aconfig +++ b/core/java/android/os/flags.aconfig @@ -38,6 +38,7 @@ flag { bug: "288119641" } +# This flag guards the private space feature, its APIs, and some of the feature implementations. The flag android.multiuser.Flags.enable_private_space_features exclusively guards all the implementations. flag { name: "allow_private_profile" namespace: "profile_experiences" diff --git a/core/java/com/android/internal/app/IntentForwarderActivity.java b/core/java/com/android/internal/app/IntentForwarderActivity.java index c7695187e52d..6bd273bc1aeb 100644 --- a/core/java/com/android/internal/app/IntentForwarderActivity.java +++ b/core/java/com/android/internal/app/IntentForwarderActivity.java @@ -659,6 +659,7 @@ public class IntentForwarderActivity extends Activity { private boolean privateSpaceFlagsEnabled() { return android.os.Flags.allowPrivateProfile() + && android.multiuser.Flags.enablePrivateSpaceFeatures() && android.multiuser.Flags.enablePrivateSpaceIntentRedirection(); } diff --git a/core/tests/coretests/src/com/android/internal/app/IntentForwarderActivityTest.java b/core/tests/coretests/src/com/android/internal/app/IntentForwarderActivityTest.java index 43e62275152e..dbabceaaf3cd 100644 --- a/core/tests/coretests/src/com/android/internal/app/IntentForwarderActivityTest.java +++ b/core/tests/coretests/src/com/android/internal/app/IntentForwarderActivityTest.java @@ -641,6 +641,7 @@ public class IntentForwarderActivityTest { public void shouldForwardToParent_telephony_privateProfile() throws Exception { mSetFlagsRule.enableFlags( android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES, android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_INTENT_REDIRECTION); sComponentName = FORWARD_TO_PARENT_COMPONENT_NAME; diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java index bc7c9a59ff29..6aa1825ba6b7 100644 --- a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java @@ -582,7 +582,8 @@ public final class UserManagerServiceTest { @Test public void testAutoLockPrivateProfile() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); UserManagerService mSpiedUms = spy(mUms); UserInfo privateProfileUser = mSpiedUms.createProfileForUserEvenWhenDisallowedWithThrow(PRIVATE_PROFILE_NAME, @@ -600,7 +601,8 @@ public final class UserManagerServiceTest { @Test public void testAutoLockOnDeviceLockForPrivateProfile() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE); UserManagerService mSpiedUms = spy(mUms); UserInfo privateProfileUser = @@ -620,7 +622,8 @@ public final class UserManagerServiceTest { @Test public void testAutoLockOnDeviceLockForPrivateProfile_keyguardUnlocked() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE); UserManagerService mSpiedUms = spy(mUms); UserInfo privateProfileUser = @@ -638,7 +641,8 @@ public final class UserManagerServiceTest { @Test public void testAutoLockOnDeviceLockForPrivateProfile_flagDisabled() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.disableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE); UserManagerService mSpiedUms = spy(mUms); UserInfo privateProfileUser = @@ -657,7 +661,8 @@ public final class UserManagerServiceTest { @Test public void testAutoLockAfterInactityForPrivateProfile() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE); UserManagerService mSpiedUms = spy(mUms); mockAutoLockForPrivateSpace(Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_AFTER_INACTIVITY); @@ -679,7 +684,8 @@ public final class UserManagerServiceTest { @Test public void testSetOrUpdateAutoLockPreference_noPrivateProfile() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE); mUms.setOrUpdateAutoLockPreferenceForPrivateProfile( @@ -693,7 +699,8 @@ public final class UserManagerServiceTest { @Test public void testSetOrUpdateAutoLockPreference() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE); mUms.createProfileForUserEvenWhenDisallowedWithThrow(PRIVATE_PROFILE_NAME, USER_TYPE_PROFILE_PRIVATE, 0, 0, null); @@ -743,6 +750,8 @@ public final class UserManagerServiceTest { @Test public void testGetProfileIdsExcludingHidden() { + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_HIDING_PROFILES); UserInfo privateProfileUser = mUms.createProfileForUserEvenWhenDisallowedWithThrow("TestPrivateProfile", @@ -754,7 +763,8 @@ public final class UserManagerServiceTest { @Test public void testCreatePrivateProfileOnHeadlessSystemUser_shouldAllowCreation() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION); UserManagerService mSpiedUms = spy(mUms); int mainUser = mSpiedUms.getMainUserId(); @@ -766,7 +776,8 @@ public final class UserManagerServiceTest { @Test public void testCreatePrivateProfileOnSecondaryUser_shouldNotAllowCreation() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION); UserInfo user = mUms.createUserWithThrow(generateLongString(), USER_TYPE_FULL_SECONDARY, 0); assertThat(mUms.canAddPrivateProfile(user.id)).isFalse(); @@ -777,7 +788,8 @@ public final class UserManagerServiceTest { @Test public void testCreatePrivateProfileOnAutoDevices_shouldNotAllowCreation() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION); doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_AUTOMOTIVE), anyInt()); int mainUser = mUms.getMainUserId(); @@ -789,7 +801,8 @@ public final class UserManagerServiceTest { @Test public void testCreatePrivateProfileOnTV_shouldNotAllowCreation() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION); doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_LEANBACK), anyInt()); int mainUser = mUms.getMainUserId(); @@ -801,7 +814,8 @@ public final class UserManagerServiceTest { @Test public void testCreatePrivateProfileOnEmbedded_shouldNotAllowCreation() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION); doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_EMBEDDED), anyInt()); int mainUser = mUms.getMainUserId(); @@ -813,7 +827,8 @@ public final class UserManagerServiceTest { @Test public void testCreatePrivateProfileOnWatch_shouldNotAllowCreation() { - mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE); + mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE, + android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); mSetFlagsRule.enableFlags(Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION); doReturn(true).when(mMockPms).hasSystemFeature(eq(FEATURE_WATCH), anyInt()); int mainUser = mUms.getMainUserId(); |