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

Commit 5bd17c04 authored by Mark Fasheh's avatar Mark Fasheh Committed by Automerger Merge Worker
Browse files

Merge "ActivityManager: Throw correct exception during Uid Frozen...

Merge "ActivityManager: Throw correct exception during Uid Frozen registration" into udc-dev am: f33cf832 am: 09a5f545

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22157935



Change-Id: I9d6efdcaf06e55ad62e80deaac73fb38b7376f69
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents e66cbd78 09a5f545
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -239,7 +239,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 =
@@ -289,6 +289,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}
@@ -321,9 +323,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) {
@@ -349,6 +353,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()) {
+2 −0
Original line number Diff line number Diff line
@@ -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);
}