diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 3fb838d46dc..ad153d7a339 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -5139,9 +5139,9 @@ + android:exported="false"> - + @@ -5153,6 +5153,14 @@ android:exported="false"> + + + + + + + users = mUserManager.getProfiles(0); + List users = mUserManager.getProfiles(mContext.getUserId()); for (UserInfo user : users) { if (user.isPrivateProfile()) { mUserHandle = user.getUserHandle(); diff --git a/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java b/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java index 4e1741a7cda..3272f125756 100644 --- a/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java +++ b/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java @@ -44,11 +44,27 @@ public final class PrivateSpaceSafetySource { return; } - // Check the profile type - we don't want to show this for anything other than primary user. UserManager userManager = context.getSystemService(UserManager.class); - if (userManager != null && !userManager.isMainUser()) { - Log.i(TAG, "setSafetySourceData not main user"); - return; + PrivateSpaceMaintainer privateSpaceMaintainer = + PrivateSpaceMaintainer.getInstance(context); + if (android.multiuser.Flags.enablePrivateSpaceFeatures() + && android.multiuser.Flags.blockPrivateSpaceCreation()) { + // Do not add the entry point when + // -Private Profile is not present and + // -Private Profile cannot be added. + if (!privateSpaceMaintainer.doesPrivateSpaceExist() + && userManager != null + && !userManager.canAddPrivateProfile()) { + Log.i(TAG, "Private Space not allowed for user " + context.getUser()); + return; + } + } else { + // Check the profile type - we don't want to show this for anything other than primary + // user. + if (userManager != null && !userManager.isMainUser()) { + Log.i(TAG, "setSafetySourceData not main user"); + return; + } } if (!Flags.allowPrivateProfile()