Merge "Remove isAppStartModeDisabled binder entry point" into sc-dev am: f59bf68628

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

Change-Id: Iac0444043de6b182d4b60f669851c4bd412af07a
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 313a340..b90b9a1 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -508,7 +508,6 @@
     boolean stopBinderTrackingAndDump(in ParcelFileDescriptor fd);
     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     void suppressResizeConfigChanges(boolean suppress);
-    boolean isAppStartModeDisabled(int uid, in String packageName);
     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     boolean unlockUser(int userid, in byte[] token, in byte[] secret,
             in IProgressListener listener);
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index fb919fb..53c13c7 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -28,7 +28,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
-import android.app.ActivityManager;
+import android.app.ActivityManagerInternal;
 import android.app.AppGlobals;
 import android.app.Notification;
 import android.app.NotificationManager;
@@ -323,6 +323,8 @@
 
     private final PackageManagerInternal mPackageManagerInternal;
 
+    private final ActivityManagerInternal mAmi;
+
     private List<UserInfo> getAllUsers() {
         return mUserManager.getUsers();
     }
@@ -643,6 +645,7 @@
         mAccountManager = (AccountManager) mContext.getSystemService(Context.ACCOUNT_SERVICE);
         mAccountManagerInternal = LocalServices.getService(AccountManagerInternal.class);
         mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class);
+        mAmi = LocalServices.getService(ActivityManagerInternal.class);
 
         mAccountManagerInternal.addOnAppPermissionChangeListener((Account account, int uid) -> {
             // If the UID gained access to the account kick-off syncs lacking account access
@@ -1115,15 +1118,11 @@
         }
         final int owningUid = syncAdapterInfo.uid;
         final String owningPackage = syncAdapterInfo.componentName.getPackageName();
-        try {
-            if (ActivityManager.getService().isAppStartModeDisabled(owningUid, owningPackage)) {
-                Slog.w(TAG, "Not scheduling job " + syncAdapterInfo.uid + ":"
-                        + syncAdapterInfo.componentName
-                        + " -- package not allowed to start");
-                return AuthorityInfo.NOT_SYNCABLE;
-            }
-        } catch (RemoteException e) {
-            /* ignore - local call */
+        if (mAmi.isAppStartModeDisabled(owningUid, owningPackage)) {
+            Slog.w(TAG, "Not scheduling job " + syncAdapterInfo.uid + ":"
+                    + syncAdapterInfo.componentName
+                    + " -- package not allowed to start");
+            return AuthorityInfo.NOT_SYNCABLE;
         }
         if (checkAccountAccess && !canAccessAccount(account, owningPackage, owningUid)) {
             Log.w(TAG, "Access to " + logSafe(account) + " denied for package "