Merge "Introduce API to get CDM profile permissions description string"
This commit is contained in:
@@ -8358,6 +8358,7 @@ package android.permission {
|
||||
|
||||
public abstract class PermissionControllerService extends android.app.Service {
|
||||
ctor public PermissionControllerService();
|
||||
method @NonNull @RequiresPermission("android.permission.MANAGE_COMPANION_DEVICES") public String getPrivilegesDescriptionStringForProfile(@NonNull String);
|
||||
method @BinderThread public void onApplyStagedRuntimePermissionBackup(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.function.Consumer<java.lang.Boolean>);
|
||||
method @NonNull public final android.os.IBinder onBind(android.content.Intent);
|
||||
method @BinderThread public abstract void onCountPermissionApps(@NonNull java.util.List<java.lang.String>, int, @NonNull java.util.function.IntConsumer);
|
||||
|
||||
@@ -44,4 +44,7 @@ oneway interface IPermissionController {
|
||||
void grantOrUpgradeDefaultRuntimePermissions(in AndroidFuture callback);
|
||||
void notifyOneTimePermissionSessionTimeout(String packageName);
|
||||
void updateUserSensitiveForApp(int uid, in AndroidFuture callback);
|
||||
void getPrivilegesDescriptionStringForProfile(
|
||||
in String deviceProfileName,
|
||||
in AndroidFuture<String> callback);
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import static com.android.internal.util.Preconditions.checkStringNotEmpty;
|
||||
import android.Manifest;
|
||||
import android.annotation.BinderThread;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.RequiresPermission;
|
||||
import android.annotation.SystemApi;
|
||||
import android.app.Service;
|
||||
import android.app.admin.DevicePolicyManager.PermissionGrantState;
|
||||
@@ -61,6 +62,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.function.Consumer;
|
||||
@@ -283,6 +285,22 @@ public abstract class PermissionControllerService extends Service {
|
||||
throw new AbstractMethodError("Must be overridden in implementing class");
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a user-readable sentence, describing the set of privileges that are to be granted to a
|
||||
* companion app managing a device of the given profile.
|
||||
*
|
||||
* @param deviceProfileName the
|
||||
* {@link android.companion.AssociationRequest.DeviceProfile device profile} name
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(Manifest.permission.MANAGE_COMPANION_DEVICES)
|
||||
@NonNull
|
||||
public String getPrivilegesDescriptionStringForProfile(@NonNull String deviceProfileName) {
|
||||
throw new AbstractMethodError("Must be overridden in implementing class");
|
||||
}
|
||||
|
||||
@Override
|
||||
public final @NonNull IBinder onBind(Intent intent) {
|
||||
return new IPermissionController.Stub() {
|
||||
@@ -517,6 +535,24 @@ public abstract class PermissionControllerService extends Service {
|
||||
|
||||
PermissionControllerService.this.dump(fd, writer, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getPrivilegesDescriptionStringForProfile(
|
||||
@NonNull String deviceProfileName,
|
||||
@NonNull AndroidFuture<String> callback) {
|
||||
checkStringNotEmpty(deviceProfileName);
|
||||
Objects.requireNonNull(callback);
|
||||
|
||||
enforceSomePermissionsGrantedToCaller(Manifest.permission.MANAGE_COMPANION_DEVICES);
|
||||
|
||||
try {
|
||||
callback.complete(PermissionControllerService
|
||||
.this
|
||||
.getPrivilegesDescriptionStringForProfile(deviceProfileName));
|
||||
} catch (Throwable t) {
|
||||
callback.completeExceptionally(t);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user