diff options
author | 2023-10-23 21:37:19 +0000 | |
---|---|---|
committer | 2023-10-23 21:37:19 +0000 | |
commit | 4e6b1e5f27689aab59d2c5cfd449b6fe17e0c49f (patch) | |
tree | 79fcf7fd084f1935e217d1b0e335c3d1c516daf0 /framework-s/java | |
parent | 30e2b1cfd29f1cab4da77282ed2e7b9941b003fe (diff) | |
parent | cdc0ad9ab640f68b3583cb466f07f6ad2c1cb89b (diff) |
Merge "[Role Logic Move] Migrate isRoleFallbackEnabled (system server)" into main
Diffstat (limited to 'framework-s/java')
-rw-r--r-- | framework-s/java/android/app/role/IRoleManager.aidl | 4 | ||||
-rw-r--r-- | framework-s/java/android/app/role/RoleManager.java | 49 |
2 files changed, 53 insertions, 0 deletions
diff --git a/framework-s/java/android/app/role/IRoleManager.aidl b/framework-s/java/android/app/role/IRoleManager.aidl index 5f7cb1bf5..5bcda037e 100644 --- a/framework-s/java/android/app/role/IRoleManager.aidl +++ b/framework-s/java/android/app/role/IRoleManager.aidl @@ -54,6 +54,10 @@ interface IRoleManager { void setBypassingRoleQualification(boolean bypassRoleQualification); + boolean isRoleFallbackEnabledAsUser(in String roleName, int userId); + + void setRoleFallbackEnabledAsUser(in String roleName, boolean fallbackEnabled, int userId); + void setRoleNamesFromController(in List<String> roleNames); boolean addRoleHolderFromController(in String roleName, in String packageName); diff --git a/framework-s/java/android/app/role/RoleManager.java b/framework-s/java/android/app/role/RoleManager.java index d8e7149f2..cb3ebfe3c 100644 --- a/framework-s/java/android/app/role/RoleManager.java +++ b/framework-s/java/android/app/role/RoleManager.java @@ -18,6 +18,7 @@ package android.app.role; import android.Manifest; import android.annotation.CallbackExecutor; +import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -35,6 +36,7 @@ import android.os.Process; import android.os.RemoteCallback; import android.os.RemoteException; import android.os.UserHandle; +import android.permission.flags.Flags; import android.util.ArrayMap; import android.util.SparseArray; @@ -690,6 +692,53 @@ public final class RoleManager { } /** + * Check whether role currently enables fallback to default holder. + * <p> + * This is based on the "None" holder being actively selected, in which case don't fallback. + * + * @param roleName the name of the role being queried + * + * @return whether fallback is enabled for the provided role + * + * @hide + */ + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) + @FlaggedApi(Flags.FLAG_ROLE_CONTROLLER_IN_SYSTEM_SERVER) + @UserHandleAware + @SystemApi + public boolean isRoleFallbackEnabled(@NonNull String roleName) { + try { + return mService.isRoleFallbackEnabledAsUser(roleName, + mContext.getUser().getIdentifier()); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Set whether role should fallback to a default role holder. + * + * @param roleName the name of the role being queried. + * @param fallbackEnabled whether to enable fallback holders for this role. + * + * @hide + */ + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) + @FlaggedApi(Flags.FLAG_ROLE_CONTROLLER_IN_SYSTEM_SERVER) + @UserHandleAware + @SystemApi + public void setRoleFallbackEnabled(@NonNull String roleName, boolean fallbackEnabled) { + try { + mService.setRoleFallbackEnabledAsUser(roleName, fallbackEnabled, + mContext.getUser().getIdentifier()); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** * Set the names of all the available roles. Should only be called from * {@link android.app.role.RoleControllerService}. * <p> |