diff options
author | 2024-11-27 15:48:28 +0000 | |
---|---|---|
committer | 2025-01-09 04:15:58 +0000 | |
commit | a0fb7f1ecf37972f9aa1b6bf433d0f1eb6ba6d13 (patch) | |
tree | de5496262ff5a33c3bcda3feda8bf655288d2fcf | |
parent | 2bd68623fd928b42cc7af6f7815b0b69ab965d1d (diff) |
Change WALLET role exclusivity=profileGroup
Bug: 356107987
Test: manual
Flag: android.permission.flags.wallet_role_cross_user_enabled
Relnote: Allow wallet role to be used in profiles
Change-Id: I5191a2f260173a8bf836a1b0ad673b82062f1bba
-rw-r--r-- | PermissionController/res/xml/roles.xml | 2 | ||||
-rw-r--r-- | PermissionController/role-controller/java/com/android/role/controller/behavior/v35/WalletRoleBehavior.java | 22 | ||||
-rw-r--r-- | flags/Android.bp | 7 |
3 files changed, 26 insertions, 5 deletions
diff --git a/PermissionController/res/xml/roles.xml b/PermissionController/res/xml/roles.xml index fb12ed0d0..2402ed2bf 100644 --- a/PermissionController/res/xml/roles.xml +++ b/PermissionController/res/xml/roles.xml @@ -1838,7 +1838,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", ], |