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

Commit 1b4f4f41 authored by Mark Kim's avatar Mark Kim Committed by Android (Google) Code Review
Browse files

Merge "Pass additional flags to UninstallerActivity to handle archiving case...

Merge "Pass additional flags to UninstallerActivity to handle archiving case when app's data should be saved." into main
parents 85df79c1 e42fb6a5
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -12428,7 +12428,7 @@ package android.content.pm {
    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.DELETE_PACKAGES, android.Manifest.permission.REQUEST_DELETE_PACKAGES}) public void requestArchive(@NonNull String, @NonNull android.content.IntentSender, int) 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);
@@ -12853,6 +12853,8 @@ package android.content.pm {
    field public static final int COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED = 4; // 0x4
    field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3
    field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1
    field @FlaggedApi("android.content.pm.archiving") public static final int DELETE_ARCHIVE = 16; // 0x10
    field @FlaggedApi("android.content.pm.archiving") public static final int DELETE_SHOW_DIALOG = 32; // 0x20
    field public static final int DONT_KILL_APP = 1; // 0x1
    field public static final String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
    field public static final String EXTRA_VERIFICATION_RESULT = "android.content.pm.extra.VERIFICATION_RESULT";
+1 −0
Original line number Diff line number Diff line
@@ -3872,6 +3872,7 @@ package android.content.pm {
    field public static final int DATA_LOADER_TYPE_STREAMING = 1; // 0x1
    field public static final String EXTRA_CALLBACK = "android.content.pm.extra.CALLBACK";
    field public static final String EXTRA_DATA_LOADER_TYPE = "android.content.pm.extra.DATA_LOADER_TYPE";
    field @FlaggedApi("android.content.pm.archiving") public static final String EXTRA_DELETE_FLAGS = "android.content.pm.extra.DELETE_FLAGS";
    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 public static final int LOCATION_DATA_APP = 0; // 0x0
+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ interface IPackageInstaller {
            long timeout);

    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf={android.Manifest.permission.DELETE_PACKAGES,android.Manifest.permission.REQUEST_DELETE_PACKAGES})")
    void requestArchive(String packageName, String callerPackageName, in IntentSender statusReceiver, in UserHandle userHandle);
    void requestArchive(String packageName, String callerPackageName, in IntentSender statusReceiver, in UserHandle userHandle, int flags);

    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES,android.Manifest.permission.REQUEST_INSTALL_PACKAGES})")
    void requestUnarchive(String packageName, String callerPackageName, in IntentSender statusReceiver, in UserHandle userHandle);
+12 −2
Original line number Diff line number Diff line
@@ -323,6 +323,14 @@ public class PackageInstaller {
     */
    @SystemApi
    public static final String EXTRA_CALLBACK = "android.content.pm.extra.CALLBACK";
    /**
     * Key for passing extra delete flags during archiving.
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(android.content.pm.Flags.FLAG_ARCHIVING)
    public static final String EXTRA_DELETE_FLAGS = "android.content.pm.extra.DELETE_FLAGS";

    /**
     * Type of DataLoader for this session. Will be one of
@@ -2330,6 +2338,7 @@ public class PackageInstaller {
     * communicated.
     *
     * @param statusReceiver Callback used to notify when the operation is completed.
     * @param flags Flags for archiving. Can be 0 or {@link PackageManager#DELETE_SHOW_DIALOG}.
     * @throws PackageManager.NameNotFoundException If {@code packageName} isn't found or not
     *                                              available to the caller or isn't archived.
     */
@@ -2337,11 +2346,12 @@ public class PackageInstaller {
            Manifest.permission.DELETE_PACKAGES,
            Manifest.permission.REQUEST_DELETE_PACKAGES})
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public void requestArchive(@NonNull String packageName, @NonNull IntentSender statusReceiver)
    public void requestArchive(@NonNull String packageName, @NonNull IntentSender statusReceiver,
            @DeleteFlags int flags)
            throws PackageManager.NameNotFoundException {
        try {
            mInstaller.requestArchive(packageName, mInstallerPackageName, statusReceiver,
                    new UserHandle(mUserId));
                    new UserHandle(mUserId), flags);
        } catch (ParcelableException e) {
            e.maybeRethrow(PackageManager.NameNotFoundException.class);
        } catch (RemoteException e) {
+12 −5
Original line number Diff line number Diff line
@@ -2552,6 +2552,7 @@ public abstract class PackageManager {
            DELETE_SYSTEM_APP,
            DELETE_DONT_KILL_APP,
            DELETE_CHATTY,
            DELETE_SHOW_DIALOG,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface DeleteFlags {}
@@ -2595,14 +2596,20 @@ public abstract class PackageManager {
    public static final int DELETE_DONT_KILL_APP = 0x00000008;

    /**
     * Flag parameter for {@link #deletePackage} to indicate that the deletion is an archival. This
     * Flag parameter for {@link PackageInstaller#uninstall(VersionedPackage, int, IntentSender)} to
     * indicate that the deletion is an archival. This
     * flag is only for internal usage as part of
     * {@link PackageInstaller#requestArchive(String, IntentSender)}.
     *
     * @hide
     * {@link PackageInstaller#requestArchive}.
     */
    @FlaggedApi(android.content.pm.Flags.FLAG_ARCHIVING)
    public static final int DELETE_ARCHIVE = 0x00000010;

    /**
     * Show a confirmation dialog to the user when app is being deleted.
     */
    @FlaggedApi(android.content.pm.Flags.FLAG_ARCHIVING)
    public static final int DELETE_SHOW_DIALOG = 0x00000020;

    /**
     * Flag parameter for {@link #deletePackage} to indicate that package deletion
     * should be chatty.
@@ -8964,7 +8971,7 @@ public abstract class PackageManager {
     * Returns true if an app is archivable.
     *
     * @throws NameNotFoundException if the given package name is not available to the caller.
     * @see PackageInstaller#requestArchive(String, IntentSender)
     * @see PackageInstaller#requestArchive
     */
    @FlaggedApi(android.content.pm.Flags.FLAG_ARCHIVING)
    public boolean isAppArchivable(@NonNull String packageName) throws NameNotFoundException {
Loading