summaryrefslogtreecommitdiff
path: root/PermissionController/role-controller/java/com/android/role/controller/behavior/BrowserRoleBehavior.java
diff options
context:
space:
mode:
Diffstat (limited to 'PermissionController/role-controller/java/com/android/role/controller/behavior/BrowserRoleBehavior.java')
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/behavior/BrowserRoleBehavior.java42
1 files changed, 25 insertions, 17 deletions
diff --git a/PermissionController/role-controller/java/com/android/role/controller/behavior/BrowserRoleBehavior.java b/PermissionController/role-controller/java/com/android/role/controller/behavior/BrowserRoleBehavior.java
index 2cf6a0b14..0261e1eee 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/behavior/BrowserRoleBehavior.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/behavior/BrowserRoleBehavior.java
@@ -21,7 +21,6 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
-import android.os.Process;
import android.os.UserHandle;
import android.util.ArraySet;
@@ -32,6 +31,7 @@ import com.android.modules.utils.build.SdkLevel;
import com.android.role.controller.model.Permissions;
import com.android.role.controller.model.Role;
import com.android.role.controller.model.RoleBehavior;
+import com.android.role.controller.model.VisibilityMixin;
import com.android.role.controller.util.CollectionUtils;
import com.android.role.controller.util.PackageUtils;
import com.android.role.controller.util.UserUtils;
@@ -61,10 +61,10 @@ public class BrowserRoleBehavior implements RoleBehavior {
@Nullable
@Override
- public String getFallbackHolder(@NonNull Role role, @NonNull Context context) {
- UserHandle user = Process.myUserHandle();
- List<String> qualifyingPackageNames = getQualifyingPackagesAsUserInternal(null, false, user,
- context);
+ public String getFallbackHolderAsUser(@NonNull Role role, @NonNull UserHandle user,
+ @NonNull Context context) {
+ List<String> qualifyingPackageNames = getQualifyingPackagesAsUserInternal(null, false,
+ user, context);
if (qualifyingPackageNames.size() == 1) {
return qualifyingPackageNames.get(0);
}
@@ -76,7 +76,7 @@ public class BrowserRoleBehavior implements RoleBehavior {
return qualifyingSystemPackageNames.get(0);
}
- List<String> defaultPackageNames = role.getDefaultHolders(context);
+ List<String> defaultPackageNames = role.getDefaultHoldersAsUser(user, context);
return CollectionUtils.firstOrNull(defaultPackageNames);
} else {
return null;
@@ -95,10 +95,10 @@ public class BrowserRoleBehavior implements RoleBehavior {
@Nullable
@Override
- public Boolean isPackageQualified(@NonNull Role role, @NonNull String packageName,
- @NonNull Context context) {
+ public Boolean isPackageQualifiedAsUser(@NonNull Role role, @NonNull String packageName,
+ @NonNull UserHandle user, @NonNull Context context) {
List<String> packageNames = getQualifyingPackagesAsUserInternal(packageName, false,
- Process.myUserHandle(), context);
+ user, context);
return !packageNames.isEmpty();
}
@@ -133,24 +133,32 @@ public class BrowserRoleBehavior implements RoleBehavior {
}
@Override
- public void grant(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
+ public void grantAsUser(@NonNull Role role, @NonNull String packageName,
+ @NonNull UserHandle user, @NonNull Context context) {
// @see com.android.server.pm.permission.DefaultPermissionGrantPolicy
// #grantDefaultPermissionsToDefaultBrowser(java.lang.String, int)
if (SdkLevel.isAtLeastS()) {
- if (PackageUtils.isSystemPackage(packageName, context)) {
- Permissions.grant(packageName, SYSTEM_BROWSER_PERMISSIONS, false, false, true,
- false, false, context);
+ if (PackageUtils.isSystemPackageAsUser(packageName, user, context)) {
+ Permissions.grantAsUser(packageName, SYSTEM_BROWSER_PERMISSIONS, false, false,
+ true, false, false, user, context);
}
}
}
@Override
- public void revoke(@NonNull Role role, @NonNull String packageName, @NonNull Context context) {
+ public void revokeAsUser(@NonNull Role role, @NonNull String packageName,
+ @NonNull UserHandle user, @NonNull Context context) {
if (SdkLevel.isAtLeastT()) {
- if (PackageUtils.isSystemPackage(packageName, context)) {
- Permissions.revoke(packageName, SYSTEM_BROWSER_PERMISSIONS, true, false, false,
- context);
+ if (PackageUtils.isSystemPackageAsUser(packageName, user, context)) {
+ Permissions.revokeAsUser(packageName, SYSTEM_BROWSER_PERMISSIONS, true, false,
+ false, user, context);
}
}
}
+
+ @Override
+ public boolean isVisibleAsUser(@NonNull Role role, @NonNull UserHandle user,
+ @NonNull Context context) {
+ return VisibilityMixin.isVisible("config_showBrowserRole", true, user, context);
+ }
}