diff options
5 files changed, 39 insertions, 5 deletions
diff --git a/PermissionController/res/xml/roles.xml b/PermissionController/res/xml/roles.xml index 3c61d1569..b5d4db798 100644 --- a/PermissionController/res/xml/roles.xml +++ b/PermissionController/res/xml/roles.xml @@ -1830,7 +1830,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", ], diff --git a/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt index 9ec09dab7..596178b70 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt @@ -29,6 +29,7 @@ import android.platform.test.annotations.AppModeFull import android.platform.test.annotations.RequiresFlagsEnabled import android.platform.test.flag.junit.CheckFlagsRule import android.platform.test.flag.junit.DeviceFlagsValueProvider +import androidx.test.filters.FlakyTest import androidx.test.filters.SdkSuppress import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.By @@ -204,6 +205,7 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { } @RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) + @FlakyTest(bugId = 387927331) @Test fun grantDialogBlocksRestrictedGroupsThenRequestsUnrestrictedGroupsDespiteOutOfOrderRequest() { installPackageWithInstallSourceFromDownloadedFileAndAllowHardRestrictedPerms( @@ -219,6 +221,8 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { waitForWindowTransition = false ) { clickECMAlertDialogOKButton() + // TODO: b/387927331 - On some targets, grant dialog hangs after this click + Thread.sleep(3_000L) clickPermissionRequestDenyButton() } assertTrue(isClearRestrictionAllowed(APP_PACKAGE_NAME)) @@ -234,6 +238,7 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { } @RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) + @FlakyTest(bugId = 387927331) @Test fun grantDialogBlocksRestrictedGroupsThenRequestsUnrestrictedHighPriorityGroups() { installPackageWithInstallSourceFromDownloadedFileAndAllowHardRestrictedPerms( @@ -247,12 +252,15 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { waitForWindowTransition = false ) { clickECMAlertDialogOKButton() + // TODO: b/387927331 - On some targets, grant dialog hangs after this click + Thread.sleep(3_000L) clickPermissionRequestAllowForegroundButton() } assertTrue(isClearRestrictionAllowed(APP_PACKAGE_NAME)) } @RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) + @FlakyTest(bugId = 390440965) @Test fun grantDialogBlocksRestrictedGroupsThenRequestsUnrestrictedLowPriorityGroups() { installPackageWithInstallSourceFromDownloadedFileAndAllowHardRestrictedPerms( @@ -266,6 +274,8 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { waitForWindowTransition = false ) { clickECMAlertDialogOKButton() + // TODO: b/387927331 - On some targets, grant dialog hangs after this click + Thread.sleep(3_000L) clickPermissionRequestAllowForegroundButton() } assertTrue(isClearRestrictionAllowed(APP_PACKAGE_NAME)) diff --git a/tests/cts/permissionui/src/android/permissionui/cts/LocationAccuracyTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/LocationAccuracyTest.kt index 176010cf5..d2086a06a 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/LocationAccuracyTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/LocationAccuracyTest.kt @@ -25,6 +25,7 @@ import com.android.modules.utils.build.SdkLevel import org.junit.Assume.assumeFalse import org.junit.Assume.assumeTrue import org.junit.Before +import org.junit.Ignore import org.junit.Test @FlakyTest @@ -50,6 +51,8 @@ class LocationAccuracyTest : BaseUsePermissionTest() { } @Test + @Ignore("b/390440965") + // Ignore this test until the cause of flakiness is identified. fun testCoarsePermissionIsGranted() { installPackage(APP_APK_PATH_31) |