summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/ActivityManager.java9
-rw-r--r--core/java/android/app/IActivityManager.aidl2
2 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 981f14020370..929c07bc1dc5 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -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()) {
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 2879062248a8..403acad6bba1 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -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);
}