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()