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

Commit 03b9c9c6 authored by Jakob Schneider's avatar Jakob Schneider Committed by Android (Google) Code Review
Browse files

Merge "Make all Archiving APIs public APIs." into main

parents c2389366 8dc1ed0c
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -11103,6 +11103,7 @@ package android.content {
    field public static final String ACTION_UID_REMOVED = "android.intent.action.UID_REMOVED";
    field @Deprecated public static final String ACTION_UMS_CONNECTED = "android.intent.action.UMS_CONNECTED";
    field @Deprecated public static final String ACTION_UMS_DISCONNECTED = "android.intent.action.UMS_DISCONNECTED";
    field @FlaggedApi("android.content.pm.archiving") public static final String ACTION_UNARCHIVE_PACKAGE = "android.intent.action.UNARCHIVE_PACKAGE";
    field @Deprecated public static final String ACTION_UNINSTALL_PACKAGE = "android.intent.action.UNINSTALL_PACKAGE";
    field public static final String ACTION_USER_BACKGROUND = "android.intent.action.USER_BACKGROUND";
    field public static final String ACTION_USER_FOREGROUND = "android.intent.action.USER_FOREGROUND";
@@ -12368,6 +12369,7 @@ package android.content.pm {
  public class PackageInfo implements android.os.Parcelable {
    ctor public PackageInfo();
    method public int describeContents();
    method @FlaggedApi("android.content.pm.archiving") public long getArchiveTimeMillis();
    method public long getLongVersionCode();
    method public void setLongVersionCode(long);
    method public void writeToParcel(android.os.Parcel, int);
@@ -12424,6 +12426,9 @@ package android.content.pm {
    method @NonNull public android.content.pm.PackageInstaller.Session openSession(int) throws java.io.IOException;
    method public void registerSessionCallback(@NonNull android.content.pm.PackageInstaller.SessionCallback);
    method public void registerSessionCallback(@NonNull android.content.pm.PackageInstaller.SessionCallback, @NonNull android.os.Handler);
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES, android.Manifest.permission.REQUEST_INSTALL_PACKAGES}) public void reportUnarchivalStatus(int, int, long, @Nullable android.app.PendingIntent) throws android.content.pm.PackageManager.NameNotFoundException;
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void requestArchive(@NonNull String, @NonNull android.content.IntentSender) throws android.content.pm.PackageManager.NameNotFoundException;
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES, android.Manifest.permission.REQUEST_INSTALL_PACKAGES}) public void requestUnarchive(@NonNull String, @NonNull android.content.IntentSender) throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException;
    method @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void uninstall(@NonNull String, @NonNull android.content.IntentSender);
    method @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void uninstall(@NonNull android.content.pm.VersionedPackage, @NonNull android.content.IntentSender);
    method @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void uninstall(@NonNull android.content.pm.VersionedPackage, int, @NonNull android.content.IntentSender);
