Loading core/java/android/permission/PermissionControllerManager.java +30 −13 Original line number Original line Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.os.UserHandle; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.Log; import android.util.Log; import com.android.internal.annotations.GuardedBy; import com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService; import com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService; import com.android.internal.infra.AbstractRemoteService; import com.android.internal.infra.AbstractRemoteService; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; Loading @@ -68,6 +69,12 @@ import java.util.concurrent.Executor; public final class PermissionControllerManager { public final class PermissionControllerManager { private static final String TAG = PermissionControllerManager.class.getSimpleName(); private static final String TAG = PermissionControllerManager.class.getSimpleName(); private static final Object sLock = new Object(); /** App global remote service used by all {@link PermissionControllerManager managers} */ @GuardedBy("sLock") private static RemoteService sRemoteService; /** /** * The key for retrieving the result from the returned bundle. * The key for retrieving the result from the returned bundle. * * Loading Loading @@ -140,18 +147,28 @@ public final class PermissionControllerManager { } } private final @NonNull Context mContext; private final @NonNull Context mContext; private final RemoteService mRemoteService; /** @hide */ /** * Create a new {@link PermissionControllerManager}. * * @param context to create the manager for * * @hide */ public PermissionControllerManager(@NonNull Context context) { public PermissionControllerManager(@NonNull Context context) { synchronized (sLock) { if (sRemoteService == null) { Intent intent = new Intent(SERVICE_INTERFACE); Intent intent = new Intent(SERVICE_INTERFACE); intent.setPackage(context.getPackageManager().getPermissionControllerPackageName()); intent.setPackage(context.getPackageManager().getPermissionControllerPackageName()); ResolveInfo serviceInfo = context.getPackageManager().resolveService(intent, 0); ResolveInfo serviceInfo = context.getPackageManager().resolveService(intent, 0); mContext = context; sRemoteService = new RemoteService(context.getApplicationContext(), mRemoteService = new RemoteService(context, serviceInfo.getComponentInfo().getComponentName()); serviceInfo.getComponentInfo().getComponentName()); } } } mContext = context; } /** /** * Revoke a set of runtime permissions for various apps. * Revoke a set of runtime permissions for various apps. Loading Loading @@ -182,7 +199,7 @@ public final class PermissionControllerManager { + " required"); + " required"); } } mRemoteService.scheduleRequest(new PendingRevokeRuntimePermissionRequest(mRemoteService, sRemoteService.scheduleRequest(new PendingRevokeRuntimePermissionRequest(sRemoteService, request, doDryRun, reason, mContext.getPackageName(), executor, callback)); request, doDryRun, reason, mContext.getPackageName(), executor, callback)); } } Loading @@ -201,8 +218,8 @@ public final class PermissionControllerManager { checkNotNull(packageName); checkNotNull(packageName); checkNotNull(callback); checkNotNull(callback); mRemoteService.scheduleRequest(new PendingGetAppPermissionRequest(mRemoteService, sRemoteService.scheduleRequest(new PendingGetAppPermissionRequest(sRemoteService, packageName, callback, handler == null ? mRemoteService.getHandler() : handler)); packageName, callback, handler == null ? sRemoteService.getHandler() : handler)); } } /** /** Loading @@ -219,7 +236,7 @@ public final class PermissionControllerManager { checkNotNull(packageName); checkNotNull(packageName); checkNotNull(permissionName); checkNotNull(permissionName); mRemoteService.scheduleAsyncRequest(new PendingRevokeAppPermissionRequest(packageName, sRemoteService.scheduleAsyncRequest(new PendingRevokeAppPermissionRequest(packageName, permissionName)); permissionName)); } } Loading @@ -241,9 +258,9 @@ public final class PermissionControllerManager { checkCollectionElementsNotNull(permissionNames, "permissionNames"); checkCollectionElementsNotNull(permissionNames, "permissionNames"); checkNotNull(callback); checkNotNull(callback); mRemoteService.scheduleRequest(new PendingCountPermissionAppsRequest(mRemoteService, sRemoteService.scheduleRequest(new PendingCountPermissionAppsRequest(sRemoteService, permissionNames, countOnlyGranted, countSystem, callback, permissionNames, countOnlyGranted, countSystem, callback, handler == null ? mRemoteService.getHandler() : handler)); handler == null ? sRemoteService.getHandler() : handler)); } } /** /** Loading Loading
core/java/android/permission/PermissionControllerManager.java +30 −13 Original line number Original line Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.os.UserHandle; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.Log; import android.util.Log; import com.android.internal.annotations.GuardedBy; import com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService; import com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService; import com.android.internal.infra.AbstractRemoteService; import com.android.internal.infra.AbstractRemoteService; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; Loading @@ -68,6 +69,12 @@ import java.util.concurrent.Executor; public final class PermissionControllerManager { public final class PermissionControllerManager { private static final String TAG = PermissionControllerManager.class.getSimpleName(); private static final String TAG = PermissionControllerManager.class.getSimpleName(); private static final Object sLock = new Object(); /** App global remote service used by all {@link PermissionControllerManager managers} */ @GuardedBy("sLock") private static RemoteService sRemoteService; /** /** * The key for retrieving the result from the returned bundle. * The key for retrieving the result from the returned bundle. * * Loading Loading @@ -140,18 +147,28 @@ public final class PermissionControllerManager { } } private final @NonNull Context mContext; private final @NonNull Context mContext; private final RemoteService mRemoteService; /** @hide */ /** * Create a new {@link PermissionControllerManager}. * * @param context to create the manager for * * @hide */ public PermissionControllerManager(@NonNull Context context) { public PermissionControllerManager(@NonNull Context context) { synchronized (sLock) { if (sRemoteService == null) { Intent intent = new Intent(SERVICE_INTERFACE); Intent intent = new Intent(SERVICE_INTERFACE); intent.setPackage(context.getPackageManager().getPermissionControllerPackageName()); intent.setPackage(context.getPackageManager().getPermissionControllerPackageName()); ResolveInfo serviceInfo = context.getPackageManager().resolveService(intent, 0); ResolveInfo serviceInfo = context.getPackageManager().resolveService(intent, 0); mContext = context; sRemoteService = new RemoteService(context.getApplicationContext(), mRemoteService = new RemoteService(context, serviceInfo.getComponentInfo().getComponentName()); serviceInfo.getComponentInfo().getComponentName()); } } } mContext = context; } /** /** * Revoke a set of runtime permissions for various apps. * Revoke a set of runtime permissions for various apps. Loading Loading @@ -182,7 +199,7 @@ public final class PermissionControllerManager { + " required"); + " required"); } } mRemoteService.scheduleRequest(new PendingRevokeRuntimePermissionRequest(mRemoteService, sRemoteService.scheduleRequest(new PendingRevokeRuntimePermissionRequest(sRemoteService, request, doDryRun, reason, mContext.getPackageName(), executor, callback)); request, doDryRun, reason, mContext.getPackageName(), executor, callback)); } } Loading @@ -201,8 +218,8 @@ public final class PermissionControllerManager { checkNotNull(packageName); checkNotNull(packageName); checkNotNull(callback); checkNotNull(callback); mRemoteService.scheduleRequest(new PendingGetAppPermissionRequest(mRemoteService, sRemoteService.scheduleRequest(new PendingGetAppPermissionRequest(sRemoteService, packageName, callback, handler == null ? mRemoteService.getHandler() : handler)); packageName, callback, handler == null ? sRemoteService.getHandler() : handler)); } } /** /** Loading @@ -219,7 +236,7 @@ public final class PermissionControllerManager { checkNotNull(packageName); checkNotNull(packageName); checkNotNull(permissionName); checkNotNull(permissionName); mRemoteService.scheduleAsyncRequest(new PendingRevokeAppPermissionRequest(packageName, sRemoteService.scheduleAsyncRequest(new PendingRevokeAppPermissionRequest(packageName, permissionName)); permissionName)); } } Loading @@ -241,9 +258,9 @@ public final class PermissionControllerManager { checkCollectionElementsNotNull(permissionNames, "permissionNames"); checkCollectionElementsNotNull(permissionNames, "permissionNames"); checkNotNull(callback); checkNotNull(callback); mRemoteService.scheduleRequest(new PendingCountPermissionAppsRequest(mRemoteService, sRemoteService.scheduleRequest(new PendingCountPermissionAppsRequest(sRemoteService, permissionNames, countOnlyGranted, countSystem, callback, permissionNames, countOnlyGranted, countSystem, callback, handler == null ? mRemoteService.getHandler() : handler)); handler == null ? sRemoteService.getHandler() : handler)); } } /** /** Loading