Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5e8ccd8 authored by Hai Zhang's avatar Hai Zhang
Browse files

Use a boolean Consumer instead of RoleManagerCallback.

And use RemoteCallback for it under the hood. This removes one AIDL
interface and allows using lambda, while aligning with what
PermissionControllerService does.

Bug: 127691087
Test: manual
Change-Id: Ia94e5bac59773380b2a4764d766bf6ff1dd5b7ff
parent 908309fe
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -110,7 +110,6 @@ java_defaults {
        "core/java/android/app/role/IOnRoleHoldersChangedListener.aidl",
        "core/java/android/app/role/IRoleController.aidl",
        "core/java/android/app/role/IRoleManager.aidl",
        "core/java/android/app/role/IRoleManagerCallback.aidl",
        "core/java/android/app/slice/ISliceManager.aidl",
        "core/java/android/app/slice/ISliceListener.aidl",
        "core/java/android/app/timedetector/ITimeDetectorService.aidl",
+8 −13
Original line number Diff line number Diff line
@@ -1118,37 +1118,32 @@ package android.app.role {
  public abstract class RoleControllerService extends android.app.Service {
    ctor public RoleControllerService();
    method public abstract void onAddRoleHolder(@NonNull String, @NonNull String, int, @NonNull android.app.role.RoleManagerCallback);
    method @WorkerThread public abstract boolean onAddRoleHolder(@NonNull String, @NonNull String, int);
    method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent);
    method public abstract void onClearRoleHolders(@NonNull String, int, @NonNull android.app.role.RoleManagerCallback);
    method public abstract void onGrantDefaultRoles(@NonNull android.app.role.RoleManagerCallback);
    method @WorkerThread public abstract boolean onClearRoleHolders(@NonNull String, int);
    method @WorkerThread public abstract boolean onGrantDefaultRoles();
    method public abstract boolean onIsApplicationQualifiedForRole(@NonNull String, @NonNull String);
    method public abstract boolean onIsRoleVisible(@NonNull String);
    method public abstract void onRemoveRoleHolder(@NonNull String, @NonNull String, int, @NonNull android.app.role.RoleManagerCallback);
    method public abstract void onSmsKillSwitchToggled(boolean);
    method @WorkerThread public abstract boolean onRemoveRoleHolder(@NonNull String, @NonNull String, int);
    method @WorkerThread public abstract void onSmsKillSwitchToggled(boolean);
    field public static final String SERVICE_INTERFACE = "android.app.role.RoleControllerService";
  }
  public final class RoleManager {
    method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void addOnRoleHoldersChangedListenerAsUser(@NonNull java.util.concurrent.Executor, @NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
    method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String);
    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHolders(@NonNull String);
    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle);
    method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void removeOnRoleHoldersChangedListenerAsUser(@NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String);
    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public void setRoleNamesFromController(@NonNull java.util.List<java.lang.String>);
    field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1
  }
  public interface RoleManagerCallback {
    method public void onFailure();
    method public void onSuccess();
  }
}
package android.app.usage {
+3 −8
Original line number Diff line number Diff line
@@ -512,24 +512,19 @@ package android.app.role {

  public final class RoleManager {
    method @RequiresPermission("android.permission.OBSERVE_ROLE_HOLDERS") public void addOnRoleHoldersChangedListenerAsUser(@NonNull java.util.concurrent.Executor, @NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String);
    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
    method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String);
    method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHolders(@NonNull String);
    method @NonNull @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle);
    method @RequiresPermission("android.permission.OBSERVE_ROLE_HOLDERS") public void removeOnRoleHoldersChangedListenerAsUser(@NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle);
    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull android.app.role.RoleManagerCallback);
    method @RequiresPermission("android.permission.MANAGE_ROLE_HOLDERS") public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String);
    method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public void setRoleNamesFromController(@NonNull java.util.List<java.lang.String>);
    field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1
  }

  public interface RoleManagerCallback {
    method public void onFailure();
    method public void onSuccess();
  }

}

package android.app.usage {
+5 −6
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.app.role;

import android.app.role.IRoleManagerCallback;
import android.os.RemoteCallback;

/**
@@ -24,15 +23,15 @@ import android.os.RemoteCallback;
 */
oneway interface IRoleController {

    void onGrantDefaultRoles(in IRoleManagerCallback callback);
    void grantDefaultRoles(in RemoteCallback callback);

    void onAddRoleHolder(in String roleName, in String packageName, int flags,
                         in IRoleManagerCallback callback);
            in RemoteCallback callback);

    void onRemoveRoleHolder(in String roleName, in String packageName, int flags,
                            in IRoleManagerCallback callback);
            in RemoteCallback callback);

    void onClearRoleHolders(in String roleName, int flags, in IRoleManagerCallback callback);
    void onClearRoleHolders(in String roleName, int flags, in RemoteCallback callback);

    void onSmsKillSwitchToggled(boolean enabled);

+5 −4
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@
package android.app.role;

import android.app.role.IOnRoleHoldersChangedListener;
import android.app.role.IRoleManagerCallback;
import android.os.Bundle;
import android.os.RemoteCallback;
import android.telephony.IFinancialSmsCallback;

/**
@@ -33,13 +33,13 @@ interface IRoleManager {
    List<String> getRoleHoldersAsUser(in String roleName, int userId);

    void addRoleHolderAsUser(in String roleName, in String packageName, int flags, int userId,
            in IRoleManagerCallback callback);
            in RemoteCallback callback);

    void removeRoleHolderAsUser(in String roleName, in String packageName, int flags, int userId,
            in IRoleManagerCallback callback);
            in RemoteCallback callback);

    void clearRoleHoldersAsUser(in String roleName, int flags, int userId,
            in IRoleManagerCallback callback);
            in RemoteCallback callback);

    void addOnRoleHoldersChangedListenerAsUser(IOnRoleHoldersChangedListener listener, int userId);

@@ -55,6 +55,7 @@ interface IRoleManager {
    List<String> getHeldRolesFromController(in String packageName);

    String getDefaultSmsPackage(int userId);

    /**
     * Get filtered SMS messages for financial app.
     */
Loading