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

Commit 1f83e6a2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "batch-api" into main

* changes:
  Add test API to retrieve service connections for test verification.
  Add batch update bindings API.
parents 26b61267 05f4d2d6
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -11180,6 +11180,7 @@ package android.content {
    method @Nullable public abstract String getSystemServiceName(@NonNull Class<?>);
    method @NonNull public final CharSequence getText(@StringRes int);
    method public abstract android.content.res.Resources.Theme getTheme();
    method @FlaggedApi("android.content.flags.enable_update_service_bindings") @NonNull public android.content.Context.BindServiceFlags getUpdateableFlags();
    method @Deprecated public abstract android.graphics.drawable.Drawable getWallpaper();
    method @Deprecated public abstract int getWallpaperDesiredMinimumHeight();
    method @Deprecated public abstract int getWallpaperDesiredMinimumWidth();
@@ -11244,6 +11245,7 @@ package android.content {
    method public void unregisterComponentCallbacks(android.content.ComponentCallbacks);
    method public void unregisterDeviceIdChangeListener(@NonNull java.util.function.IntConsumer);
    method public abstract void unregisterReceiver(android.content.BroadcastReceiver);
    method @FlaggedApi("android.content.flags.enable_update_service_bindings") public void updateServiceBindings(@NonNull java.util.List<android.content.Context.UpdateBindingParams>);
    method public void updateServiceGroup(@NonNull android.content.ServiceConnection, int, int);
    field public static final String ACCESSIBILITY_SERVICE = "accessibility";
    field public static final String ACCOUNT_SERVICE = "account";
@@ -11387,6 +11389,21 @@ package android.content {
    method @NonNull public static android.content.Context.BindServiceFlags of(long);
  }
  @FlaggedApi("android.content.flags.enable_update_service_bindings") public static final class Context.UpdateBindingParams {
    method @NonNull public android.content.ServiceConnection getConnection();
    method @NonNull public android.content.Context.BindServiceFlags getFlags();
    method public boolean isRebind();
    method public boolean isUnbind();
    method public void setRebind(@NonNull android.content.Context.BindServiceFlags);
    method public void setUnbind();
  }
  public static final class Context.UpdateBindingParams.Builder {
    ctor public Context.UpdateBindingParams.Builder(@NonNull android.content.ServiceConnection);
    ctor public Context.UpdateBindingParams.Builder(@NonNull android.content.ServiceConnection, @NonNull android.content.Context.BindServiceFlags);
    method @NonNull public android.content.Context.UpdateBindingParams build();
  }
  public final class ContextParams {
    method @Nullable public String getAttributionTag();
    method @Nullable public android.content.AttributionSource getNextAttributionSource();
+11 −0
Original line number Diff line number Diff line
@@ -144,6 +144,7 @@ package android.app {
    method @RequiresPermission(android.Manifest.permission.SET_ACTIVITY_WATCHER) public void addHomeVisibilityListener(@NonNull java.util.concurrent.Executor, @NonNull android.app.HomeVisibilityListener);
    method public void alwaysShowUnsupportedCompileSdkWarning(android.content.ComponentName);
    method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}) public int[] getDisplayIdsForStartingVisibleBackgroundUsers();
    method @NonNull public java.util.List<android.app.ActivityManager.ConnectionInfo> getRunningServiceConnections(@NonNull android.content.ComponentName);
    method public long getTotalRam();
    method @NonNull @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int[] getUidFrozenState(@NonNull int[]);
    method @RequiresPermission(allOf={android.Manifest.permission.PACKAGE_USAGE_STATS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}, conditional=true) public int getUidProcessCapabilities(int);
@@ -174,6 +175,16 @@ package android.app {
    field public static final int STOP_USER_ON_SWITCH_TRUE = 1; // 0x1
  }

  public static final class ActivityManager.ConnectionInfo implements android.os.Parcelable {
    ctor public ActivityManager.ConnectionInfo(long, @NonNull String, @NonNull String);
    method public int describeContents();
    method public long getFlags();
    method @NonNull public String getPackageName();
    method @NonNull public String getProcessName();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.app.ActivityManager.ConnectionInfo> CREATOR;
  }

  public static class ActivityManager.RunningAppProcessInfo implements android.os.Parcelable {
    field public static final int IMPORTANCE_CANT_SAVE_STATE_PRE_26 = 170; // 0xaa
  }
+2 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.app;

parcelable ActivityManager.ConnectionInfo;
parcelable ActivityManager.MemoryInfo;
parcelable ActivityManager.PendingIntentInfo;
parcelable ActivityManager.ProcessErrorStateInfo;
+101 −0
Original line number Diff line number Diff line
@@ -3444,6 +3444,91 @@ public class ActivityManager {
        }
    }

    /** @hide */
    @TestApi
    @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
    public static final class ConnectionInfo implements Parcelable {
        /**
         * Bind service flags.
         */
        private final long mFlags;

        /**
         * Client process name.
         */
        private final @NonNull String mProcessName;

        /**
         * Client package name.
         */
        private final @NonNull String mPackageName;

        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        /** @hide */
        public ConnectionInfo(long flags,
                @NonNull String processName,
                @NonNull String packageName) {
            mFlags = flags;
            mProcessName = processName;
            mPackageName = packageName;
        }

        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        /** @hide */
        private ConnectionInfo(@NonNull Parcel source) {
            mFlags = source.readLong();
            mProcessName = source.readString8();
            mPackageName = source.readString8();
        }

        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        /** @hide */
        public static final @NonNull Creator<ConnectionInfo> CREATOR =
                new Creator<ConnectionInfo>() {
                    public ConnectionInfo createFromParcel(Parcel source) {
                        return new ConnectionInfo(source);
                    }
                    public ConnectionInfo[] newArray(int size) {
                        return new ConnectionInfo[size];
                    }
                };

        /**
         * Write parcel.
         * @hide
         */
        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        public void writeToParcel(@NonNull Parcel dest, int flags) {
            dest.writeLong(mFlags);
            dest.writeString8(mProcessName);
            dest.writeString8(mPackageName);
        }

        /**
         * Describe contents.
         * @hide
         */
        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        public int describeContents() {
            return 0;
        }

        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        public long getFlags() {
            return mFlags;
        }

        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        public @NonNull String getProcessName() {
            return mProcessName;
        }

        @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
        public @NonNull String getPackageName() {
            return mPackageName;
        }
    }

    /**
     * Returns a PendingIntent you can start to show a control panel for the
     * given running service.  If the service does not have a control panel,
@@ -3459,6 +3544,22 @@ public class ActivityManager {
        }
    }

    /**
     * Returns a list of ConnectionInfo for connections bound to a given service.
     * @hide
     */
    @TestApi
    @SuppressLint("UnflaggedApi") // @TestApi without associated feature.
    public @NonNull List<ConnectionInfo> getRunningServiceConnections(
            @NonNull ComponentName service) {
        Objects.requireNonNull(service);
        try {
            return getService().getRunningServiceConnections(service);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    /**
     * Information you can retrieve about the available memory through
     * {@link ActivityManager#getMemoryInfo}.
+6 −0
Original line number Diff line number Diff line
@@ -521,6 +521,11 @@ public abstract class ActivityManagerInternal {
     */
    public static final int OOM_ADJ_REASON_SERVICE_BINDER_CALL = 25;

    /**
     * Oom Adj Reason: Batched updated request.
     */
    public static final int OOM_ADJ_REASON_BATCH_UPDATE_REQUEST = 26;

    @IntDef(prefix = {"OOM_ADJ_REASON_"}, value = {
        OOM_ADJ_REASON_NONE,
        OOM_ADJ_REASON_ACTIVITY,
@@ -548,6 +553,7 @@ public abstract class ActivityManagerInternal {
        OOM_ADJ_REASON_FOLLOW_UP,
        OOM_ADJ_REASON_RECONFIGURATION,
        OOM_ADJ_REASON_SERVICE_BINDER_CALL,
        OOM_ADJ_REASON_BATCH_UPDATE_REQUEST,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface OomAdjReason {}
Loading