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

Commit 8cef0013 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Merge cherrypicks of ['googleplex-android-review.googlesource.com/23591556'] into udc-release.

Change-Id: Idd9a5256661fe2a1eaacf1b44f9ec996439f3eb7
parents 5b183b51 5690e781
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1616,6 +1616,8 @@ public class ActivityManagerService extends IActivityManager.Stub
    static final int SERVICE_SHORT_FGS_PROCSTATE_TIMEOUT_MSG = 77;
    static final int SERVICE_SHORT_FGS_ANR_TIMEOUT_MSG = 78;
    static final int UPDATE_CACHED_APP_HIGH_WATERMARK = 79;
    static final int ADD_UID_TO_OBSERVER_MSG = 80;
    static final int REMOVE_UID_FROM_OBSERVER_MSG = 81;
    static final int FIRST_BROADCAST_QUEUE_MSG = 200;
@@ -1774,6 +1776,12 @@ public class ActivityManagerService extends IActivityManager.Stub
                case PUSH_TEMP_ALLOWLIST_UI_MSG: {
                    pushTempAllowlist();
                } break;
                case ADD_UID_TO_OBSERVER_MSG: {
                    mUidObserverController.addUidToObserverImpl((IBinder) msg.obj, msg.arg1);
                } break;
                case REMOVE_UID_FROM_OBSERVER_MSG: {
                    mUidObserverController.removeUidFromObserverImpl((IBinder) msg.obj, msg.arg1);
                } break;
            }
        }
    }
+49 −26
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.content.pm.PackageManager;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -104,8 +105,20 @@ public class UidObserverController {
        }
    }

    void addUidToObserver(@NonNull IBinder observerToken, int uid) {
        synchronized (mLock) {
    final void addUidToObserver(@NonNull IBinder observerToken, int uid) {
        Message msg = Message.obtain(mHandler, ActivityManagerService.ADD_UID_TO_OBSERVER_MSG,
                uid, /*arg2*/ 0, observerToken);
        mHandler.sendMessage(msg);
    }

    /**
     * Add a uid to the list of uids an observer is interested in. Must be run on the same thread
     * as mDispatchRunnable.
     *
     * @param observerToken The token identifier for a UidObserver
     * @param uid The uid to add to the list of watched uids
     */
    public final void addUidToObserverImpl(@NonNull IBinder observerToken, int uid) {
        int i = mUidObservers.beginBroadcast();
        while (i-- > 0) {
            var reg = (UidObserverRegistration) mUidObservers.getBroadcastCookie(i);
@@ -120,10 +133,21 @@ public class UidObserverController {
        }
        mUidObservers.finishBroadcast();
    }

    final void removeUidFromObserver(@NonNull IBinder observerToken, int uid) {
        Message msg = Message.obtain(mHandler, ActivityManagerService.REMOVE_UID_FROM_OBSERVER_MSG,
                uid, /*arg2*/ 0, observerToken);
        mHandler.sendMessage(msg);
    }

    void removeUidFromObserver(@NonNull IBinder observerToken, int uid) {
        synchronized (mLock) {
    /**
     * Remove a uid from the list of uids an observer is interested in. Must be run on the same
     * thread as mDispatchRunnable.
     *
     * @param observerToken The token identifier for a UidObserver
     * @param uid The uid to remove from the list of watched uids
     */
    public final void removeUidFromObserverImpl(@NonNull IBinder observerToken, int uid) {
        int i = mUidObservers.beginBroadcast();
        while (i-- > 0) {
            var reg = (UidObserverRegistration) mUidObservers.getBroadcastCookie(i);
@@ -138,7 +162,6 @@ public class UidObserverController {
        }
        mUidObservers.finishBroadcast();
    }
    }

    int enqueueUidChange(@Nullable ChangeRecord currentRecord, int uid, int change, int procState,
            int procAdj, long procStateSeq, int capability, boolean ephemeral) {