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

Commit 630fa6dc authored by Austin Borger's avatar Austin Borger Committed by Automerger Merge Worker
Browse files

Merge "Run addUidToObserver and removeUidFromObserver on the handler thread."...

Merge "Run addUidToObserver and removeUidFromObserver on the handler thread." into udc-dev am: 0bc1b582

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



Change-Id: I8328bd285ea6b0144693f52f3b1798af81fd2d33
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 31220f07 0bc1b582
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) {