ActivityManager: Use the default UidObserver implementation.

A class which overrides IUidObserver.Stub with empty callback
implementations was added in change
I2ff1e868586861e4dcd6586ad22139ba84eaf39c to simplify BroadcastQueue
interface complexity. Using this default implementation will mean less
churn when new callbacks are added to IUidObserver, or existing callback
method signatures are changed.

Also rename ActivityManager.UidObserver to MyUidObserver to remove any
ambiguity.

Bug: 274486653
Test: Presubmit, smoke test on cuttlefish.
Change-Id: I6e30a4e116a7baaca1e411ca0cc4a4dca37a32bd
diff --git a/boot/preloaded-classes b/boot/preloaded-classes
index d2eb4ce2..21ae134 100644
--- a/boot/preloaded-classes
+++ b/boot/preloaded-classes
@@ -211,7 +211,7 @@
 android.app.ActivityManager$RunningTaskInfo
 android.app.ActivityManager$TaskDescription$1
 android.app.ActivityManager$TaskDescription
-android.app.ActivityManager$UidObserver
+android.app.ActivityManager$MyUidObserver
 android.app.ActivityManager
 android.app.ActivityManagerInternal
 android.app.ActivityOptions$1
diff --git a/config/preloaded-classes b/config/preloaded-classes
index 5e2c021..8e50fe8 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -211,7 +211,7 @@
 android.app.ActivityManager$RunningTaskInfo
 android.app.ActivityManager$TaskDescription$1
 android.app.ActivityManager$TaskDescription
-android.app.ActivityManager$UidObserver
+android.app.ActivityManager$MyUidObserver
 android.app.ActivityManager
 android.app.ActivityManagerInternal
 android.app.ActivityOptions$1
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 813e32a..521bf05 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -193,11 +193,11 @@
      */
     public static final int INSTR_FLAG_INSTRUMENT_SDK_SANDBOX = 1 << 5;
 
-    static final class UidObserver extends IUidObserver.Stub {
+    static final class MyUidObserver extends UidObserver {
         final OnUidImportanceListener mListener;
         final Context mContext;
 
-        UidObserver(OnUidImportanceListener listener, Context clientContext) {
+        MyUidObserver(OnUidImportanceListener listener, Context clientContext) {
             mListener = listener;
             mContext = clientContext;
         }
@@ -212,23 +212,9 @@
         public void onUidGone(int uid, boolean disabled) {
             mListener.onUidImportance(uid, RunningAppProcessInfo.IMPORTANCE_GONE);
         }
-
-        @Override
-        public void onUidActive(int uid) {
-        }
-
-        @Override
-        public void onUidIdle(int uid, boolean disabled) {
-        }
-
-        @Override public void onUidCachedChanged(int uid, boolean cached) {
-        }
-
-        @Override public void onUidProcAdjChanged(int uid) {
-        }
     }
 
-    final ArrayMap<OnUidImportanceListener, UidObserver> mImportanceListeners = new ArrayMap<>();
+    final ArrayMap<OnUidImportanceListener, MyUidObserver> mImportanceListeners = new ArrayMap<>();
 
     /**
      * Map of callbacks that have registered for {@link UidFrozenStateChanged} events.
@@ -4273,7 +4259,7 @@
                 throw new IllegalArgumentException("Listener already registered: " + listener);
             }
             // TODO: implement the cut point in the system process to avoid IPCs.
-            UidObserver observer = new UidObserver(listener, mContext);
+            MyUidObserver observer = new MyUidObserver(listener, mContext);
             try {
                 getService().registerUidObserver(observer,
                         UID_OBSERVER_PROCSTATE | UID_OBSERVER_GONE,
@@ -4297,7 +4283,7 @@
     @RequiresPermission(Manifest.permission.PACKAGE_USAGE_STATS)
     public void removeOnUidImportanceListener(OnUidImportanceListener listener) {
         synchronized (this) {
-            UidObserver observer = mImportanceListeners.remove(listener);
+            MyUidObserver observer = mImportanceListeners.remove(listener);
             if (observer == null) {
                 throw new IllegalArgumentException("Listener not registered: " + listener);
             }
diff --git a/services/core/java/com/android/server/am/AppRestrictionController.java b/services/core/java/com/android/server/am/AppRestrictionController.java
index 6928bd3..37b776d 100644
--- a/services/core/java/com/android/server/am/AppRestrictionController.java
+++ b/services/core/java/com/android/server/am/AppRestrictionController.java
@@ -101,6 +101,7 @@
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
+import android.app.UidObserver;
 import android.app.role.OnRoleHoldersChangedListener;
 import android.app.role.RoleManager;
 import android.app.usage.AppStandbyInfo;
@@ -1439,7 +1440,7 @@
             };
 
     private final IUidObserver mUidObserver =
-            new IUidObserver.Stub() {
+            new UidObserver() {
                 @Override
                 public void onUidStateChanged(int uid, int procState, long procStateSeq,
                         int capability) {
@@ -1463,14 +1464,6 @@
                 public void onUidActive(int uid) {
                     mBgHandler.obtainMessage(BgHandler.MSG_UID_ACTIVE, uid, 0).sendToTarget();
                 }
-
-                @Override
-                public void onUidCachedChanged(int uid, boolean cached) {
-                }
-
-                @Override
-                public void onUidProcAdjChanged(int uid) {
-                }
             };
 
     /**
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index b26a170..b1322ef 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -70,7 +70,7 @@
 import android.app.ApplicationExitInfo.SubReason;
 import android.app.IApplicationThread;
 import android.app.IProcessObserver;
-import android.app.IUidObserver;
+import android.app.UidObserver;
 import android.compat.annotation.ChangeId;
 import android.compat.annotation.EnabledAfter;
 import android.content.BroadcastReceiver;
@@ -5281,7 +5281,7 @@
         return new Pair<>(numForegroundServices, procs);
     }
 
-    private final class ImperceptibleKillRunner extends IUidObserver.Stub {
+    private final class ImperceptibleKillRunner extends UidObserver {
         private static final String EXTRA_PID = "pid";
         private static final String EXTRA_UID = "uid";
         private static final String EXTRA_TIMESTAMP = "timestamp";
@@ -5537,24 +5537,8 @@
         }
 
         @Override
-        public void onUidActive(int uid) {
-        }
-
-        @Override
-        public void onUidIdle(int uid, boolean disabled) {
-        }
-
-        @Override
         public void onUidStateChanged(int uid, int procState, long procStateSeq, int capability) {
             mHandler.obtainMessage(H.MSG_UID_STATE_CHANGED, uid, procState).sendToTarget();
         }
-
-        @Override
-        public void onUidCachedChanged(int uid, boolean cached) {
-        }
-
-        @Override
-        public void onUidProcAdjChanged(int uid) {
-        }
     };
 }