summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author James Willcox <jwillcox@google.com> 2025-01-16 10:58:06 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-01-16 10:58:06 -0800
commitb2d37acd8c7488f2aec748aff3609b68206eaa7f (patch)
tree5cafbb868da10d0628f0ae3e427a4eaf229aa5c8
parent20b371d815004e2e65d4a8602f0842f9480f7d4a (diff)
parenta0fb7f1ecf37972f9aa1b6bf433d0f1eb6ba6d13 (diff)
Merge "Change WALLET role exclusivity=profileGroup" into main
-rw-r--r--PermissionController/res/xml/roles.xml2
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/behavior/v35/WalletRoleBehavior.java22
-rw-r--r--flags/Android.bp7
3 files changed, 26 insertions, 5 deletions
diff --git a/PermissionController/res/xml/roles.xml b/PermissionController/res/xml/roles.xml
index 2fd5d6ac5..204fb74f5 100644
--- a/PermissionController/res/xml/roles.xml
+++ b/PermissionController/res/xml/roles.xml
@@ -1832,7 +1832,7 @@
defaultHolders="config_defaultWallet"
description="@string/role_wallet_description"
exclusive="true"
- exclusivity="user"
+ exclusivity="profileGroup"
label="@string/role_wallet_label"
minSdkVersion="35"
overrideUserWhenGranting="true"
diff --git a/PermissionController/role-controller/java/com/android/role/controller/behavior/v35/WalletRoleBehavior.java b/PermissionController/role-controller/java/com/android/role/controller/behavior/v35/WalletRoleBehavior.java
index d01e59456..aed71564d 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/behavior/v35/WalletRoleBehavior.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/behavior/v35/WalletRoleBehavior.java
@@ -41,6 +41,7 @@ import com.android.modules.utils.build.SdkLevel;
import com.android.role.controller.model.Role;
import com.android.role.controller.model.RoleBehavior;
import com.android.role.controller.util.CollectionUtils;
+import com.android.role.controller.util.RoleFlags;
import com.android.role.controller.util.UserUtils;
import org.xmlpull.v1.XmlPullParserException;
@@ -62,8 +63,25 @@ public class WalletRoleBehavior implements RoleBehavior {
@Override
public boolean isAvailableAsUser(@NonNull Role role, @NonNull UserHandle user,
@NonNull Context context) {
- return SdkLevel.isAtLeastV() && Flags.walletRoleEnabled()
- && !UserUtils.isProfile(user, context);
+ if (!(SdkLevel.isAtLeastV() && Flags.walletRoleEnabled())) {
+ return false;
+ }
+
+ if (Flags.walletRoleCrossUserEnabled() && RoleFlags.isProfileGroupExclusivityAvailable()) {
+ return !UserUtils.isPrivateProfile(user, context);
+ } else {
+ return !UserUtils.isProfile(user, context);
+ }
+ }
+
+ @Nullable
+ @Override
+ public Integer getExclusivity() {
+ if (Flags.walletRoleCrossUserEnabled() && RoleFlags.isProfileGroupExclusivityAvailable()) {
+ return Role.EXCLUSIVITY_PROFILE_GROUP;
+ }
+
+ return Role.EXCLUSIVITY_USER;
}
@Nullable
diff --git a/flags/Android.bp b/flags/Android.bp
index d22da26c3..166e55492 100644
--- a/flags/Android.bp
+++ b/flags/Android.bp
@@ -30,15 +30,18 @@ java_aconfig_library {
name: "com.android.permission.flags-aconfig-java-export",
aconfig_declarations: "com.android.permission.flags-aconfig",
mode: "exported",
- sdk_version: "module_current",
+ defaults: ["framework-minus-apex-aconfig-java-defaults"],
min_sdk_version: "30",
installable: false,
- libs: ["framework-configinfrastructure.stubs.module_lib"],
visibility: [
+ "//frameworks/base",
"//packages/modules/Permission:__subpackages__",
+ "//packages/modules/Nfc:__subpackages__",
"//vendor:__subpackages__",
],
apex_available: [
+ "//apex_available:platform",
+ "com.android.nfcservices",
"com.android.permission",
"test_com.android.permission",
],