summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Richard MacGregor <rmacgregor@google.com> 2025-02-10 14:13:20 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-02-10 14:13:20 -0800
commit9f36a3b926f3638bcdedba06ac1ad50818d8874f (patch)
tree2c42afb64a011caaf2cc7bb484010e96f9527888
parent381e04771973626375e21b8a2d24d9fd02893f2f (diff)
parentcc340d6ebe649664620e6b8bb59f2e21058733ca (diff)
Merge changes I03f3dfd9,Ib2bed259 into main
* changes: set minSdk for ReservedForTestingProfileGroupExclusivityRole Update B sdk level checks
-rw-r--r--PermissionController/res/xml/roles.xml5
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/behavior/v33/CompanionDeviceAppStreamingRoleBehavior.java4
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/behavior/v34/CompanionDeviceNearbyDeviceStreamingRoleBehavior.java4
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/behavior/v36/ReservedForTestingProfileGroupExclusivityRoleBehavior.java (renamed from PermissionController/role-controller/java/com/android/role/controller/behavior/ReservedForTestingProfileGroupExclusivityRoleBehavior.java)6
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/model/AppOp.java3
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/model/Permission.java3
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/model/Role.java2
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/model/RoleParser.java3
-rw-r--r--PermissionController/role-controller/java/com/android/role/controller/util/RoleFlags.java12
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/compat/AppPermissionFragmentCompat.java3
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/behavior/v36/ReservedForTestingProfileGroupExclusivityRoleUiBehavior.java (renamed from PermissionController/src/com/android/permissioncontroller/role/ui/behavior/ReservedForTestingProfileGroupExclusivityRoleUiBehavior.java)6
11 files changed, 23 insertions, 28 deletions
diff --git a/PermissionController/res/xml/roles.xml b/PermissionController/res/xml/roles.xml
index 72e1d9654..0f9ff7112 100644
--- a/PermissionController/res/xml/roles.xml
+++ b/PermissionController/res/xml/roles.xml
@@ -1878,19 +1878,20 @@
-->
<role
name="android.app.role.RESERVED_FOR_TESTING_PROFILE_GROUP_EXCLUSIVITY"
- behavior="ReservedForTestingProfileGroupExclusivityRoleBehavior"
+ behavior="v36.ReservedForTestingProfileGroupExclusivityRoleBehavior"
description="@string/role_for_testing_profile_group_exclusivity_description"
exclusive="true"
exclusivity="profileGroup"
fallBackToDefaultHolder="true"
featureFlag="com.android.permission.flags.Flags.crossUserRoleEnabled"
label="@string/role_for_testing_profile_group_exclusivity_label"
+ minSdkVersion="36"
requestable="true"
requestDescription="@string/role_for_testing_profile_group_exclusivity_request_description"
requestTitle="@string/role_for_testing_profile_group_exclusivity_request_title"
shortLabel="@string/role_for_testing_profile_group_exclusivity_short_label"
showNone="true"
- uiBehavior="ReservedForTestingProfileGroupExclusivityRoleUiBehavior"
+ uiBehavior="v36.ReservedForTestingProfileGroupExclusivityRoleUiBehavior"
visible="false"/>
<!---
diff --git a/PermissionController/role-controller/java/com/android/role/controller/behavior/v33/CompanionDeviceAppStreamingRoleBehavior.java b/PermissionController/role-controller/java/com/android/role/controller/behavior/v33/CompanionDeviceAppStreamingRoleBehavior.java
index e99ffb58c..85c4be569 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/behavior/v33/CompanionDeviceAppStreamingRoleBehavior.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/behavior/v33/CompanionDeviceAppStreamingRoleBehavior.java
@@ -22,10 +22,10 @@ import android.os.UserHandle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+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.NotificationUtils;
-import com.android.role.controller.util.RoleFlags;
import com.android.role.controller.util.UserUtils;
/**
@@ -52,6 +52,6 @@ public class CompanionDeviceAppStreamingRoleBehavior implements RoleBehavior {
@Override
@Nullable
public Boolean shouldAllowBypassingQualification(@NonNull Role role, @NonNull Context context) {
- return !RoleFlags.isAtLeastB();
+ return !SdkLevel.isAtLeastB();
}
}
diff --git a/PermissionController/role-controller/java/com/android/role/controller/behavior/v34/CompanionDeviceNearbyDeviceStreamingRoleBehavior.java b/PermissionController/role-controller/java/com/android/role/controller/behavior/v34/CompanionDeviceNearbyDeviceStreamingRoleBehavior.java
index b0f58f40b..f941ec68d 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/behavior/v34/CompanionDeviceNearbyDeviceStreamingRoleBehavior.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/behavior/v34/CompanionDeviceNearbyDeviceStreamingRoleBehavior.java
@@ -21,9 +21,9 @@ import android.content.Context;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+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.RoleFlags;
/**
* Class for behavior of the "Nearby Device Streaming" Companion device profile role.
@@ -33,6 +33,6 @@ public class CompanionDeviceNearbyDeviceStreamingRoleBehavior implements RoleBeh
@Override
@Nullable
public Boolean shouldAllowBypassingQualification(@NonNull Role role, @NonNull Context context) {
- return !RoleFlags.isAtLeastB();
+ return !SdkLevel.isAtLeastB();
}
}
diff --git a/PermissionController/role-controller/java/com/android/role/controller/behavior/ReservedForTestingProfileGroupExclusivityRoleBehavior.java b/PermissionController/role-controller/java/com/android/role/controller/behavior/v36/ReservedForTestingProfileGroupExclusivityRoleBehavior.java
index 5299886f6..e50f33ffd 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/behavior/ReservedForTestingProfileGroupExclusivityRoleBehavior.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/behavior/v36/ReservedForTestingProfileGroupExclusivityRoleBehavior.java
@@ -14,15 +14,17 @@
* limitations under the License.
*/
-package com.android.role.controller.behavior;
+package com.android.role.controller.behavior.v36;
import android.app.role.RoleManager;
import android.content.Context;
import android.content.pm.ApplicationInfo;
+import android.os.Build;
import android.os.UserHandle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
import com.android.role.controller.model.Role;
import com.android.role.controller.model.RoleBehavior;
@@ -33,7 +35,7 @@ import com.android.role.controller.util.UserUtils;
import java.util.ArrayList;
import java.util.List;
-// TODO(b/383538899): make minSdk36
+@RequiresApi(Build.VERSION_CODES.BAKLAVA)
public class ReservedForTestingProfileGroupExclusivityRoleBehavior implements RoleBehavior {
@Nullable
@Override
diff --git a/PermissionController/role-controller/java/com/android/role/controller/model/AppOp.java b/PermissionController/role-controller/java/com/android/role/controller/model/AppOp.java
index 99145c747..a0007dcc0 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/model/AppOp.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/model/AppOp.java
@@ -26,7 +26,6 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import com.android.modules.utils.build.SdkLevel;
-import com.android.role.controller.util.RoleFlags;
import com.android.role.controller.util.PackageUtils;
import java.util.Objects;
@@ -139,7 +138,7 @@ public class AppOp {
}
return Build.VERSION.SDK_INT >= mMinSdkVersion
// Workaround to match the value 36 for B in roles.xml before SDK finalization.
- || (mMinSdkVersion == 36 && RoleFlags.isAtLeastB());
+ || (mMinSdkVersion == 36 && SdkLevel.isAtLeastB());
}
private boolean isAvailableAsUser(@NonNull String packageName,
diff --git a/PermissionController/role-controller/java/com/android/role/controller/model/Permission.java b/PermissionController/role-controller/java/com/android/role/controller/model/Permission.java
index 889f5263d..c3404be8b 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/model/Permission.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/model/Permission.java
@@ -26,7 +26,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.modules.utils.build.SdkLevel;
-import com.android.role.controller.util.RoleFlags;
import com.android.role.controller.util.UserUtils;
import java.util.Objects;
@@ -99,7 +98,7 @@ public class Permission {
}
if (Build.VERSION.SDK_INT >= mMinSdkVersion
// Workaround to match the value 36 for B in roles.xml before SDK finalization.
- || (mMinSdkVersion == 36 && RoleFlags.isAtLeastB())) {
+ || (mMinSdkVersion == 36 && SdkLevel.isAtLeastB())) {
return true;
}
if (Build.VERSION.SDK_INT >= mOptionalMinSdkVersion) {
diff --git a/PermissionController/role-controller/java/com/android/role/controller/model/Role.java b/PermissionController/role-controller/java/com/android/role/controller/model/Role.java
index f0df97acc..1b7617b0d 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/model/Role.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/model/Role.java
@@ -501,7 +501,7 @@ public class Role {
}
return (Build.VERSION.SDK_INT >= mMinSdkVersion
// Workaround to match the value 36 for B in roles.xml before SDK finalization.
- || (mMinSdkVersion == 36 && RoleFlags.isAtLeastB()))
+ || (mMinSdkVersion == 36 && SdkLevel.isAtLeastB()))
&& Build.VERSION.SDK_INT <= mMaxSdkVersion;
}
diff --git a/PermissionController/role-controller/java/com/android/role/controller/model/RoleParser.java b/PermissionController/role-controller/java/com/android/role/controller/model/RoleParser.java
index 9c3746b79..f0a730647 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/model/RoleParser.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/model/RoleParser.java
@@ -436,10 +436,9 @@ public class RoleParser {
exclusivity = Role.EXCLUSIVITY_USER;
break;
case EXCLUSIVITY_PROFILE_GROUP:
- // TODO(b/372743073): change to isAtLeastB once available
// EXCLUSIVITY_PROFILE behavior only available for B+
// fallback to default of EXCLUSIVITY_USER
- exclusivity = SdkLevel.isAtLeastV()
+ exclusivity = SdkLevel.isAtLeastB()
? Role.EXCLUSIVITY_PROFILE_GROUP
: Role.EXCLUSIVITY_USER;
break;
diff --git a/PermissionController/role-controller/java/com/android/role/controller/util/RoleFlags.java b/PermissionController/role-controller/java/com/android/role/controller/util/RoleFlags.java
index 2c5a247b6..23e3a2c65 100644
--- a/PermissionController/role-controller/java/com/android/role/controller/util/RoleFlags.java
+++ b/PermissionController/role-controller/java/com/android/role/controller/util/RoleFlags.java
@@ -20,7 +20,7 @@ import android.os.Build;
import androidx.annotation.ChecksSdkIntAtLeast;
-import java.util.Objects;
+import com.android.modules.utils.build.SdkLevel;
/** Util class for getting shared feature flag check logic. */
public final class RoleFlags {
@@ -32,14 +32,6 @@ public final class RoleFlags {
*/
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.BAKLAVA)
public static boolean isProfileGroupExclusivityAvailable() {
- // TODO(b/372743073): change to isAtLeastB once available
- return isAtLeastB() && com.android.permission.flags.Flags.crossUserRoleEnabled();
- }
-
- // TODO(b/372743073): remove once SdkLevel.isAtLeastB available
- @ChecksSdkIntAtLeast(api = 36 /* BUILD_VERSION_CODES.Baklava */)
- public static boolean isAtLeastB() {
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA
- || Objects.equals(Build.VERSION.CODENAME, "Baklava");
+ return SdkLevel.isAtLeastB() && com.android.permission.flags.Flags.crossUserRoleEnabled();
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/compat/AppPermissionFragmentCompat.java b/PermissionController/src/com/android/permissioncontroller/permission/compat/AppPermissionFragmentCompat.java
index a5234562b..50e3688e2 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/compat/AppPermissionFragmentCompat.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/compat/AppPermissionFragmentCompat.java
@@ -33,7 +33,6 @@ import com.android.permission.flags.Flags;
import com.android.permissioncontroller.R;
import com.android.permissioncontroller.permission.ui.handheld.max35.LegacyAppPermissionFragment;
import com.android.permissioncontroller.permission.ui.handheld.v36.AppPermissionFragment;
-import com.android.role.controller.util.RoleFlags;
/** Helper methods for AppPermissionFragment across SDKs for compatibility. */
public class AppPermissionFragmentCompat {
@@ -45,7 +44,7 @@ public class AppPermissionFragmentCompat {
*/
@NonNull
public static PreferenceFragmentCompat createFragment(@NonNull Context context) {
- if ((RoleFlags.isAtLeastB() && Flags.appPermissionFragmentUsesPreferences())
+ if ((SdkLevel.isAtLeastB() && Flags.appPermissionFragmentUsesPreferences())
|| (SdkLevel.isAtLeastV() && context.getResources().getBoolean(
R.bool.config_usePreferenceForAppPermissionSettings))) {
return new AppPermissionFragment();
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/ReservedForTestingProfileGroupExclusivityRoleUiBehavior.java b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/v36/ReservedForTestingProfileGroupExclusivityRoleUiBehavior.java
index be51a1e17..00b1ce5b1 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/ReservedForTestingProfileGroupExclusivityRoleUiBehavior.java
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/behavior/v36/ReservedForTestingProfileGroupExclusivityRoleUiBehavior.java
@@ -14,23 +14,27 @@
* limitations under the License.
*/
-package com.android.permissioncontroller.role.ui.behavior;
+package com.android.permissioncontroller.role.ui.behavior.v36;
import android.content.Context;
import android.content.pm.ApplicationInfo;
+import android.os.Build;
import android.os.UserHandle;
import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
import androidx.preference.Preference;
import com.android.permissioncontroller.permission.utils.Utils;
import com.android.permissioncontroller.role.ui.RequestRoleItemView;
import com.android.permissioncontroller.role.ui.TwoTargetPreference;
+import com.android.permissioncontroller.role.ui.behavior.RoleUiBehavior;
import com.android.role.controller.model.Role;
import com.android.role.controller.util.UserUtils;
import java.util.List;
+@RequiresApi(Build.VERSION_CODES.BAKLAVA)
public class ReservedForTestingProfileGroupExclusivityRoleUiBehavior implements RoleUiBehavior {
@Override
public void preparePreferenceAsUser(@NonNull Role role, @NonNull TwoTargetPreference preference,