@@ -12445,6 +12450,10 @@ package android.content.pm {
    field public static final String EXTRA_STATUS = "android.content.pm.extra.STATUS";
    field public static final String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE";
    field public static final String EXTRA_STORAGE_PATH = "android.content.pm.extra.STORAGE_PATH";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_ALL_USERS = "android.content.pm.extra.UNARCHIVE_ALL_USERS";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_ID = "android.content.pm.extra.UNARCHIVE_ID";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_PACKAGE_NAME = "android.content.pm.extra.UNARCHIVE_PACKAGE_NAME";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_STATUS = "android.content.pm.extra.UNARCHIVE_STATUS";
    field public static final int PACKAGE_SOURCE_DOWNLOADED_FILE = 4; // 0x4
    field public static final int PACKAGE_SOURCE_LOCAL_FILE = 3; // 0x3
    field public static final int PACKAGE_SOURCE_OTHER = 1; // 0x1
@@ -12460,6 +12469,13 @@ package android.content.pm {
    field public static final int STATUS_FAILURE_TIMEOUT = 8; // 0x8
    field public static final int STATUS_PENDING_USER_ACTION = -1; // 0xffffffff
    field public static final int STATUS_SUCCESS = 0; // 0x0
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_INSTALLER_DISABLED = 4; // 0x4
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_INSTALLER_UNINSTALLED = 5; // 0x5
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_INSUFFICIENT_STORAGE = 2; // 0x2
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_NO_CONNECTIVITY = 3; // 0x3
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_USER_ACTION_NEEDED = 1; // 0x1
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_GENERIC_ERROR = 100; // 0x64
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_OK = 0; // 0x0
  }
  public static final class PackageInstaller.InstallConstraints implements android.os.Parcelable {
@@ -12623,6 +12639,7 @@ package android.content.pm {
    method @RequiresPermission(android.Manifest.permission.ENFORCE_UPDATE_OWNERSHIP) public void setRequestUpdateOwnership(boolean);
    method public void setRequireUserAction(int);
    method public void setSize(long);
    method @FlaggedApi("android.content.pm.archiving") public void setUnarchiveId(int);
    method public void setWhitelistedRestrictedPermissions(@Nullable java.util.Set<java.lang.String>);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.content.pm.PackageInstaller.SessionParams> CREATOR;
@@ -12652,6 +12669,7 @@ package android.content.pm {
    method public void writeToParcel(android.os.Parcel, int);
    field public int banner;
    field public int icon;
    field @FlaggedApi("android.content.pm.archiving") public boolean isArchived;
    field public int labelRes;
    field public int logo;
    field public android.os.Bundle metaData;
@@ -12774,6 +12792,7 @@ package android.content.pm {
    method public boolean hasSigningCertificate(int, @NonNull byte[], int);
    method public abstract boolean hasSystemFeature(@NonNull String);
    method public abstract boolean hasSystemFeature(@NonNull String, int);
    method @FlaggedApi("android.content.pm.archiving") public boolean isAppArchivable(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
    method @RequiresPermission(value="android.permission.WHITELIST_AUTO_REVOKE_PERMISSIONS", conditional=true) public boolean isAutoRevokeWhitelisted(@NonNull String);
    method public boolean isAutoRevokeWhitelisted();
    method public boolean isDefaultApplicationIcon(@NonNull android.graphics.drawable.Drawable);
@@ -13015,6 +13034,7 @@ package android.content.pm {
    field public static final int INSTALL_SCENARIO_FAST = 1; // 0x1
    field public static final int MATCH_ALL = 131072; // 0x20000
    field public static final int MATCH_APEX = 1073741824; // 0x40000000
    field @FlaggedApi("android.content.pm.archiving") public static final long MATCH_ARCHIVED_PACKAGES = 4294967296L; // 0x100000000L
    field public static final int MATCH_DEFAULT_ONLY = 65536; // 0x10000
    field public static final int MATCH_DIRECT_BOOT_AUTO = 268435456; // 0x10000000
    field public static final int MATCH_DIRECT_BOOT_AWARE = 524288; // 0x80000
+0 −23
Original line number Diff line number Diff line
@@ -3614,7 +3614,6 @@ package android.content {
    field public static final String ACTION_SHOW_SUSPENDED_APP_DETAILS = "android.intent.action.SHOW_SUSPENDED_APP_DETAILS";
    field @Deprecated public static final String ACTION_SIM_STATE_CHANGED = "android.intent.action.SIM_STATE_CHANGED";
    field public static final String ACTION_SPLIT_CONFIGURATION_CHANGED = "android.intent.action.SPLIT_CONFIGURATION_CHANGED";
    field @FlaggedApi("android.content.pm.archiving") public static final String ACTION_UNARCHIVE_PACKAGE = "android.intent.action.UNARCHIVE_PACKAGE";
    field public static final String ACTION_UPGRADE_SETUP = "android.intent.action.UPGRADE_SETUP";
    field public static final String ACTION_USER_ADDED = "android.intent.action.USER_ADDED";
    field public static final String ACTION_USER_REMOVED = "android.intent.action.USER_REMOVED";
@@ -3862,16 +3861,9 @@ package android.content.pm {
    field @RequiresPermission(android.Manifest.permission.ACCESS_SHORTCUTS) public static final int FLAG_GET_PERSONS_DATA = 2048; // 0x800
  }
  public class PackageInfo implements android.os.Parcelable {
    method @FlaggedApi("android.content.pm.archiving") public long getArchiveTimeMillis();
  }
  public class PackageInstaller {
    method @NonNull public android.content.pm.PackageInstaller.InstallInfo readInstallInfo(@NonNull java.io.File, int) throws android.content.pm.PackageInstaller.PackageParsingException;
    method @FlaggedApi("android.content.pm.read_install_info") @NonNull public android.content.pm.PackageInstaller.InstallInfo readInstallInfo(@NonNull android.os.ParcelFileDescriptor, @Nullable String, int) throws android.content.pm.PackageInstaller.PackageParsingException;
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES, android.Manifest.permission.REQUEST_INSTALL_PACKAGES}) public void reportUnarchivalStatus(int, int, long, @Nullable android.app.PendingIntent) throws android.content.pm.PackageManager.NameNotFoundException;
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void requestArchive(@NonNull String, @NonNull android.content.IntentSender) throws android.content.pm.PackageManager.NameNotFoundException;
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES, android.Manifest.permission.REQUEST_INSTALL_PACKAGES}) public void requestUnarchive(@NonNull String, @NonNull android.content.IntentSender) throws java.io.IOException, android.content.pm.PackageManager.NameNotFoundException;
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean);
    field public static final String ACTION_CONFIRM_INSTALL = "android.content.pm.action.CONFIRM_INSTALL";
    field public static final String ACTION_CONFIRM_PRE_APPROVAL = "android.content.pm.action.CONFIRM_PRE_APPROVAL";
@@ -3882,23 +3874,12 @@ package android.content.pm {
    field public static final String EXTRA_DATA_LOADER_TYPE = "android.content.pm.extra.DATA_LOADER_TYPE";
    field public static final String EXTRA_LEGACY_STATUS = "android.content.pm.extra.LEGACY_STATUS";
    field @Deprecated public static final String EXTRA_RESOLVED_BASE_PATH = "android.content.pm.extra.RESOLVED_BASE_PATH";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_ALL_USERS = "android.content.pm.extra.UNARCHIVE_ALL_USERS";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_ID = "android.content.pm.extra.UNARCHIVE_ID";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_PACKAGE_NAME = "android.content.pm.extra.UNARCHIVE_PACKAGE_NAME";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_UNARCHIVE_STATUS = "android.content.pm.extra.UNARCHIVE_STATUS";
    field public static final int LOCATION_DATA_APP = 0; // 0x0
    field public static final int LOCATION_MEDIA_DATA = 2; // 0x2
    field public static final int LOCATION_MEDIA_OBB = 1; // 0x1
    field public static final int REASON_CONFIRM_PACKAGE_CHANGE = 0; // 0x0
    field public static final int REASON_OWNERSHIP_CHANGED = 1; // 0x1
    field public static final int REASON_REMIND_OWNERSHIP = 2; // 0x2
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_INSTALLER_DISABLED = 4; // 0x4
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_INSTALLER_UNINSTALLED = 5; // 0x5
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_INSUFFICIENT_STORAGE = 2; // 0x2
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_NO_CONNECTIVITY = 3; // 0x3
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_ERROR_USER_ACTION_NEEDED = 1; // 0x1
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_GENERIC_ERROR = 100; // 0x64
    field @FlaggedApi("android.content.pm.archiving") public static final int UNARCHIVAL_OK = 0; // 0x0
  }
  public static class PackageInstaller.InstallInfo {
@@ -3948,14 +3929,12 @@ package android.content.pm {
    method public void setRequestDowngrade(boolean);
    method @FlaggedApi("android.content.pm.rollback_lifetime") @RequiresPermission(android.Manifest.permission.MANAGE_ROLLBACKS) public void setRollbackLifetimeMillis(long);
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged();
    method @FlaggedApi("android.content.pm.archiving") public void setUnarchiveId(int);
  }
  public class PackageItemInfo {
    method public static void forceSafeLabels();
    method @Deprecated @NonNull public CharSequence loadSafeLabel(@NonNull android.content.pm.PackageManager);
    method @NonNull public CharSequence loadSafeLabel(@NonNull android.content.pm.PackageManager, @FloatRange(from=0) float, int);
    field @FlaggedApi("android.content.pm.archiving") public boolean isArchived;
  }
  public abstract class PackageManager {
@@ -3987,7 +3966,6 @@ package android.content.pm {
    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS) public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
    method @Deprecated public abstract int installExistingPackage(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
    method @Deprecated public abstract int installExistingPackage(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method @FlaggedApi("android.content.pm.archiving") public boolean isAppArchivable(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(@NonNull android.content.Intent, int, android.os.UserHandle);
    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(@NonNull android.content.Intent, @NonNull android.content.pm.PackageManager.ResolveInfoFlags, @NonNull android.os.UserHandle);
    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public java.util.List<android.content.pm.ResolveInfo> queryIntentActivitiesAsUser(@NonNull android.content.Intent, int, @NonNull android.os.UserHandle);
@@ -4105,7 +4083,6 @@ package android.content.pm {
    field @Deprecated public static final int INTENT_FILTER_VERIFICATION_SUCCESS = 1; // 0x1
    field @Deprecated public static final int MASK_PERMISSION_FLAGS = 255; // 0xff
    field public static final int MATCH_ANY_USER = 4194304; // 0x400000
    field @FlaggedApi("android.content.pm.archiving") public static final long MATCH_ARCHIVED_PACKAGES = 4294967296L; // 0x100000000L
    field public static final int MATCH_CLONE_PROFILE = 536870912; // 0x20000000
    field public static final int MATCH_FACTORY_ONLY = 2097152; // 0x200000
    field public static final int MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS = 536870912; // 0x20000000
+3 −3
Original line number Diff line number Diff line
@@ -5353,11 +5353,11 @@ public class Intent implements Parcelable, Cloneable {
     * Broadcast Action: Sent to the responsible installer of an archived package when unarchival
     * is requested.
     *
     * @see android.content.pm.PackageInstaller#requestUnarchive(String)
     * @hide
     * @see android.content.pm.PackageInstaller#requestUnarchive
     */
    @SystemApi
    @FlaggedApi(android.content.pm.Flags.FLAG_ARCHIVING)
    @BroadcastBehavior(explicitOnly = true)
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_UNARCHIVE_PACKAGE = "android.intent.action.UNARCHIVE_PACKAGE";
    // ---------------------------------------------------------------------
+0 −3
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import android.annotation.CurrentTimeMillisLong;
import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Parcel;
@@ -522,9 +521,7 @@ public class PackageInfo implements Parcelable {
    /**
     * Returns the time at which the app was archived for the user.  Units are as
     * per {@link System#currentTimeMillis()}.
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public @CurrentTimeMillisLong long getArchiveTimeMillis() {
        return mArchiveTimeMillis;
+3 −45
Original line number Diff line number Diff line
@@ -354,10 +354,7 @@ public class PackageInstaller {
    /**
     * Extra field for the package name of a package that is requested to be unarchived. Sent as
     * part of the {@link android.content.Intent#ACTION_UNARCHIVE_PACKAGE} intent.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final String EXTRA_UNARCHIVE_PACKAGE_NAME =
            "android.content.pm.extra.UNARCHIVE_PACKAGE_NAME";
@@ -366,22 +363,16 @@ public class PackageInstaller {
     * Extra field for the unarchive ID. Sent as
     * part of the {@link android.content.Intent#ACTION_UNARCHIVE_PACKAGE} intent.
     *
     * @see Session#setUnarchiveId(int)
     *
     * @hide
     * @see SessionParams#setUnarchiveId
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final String EXTRA_UNARCHIVE_ID =
            "android.content.pm.extra.UNARCHIVE_ID";

    /**
     * If true, the requestor of the unarchival has specified that the app should be unarchived
     * for {@link android.os.UserHandle#ALL}.
     *
     * @hide
     * for all users.
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final String EXTRA_UNARCHIVE_ALL_USERS =
            "android.content.pm.extra.UNARCHIVE_ALL_USERS";
@@ -398,9 +389,7 @@ public class PackageInstaller {
     * failure dialog.
     *
     * @see #requestUnarchive
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final String EXTRA_UNARCHIVE_STATUS = "android.content.pm.extra.UNARCHIVE_STATUS";

@@ -675,10 +664,7 @@ public class PackageInstaller {
     *
     * <p> Note that this does not mean that the unarchival has completed. This status should be
     * sent before any longer asynchronous action (e.g. app download) is started.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final int UNARCHIVAL_OK = 0;

@@ -687,10 +673,7 @@ public class PackageInstaller {
     *
     * <p> An example use case for this could be that the user needs to login to allow the
     * download for a paid app.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final int UNARCHIVAL_ERROR_USER_ACTION_NEEDED = 1;

@@ -700,19 +683,13 @@ public class PackageInstaller {
     * <p> The installer can optionally provide a {@code userActionIntent} for a space-clearing
     * dialog. If no action is provided, then a generic intent
     * {@link android.os.storage.StorageManager#ACTION_MANAGE_STORAGE} is started instead.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final int UNARCHIVAL_ERROR_INSUFFICIENT_STORAGE = 2;

    /**
     * The device is not connected to the internet
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final int UNARCHIVAL_ERROR_NO_CONNECTIVITY = 3;

@@ -720,10 +697,7 @@ public class PackageInstaller {
     * The installer responsible for the unarchival is disabled.
     *
     * <p> Should only be used by the system.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final int UNARCHIVAL_ERROR_INSTALLER_DISABLED = 4;

@@ -731,19 +705,13 @@ public class PackageInstaller {
     * The installer responsible for the unarchival has been uninstalled
     *
     * <p> Should only be used by the system.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final int UNARCHIVAL_ERROR_INSTALLER_UNINSTALLED = 5;

    /**
     * Generic error: The app cannot be unarchived.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public static final int UNARCHIVAL_GENERIC_ERROR = 100;

@@ -2364,12 +2332,10 @@ public class PackageInstaller {
     * @param statusReceiver Callback used to notify when the operation is completed.
     * @throws PackageManager.NameNotFoundException If {@code packageName} isn't found or not
     *                                              available to the caller or isn't archived.
     * @hide
     */
    @RequiresPermission(anyOf = {
            Manifest.permission.DELETE_PACKAGES,
            Manifest.permission.REQUEST_DELETE_PACKAGES})
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public void requestArchive(@NonNull String packageName, @NonNull IntentSender statusReceiver)
            throws PackageManager.NameNotFoundException {
@@ -2395,19 +2361,16 @@ public class PackageInstaller {
     *
     * @param statusReceiver Callback used to notify whether the installer has accepted the
     *                       unarchival request or an error has occurred. The status update will be
     *                       sent though {@link EXTRA_UNARCHIVE_STATUS}. Only one status will be
     *                       sent though {@link #EXTRA_UNARCHIVE_STATUS}. Only one status will be
     *                       sent.
     * @throws PackageManager.NameNotFoundException If {@code packageName} isn't found or not
     *                                              visible to the caller or if the package has no
     *                                              installer on the device anymore to unarchive it.
     * @throws IOException If parameters were unsatisfiable, such as lack of disk space.
     *
     * @hide
     */
    @RequiresPermission(anyOf = {
            Manifest.permission.INSTALL_PACKAGES,
            Manifest.permission.REQUEST_INSTALL_PACKAGES})
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public void requestUnarchive(@NonNull String packageName, @NonNull IntentSender statusReceiver)
            throws IOException, PackageManager.NameNotFoundException {
@@ -2435,12 +2398,10 @@ public class PackageInstaller {
     * @param userActionIntent     Optional intent to start a follow up action required to
     *                             facilitate the unarchival flow (e.g. user needs to log in).
     * @throws PackageManager.NameNotFoundException if no unarchival with {@code unarchiveId} exists
     * @hide
     */
    @RequiresPermission(anyOf = {
            Manifest.permission.INSTALL_PACKAGES,
            Manifest.permission.REQUEST_INSTALL_PACKAGES})
    @SystemApi
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public void reportUnarchivalStatus(int unarchiveId, @UnarchivalStatus int status,
            long requiredStorageBytes, @Nullable PendingIntent userActionIntent)
@@ -3454,11 +3415,8 @@ public class PackageInstaller {
         * <p> The ID should be retrieved from the unarchive intent and passed into the
         * session that's being created to unarchive the app in question. Used to link the unarchive
         * intent and the install session to disambiguate.
         *
         * @hide
         */
        @FlaggedApi(Flags.FLAG_ARCHIVING)
        @SystemApi
        public void setUnarchiveId(int unarchiveId) {
            this.unarchiveId = unarchiveId;
        }
Loading