Merge "ActivityManager: Throw correct exception during Uid Frozen registration" into udc-dev
This commit is contained in:
@@ -234,7 +234,7 @@ public class ActivityManager {
|
||||
* Map of callbacks that have registered for {@link UidFrozenStateChanged} events.
|
||||
* Will be called when a Uid has become frozen or unfrozen.
|
||||
*/
|
||||
final ArrayMap<UidFrozenStateChangedCallback, Executor> mFrozenStateChangedCallbacks =
|
||||
private final ArrayMap<UidFrozenStateChangedCallback, Executor> mFrozenStateChangedCallbacks =
|
||||
new ArrayMap<>();
|
||||
|
||||
private final IUidFrozenStateChangedCallback mFrozenStateChangedCallback =
|
||||
@@ -284,6 +284,8 @@ public class ActivityManager {
|
||||
public @interface UidFrozenState {}
|
||||
|
||||
/**
|
||||
* Notify the client that the frozen states of an array of UIDs have changed.
|
||||
*
|
||||
* @param uids The UIDs for which the frozen state has changed
|
||||
* @param frozenStates Frozen state for each UID index, Will be set to
|
||||
* {@link UidFrozenStateChangedCallback#UID_FROZEN_STATE_FROZEN}
|
||||
@@ -316,9 +318,11 @@ public class ActivityManager {
|
||||
public void registerUidFrozenStateChangedCallback(
|
||||
@NonNull Executor executor,
|
||||
@NonNull UidFrozenStateChangedCallback callback) {
|
||||
Preconditions.checkNotNull(executor, "executor cannot be null");
|
||||
Preconditions.checkNotNull(callback, "callback cannot be null");
|
||||
synchronized (mFrozenStateChangedCallbacks) {
|
||||
if (mFrozenStateChangedCallbacks.containsKey(callback)) {
|
||||
throw new IllegalArgumentException("Callback already registered: " + callback);
|
||||
throw new IllegalStateException("Callback already registered: " + callback);
|
||||
}
|
||||
mFrozenStateChangedCallbacks.put(callback, executor);
|
||||
if (mFrozenStateChangedCallbacks.size() > 1) {
|
||||
@@ -344,6 +348,7 @@ public class ActivityManager {
|
||||
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
||||
public void unregisterUidFrozenStateChangedCallback(
|
||||
@NonNull UidFrozenStateChangedCallback callback) {
|
||||
Preconditions.checkNotNull(callback, "callback cannot be null");
|
||||
synchronized (mFrozenStateChangedCallbacks) {
|
||||
mFrozenStateChangedCallbacks.remove(callback);
|
||||
if (mFrozenStateChangedCallbacks.isEmpty()) {
|
||||
|
||||
@@ -879,6 +879,8 @@ interface IActivityManager {
|
||||
/** Logs API state change to associate with an FGS, used for FGS Type Metrics */
|
||||
void logFgsApiStateChanged(int apiType, int state, int appUid, int appPid);
|
||||
|
||||
@JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS)")
|
||||
void registerUidFrozenStateChangedCallback(in IUidFrozenStateChangedCallback callback);
|
||||
@JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS)")
|
||||
void unregisterUidFrozenStateChangedCallback(in IUidFrozenStateChangedCallback callback);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user