summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-18 10:55:10 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-12-18 10:55:10 +0000
commitb7db0039eac97f6c50dd248b7b512b8c950e5777 (patch)
tree6a1ba20e0694671e7d5190bf2f38f85253c35208
parent42e2bc150fcc2ae2d01b0a5ce4283711d93c891a (diff)
parenta81edefdc1d9b23c467ed5f1f5658531b69062a4 (diff)
downloadPermission-android13-platform-release.tar.gz
Merge cherrypicks of ['googleplex-android-review.googlesource.com/25238865'] into tm-platform-release.android-platform-13.0.0_r18android-platform-13.0.0_r17android-platform-13.0.0_r16android13-platform-release
Change-Id: I3d00508d8bc5a1bfa4a5bdf87e94c75d77f8fdd6
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceAppStreamingRoleBehavior.java13
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceComputerRoleBehavior.java13
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceWatchRoleBehavior.java13
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/utils/UserUtils.java33
4 files changed, 62 insertions, 10 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceAppStreamingRoleBehavior.java b/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceAppStreamingRoleBehavior.java
index ca4af2355..8e33980a1 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceAppStreamingRoleBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceAppStreamingRoleBehavior.java
@@ -17,10 +17,13 @@
package com.android.permissioncontroller.role.model;
import android.content.Context;
+import android.os.Process;
+import android.os.UserHandle;
import androidx.annotation.NonNull;
import com.android.permissioncontroller.role.utils.NotificationUtils;
+import com.android.permissioncontroller.role.utils.UserUtils;
/**
* Class for behavior of the "App Streaming" Companion device profile role.
@@ -29,11 +32,17 @@ public class CompanionDeviceAppStreamingRoleBehavior implements RoleBehavior {
@Override
public void grant(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
- NotificationUtils.grantNotificationAccessForPackage(context, packageName);
+ UserHandle user = Process.myUserHandle();
+ if (!UserUtils.isManagedProfile(user, context)) {
+ NotificationUtils.grantNotificationAccessForPackage(context, packageName);
+ }
}
@Override
public void revoke(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
- NotificationUtils.revokeNotificationAccessForPackage(context, packageName);
+ UserHandle user = Process.myUserHandle();
+ if (!UserUtils.isManagedProfile(user, context)) {
+ NotificationUtils.revokeNotificationAccessForPackage(context, packageName);
+ }
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceComputerRoleBehavior.java b/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceComputerRoleBehavior.java
index 1d9409f1f..0d184d940 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceComputerRoleBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceComputerRoleBehavior.java
@@ -17,10 +17,13 @@
package com.android.permissioncontroller.role.model;
import android.content.Context;
+import android.os.Process;
+import android.os.UserHandle;
import androidx.annotation.NonNull;
import com.android.permissioncontroller.role.utils.NotificationUtils;
+import com.android.permissioncontroller.role.utils.UserUtils;
/**
* Class for behavior of the "Computer" Companion device profile role.
@@ -29,11 +32,17 @@ public class CompanionDeviceComputerRoleBehavior implements RoleBehavior {
@Override
public void grant(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
- NotificationUtils.grantNotificationAccessForPackage(context, packageName);
+ UserHandle user = Process.myUserHandle();
+ if (!UserUtils.isManagedProfile(user, context)) {
+ NotificationUtils.grantNotificationAccessForPackage(context, packageName);
+ }
}
@Override
public void revoke(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
- NotificationUtils.revokeNotificationAccessForPackage(context, packageName);
+ UserHandle user = Process.myUserHandle();
+ if (!UserUtils.isManagedProfile(user, context)) {
+ NotificationUtils.revokeNotificationAccessForPackage(context, packageName);
+ }
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceWatchRoleBehavior.java b/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceWatchRoleBehavior.java
index 75675fb00..c38c784c6 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceWatchRoleBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/model/CompanionDeviceWatchRoleBehavior.java
@@ -17,10 +17,13 @@
package com.android.permissioncontroller.role.model;
import android.content.Context;
+import android.os.Process;
+import android.os.UserHandle;
import androidx.annotation.NonNull;
import com.android.permissioncontroller.role.utils.NotificationUtils;
+import com.android.permissioncontroller.role.utils.UserUtils;
/**
* Class for behavior of the "watch" Companion device profile role.
@@ -29,11 +32,17 @@ public class CompanionDeviceWatchRoleBehavior implements RoleBehavior {
@Override
public void grant(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
- NotificationUtils.grantNotificationAccessForPackage(context, packageName);
+ UserHandle user = Process.myUserHandle();
+ if (!UserUtils.isManagedProfile(user, context)) {
+ NotificationUtils.grantNotificationAccessForPackage(context, packageName);
+ }
}
@Override
public void revoke(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
- NotificationUtils.revokeNotificationAccessForPackage(context, packageName);
+ UserHandle user = Process.myUserHandle();
+ if (!UserUtils.isManagedProfile(user, context)) {
+ NotificationUtils.revokeNotificationAccessForPackage(context, packageName);
+ }
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/role/utils/UserUtils.java b/PermissionController/src/com/android/permissioncontroller/role/utils/UserUtils.java
index cd7a6b8a5..68c1e6176 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/utils/UserUtils.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/utils/UserUtils.java
@@ -39,16 +39,41 @@ public class UserUtils {
/**
* Check whether a user is a profile.
*
- * @param user the user to check
+ * @param user the user to check
* @param context the {@code Context} to retrieve system services
- *
* @return whether the user is a profile
*/
public static boolean isProfile(@NonNull UserHandle user, @NonNull Context context) {
+ return isManagedProfile(user, context) || isCloneProfile(user, context);
+ }
+
+ /**
+ * Check whether a user is a managed profile.
+ *
+ * @param user the user to check
+ * @param context the {@code Context} to retrieve system services
+ * @return whether the user is a managed profile
+ */
+ public static boolean isManagedProfile(@NonNull UserHandle user, @NonNull Context context) {
+ Context userContext = getUserContext(context, user);
+ UserManager userUserManager = userContext.getSystemService(UserManager.class);
+ return userUserManager.isManagedProfile(user.getIdentifier());
+ }
+
+ /**
+ * Check whether a user is a clone profile.
+ *
+ * @param user the user to check
+ * @param context the {@code Context} to retrieve system services
+ * @return whether the user is a clone profile
+ */
+ public static boolean isCloneProfile(@NonNull UserHandle user, @NonNull Context context) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
+ return false;
+ }
Context userContext = getUserContext(context, user);
UserManager userUserManager = userContext.getSystemService(UserManager.class);
- return userUserManager.isManagedProfile(user.getIdentifier()) || (
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && userUserManager.isCloneProfile());
+ return userUserManager.isCloneProfile();
}
/**