summaryrefslogtreecommitdiff
path: root/PermissionController/role-controller/java/com/android/role/controller/model/RoleBehavior.java
diff options
context:
space:
mode:
Diffstat (limited to 'PermissionController/role-controller/java/com/android/role/controller/model/RoleBehavior.java')
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/model/RoleBehavior.java57
1 files changed, 46 insertions, 11 deletions
diff --git a/PermissionController/role-controller/java/com/android/role/controller/model/RoleBehavior.java b/PermissionController/role-controller/java/com/android/role/controller/model/RoleBehavior.java
index f0c4fc018..4bc1873d5 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/model/RoleBehavior.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/model/RoleBehavior.java
@@ -17,6 +17,7 @@
package com.android.role.controller.model;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
import android.os.UserHandle;
import androidx.annotation.NonNull;
@@ -31,9 +32,10 @@ import java.util.List;
public interface RoleBehavior {
/**
- * @see Role#onRoleAdded(Context)
+ * @see Role#onRoleAddedAsUser(UserHandle, Context)
*/
- default void onRoleAdded(@NonNull Role role, @NonNull Context context) {}
+ default void onRoleAddedAsUser(@NonNull Role role, @NonNull UserHandle user,
+ @NonNull Context context) {}
/**
* @see Role#isAvailableAsUser(UserHandle, Context)
@@ -47,7 +49,8 @@ public interface RoleBehavior {
* @see Role#getDefaultHolders(Context)
*/
@NonNull
- default List<String> getDefaultHolders(@NonNull Role role, @NonNull Context context) {
+ default List<String> getDefaultHoldersAsUser(@NonNull Role role, @NonNull UserHandle user,
+ @NonNull Context context) {
return Collections.emptyList();
}
@@ -55,7 +58,8 @@ public interface RoleBehavior {
* @see Role#getFallbackHolder(Context)
*/
@Nullable
- default String getFallbackHolder(@NonNull Role role, @NonNull Context context) {
+ default String getFallbackHolderAsUser(@NonNull Role role, @NonNull UserHandle user,
+ @NonNull Context context) {
return null;
}
@@ -72,8 +76,8 @@ public interface RoleBehavior {
* @see Role#isPackageQualified(String, Context)
*/
@Nullable
- default Boolean isPackageQualified(@NonNull Role role, @NonNull String packageName,
- @NonNull Context context) {
+ default Boolean isPackageQualifiedAsUser(@NonNull Role role, @NonNull String packageName,
+ @NonNull UserHandle user, @NonNull Context context) {
return null;
}
@@ -87,15 +91,16 @@ public interface RoleBehavior {
}
/**
- * @see Role#grant(String, boolean, boolean, boolean, Context)
+ * @see Role#grantAsUser(String, boolean, boolean, UserHandle, Context)
*/
- default void grant(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {}
+ default void grantAsUser(@NonNull Role role, @NonNull String packageName,
+ @NonNull UserHandle user, @NonNull Context context) {}
/**
- * @see Role#revoke(String, boolean, boolean, Context)
+ * @see Role#revokeAsUser(String, boolean, boolean, UserHandle, Context)
*/
- default void revoke(@NonNull Role role, @NonNull String packageName,
- @NonNull Context context) {}
+ default void revokeAsUser(@NonNull Role role, @NonNull String packageName,
+ @NonNull UserHandle user, @NonNull Context context) {}
/**
* @see Role#onHolderSelectedAsUser(String, UserHandle, Context)
@@ -108,4 +113,34 @@ public interface RoleBehavior {
*/
default void onHolderChangedAsUser(@NonNull Role role, @NonNull UserHandle user,
@NonNull Context context) {}
+
+ /**
+ * Check whether this role should be visible to user.
+ *
+ * @param role the role to check for
+ * @param user the user to check for
+ * @param context the `Context` to retrieve system services
+ *
+ * @return whether this role should be visible to user
+ */
+ default boolean isVisibleAsUser(@NonNull Role role, @NonNull UserHandle user,
+ @NonNull Context context) {
+ return true;
+ }
+
+ /**
+ * Check whether a qualifying application should be visible to user.
+ *
+ * @param role the role to check for
+ * @param applicationInfo the {@link ApplicationInfo} for the application
+ * @param user the user for the application
+ * @param context the {@code Context} to retrieve system services
+ *
+ * @return whether the qualifying application should be visible to user
+ */
+ default boolean isApplicationVisibleAsUser(@NonNull Role role,
+ @NonNull ApplicationInfo applicationInfo, @NonNull UserHandle user,
+ @NonNull Context context) {
+ return true;
+ }
}