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

Commit ab1efa66 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

Addressing API comments.

Bug: 308588471
Test: adb shell device_config put package_manager_service android.content.pm.archiving true && atest PackageManagerTest
Test: adb shell device_config put package_manager_service android.content.pm.archiving false && atest PackageManagerTest
Change-Id: Ia2af3302462baab740369f44ed96d9cb19ef50e9
parent c963d064
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
@@ -11989,22 +11989,22 @@ package android.content.pm {
    method public final int compare(android.content.pm.ApplicationInfo, android.content.pm.ApplicationInfo);
  }
  @FlaggedApi("android.content.pm.archiving") public final class ArchivedActivity {
    ctor public ArchivedActivity(@NonNull CharSequence, @NonNull android.content.ComponentName);
  @FlaggedApi("android.content.pm.archiving") public final class ArchivedActivityInfo {
    ctor public ArchivedActivityInfo(@NonNull CharSequence, @NonNull android.content.ComponentName);
    method @NonNull public android.content.ComponentName getComponentName();
    method @Nullable public android.graphics.drawable.Drawable getIcon();
    method @NonNull public CharSequence getLabel();
    method @Nullable public android.graphics.drawable.Drawable getMonochromeIcon();
    method @NonNull public android.content.pm.ArchivedActivity setComponentName(@NonNull android.content.ComponentName);
    method @NonNull public android.content.pm.ArchivedActivity setIcon(@NonNull android.graphics.drawable.Drawable);
    method @NonNull public android.content.pm.ArchivedActivity setLabel(@NonNull CharSequence);
    method @NonNull public android.content.pm.ArchivedActivity setMonochromeIcon(@NonNull android.graphics.drawable.Drawable);
    method @NonNull public android.content.pm.ArchivedActivityInfo setComponentName(@NonNull android.content.ComponentName);
    method @NonNull public android.content.pm.ArchivedActivityInfo setIcon(@NonNull android.graphics.drawable.Drawable);
    method @NonNull public android.content.pm.ArchivedActivityInfo setLabel(@NonNull CharSequence);
    method @NonNull public android.content.pm.ArchivedActivityInfo setMonochromeIcon(@NonNull android.graphics.drawable.Drawable);
  }
  @FlaggedApi("android.content.pm.archiving") public final class ArchivedPackage {
    ctor public ArchivedPackage(@NonNull String, @NonNull android.content.pm.SigningInfo, @NonNull java.util.List<android.content.pm.ArchivedActivity>);
  @FlaggedApi("android.content.pm.archiving") public final class ArchivedPackageInfo {
    ctor public ArchivedPackageInfo(@NonNull String, @NonNull android.content.pm.SigningInfo, @NonNull java.util.List<android.content.pm.ArchivedActivityInfo>);
    method @Nullable public String getDefaultToDeviceProtectedStorage();
    method @NonNull public java.util.List<android.content.pm.ArchivedActivity> getLauncherActivities();
    method @NonNull public java.util.List<android.content.pm.ArchivedActivityInfo> getLauncherActivities();
    method @NonNull public String getPackageName();
    method @Nullable public String getRequestLegacyExternalStorage();
    method @NonNull public android.content.pm.SigningInfo getSigningInfo();
@@ -12012,15 +12012,15 @@ package android.content.pm {
    method @Nullable public String getUserDataFragile();
    method public int getVersionCode();
    method public int getVersionCodeMajor();
    method @NonNull public android.content.pm.ArchivedPackage setDefaultToDeviceProtectedStorage(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackage setLauncherActivities(@NonNull java.util.List<android.content.pm.ArchivedActivity>);
    method @NonNull public android.content.pm.ArchivedPackage setPackageName(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackage setRequestLegacyExternalStorage(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackage setSigningInfo(@NonNull android.content.pm.SigningInfo);
    method @NonNull public android.content.pm.ArchivedPackage setTargetSdkVersion(int);
    method @NonNull public android.content.pm.ArchivedPackage setUserDataFragile(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackage setVersionCode(int);
    method @NonNull public android.content.pm.ArchivedPackage setVersionCodeMajor(int);
    method @NonNull public android.content.pm.ArchivedPackageInfo setDefaultToDeviceProtectedStorage(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackageInfo setLauncherActivities(@NonNull java.util.List<android.content.pm.ArchivedActivityInfo>);
    method @NonNull public android.content.pm.ArchivedPackageInfo setPackageName(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackageInfo setRequestLegacyExternalStorage(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackageInfo setSigningInfo(@NonNull android.content.pm.SigningInfo);
    method @NonNull public android.content.pm.ArchivedPackageInfo setTargetSdkVersion(int);
    method @NonNull public android.content.pm.ArchivedPackageInfo setUserDataFragile(@NonNull String);
    method @NonNull public android.content.pm.ArchivedPackageInfo setVersionCode(int);
    method @NonNull public android.content.pm.ArchivedPackageInfo setVersionCodeMajor(int);
  }
  public final class Attribution implements android.os.Parcelable {
@@ -12355,7 +12355,7 @@ package android.content.pm {
    method @Nullable public android.content.pm.PackageInstaller.SessionInfo getSessionInfo(int);
    method @NonNull public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getStagedSessions();
    method @RequiresPermission(allOf={android.Manifest.permission.INSTALL_PACKAGES, "com.android.permission.INSTALL_EXISTING_PACKAGES"}) public void installExistingPackage(@NonNull String, int, @Nullable android.content.IntentSender);
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void installPackageArchived(@NonNull android.content.pm.ArchivedPackage, @NonNull android.content.pm.PackageInstaller.SessionParams, @NonNull android.content.IntentSender);
    method @FlaggedApi("android.content.pm.archiving") @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void installPackageArchived(@NonNull android.content.pm.ArchivedPackageInfo, @NonNull android.content.pm.PackageInstaller.SessionParams, @NonNull android.content.IntentSender);
    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);
@@ -12637,7 +12637,7 @@ package android.content.pm {
    method @NonNull public abstract CharSequence getApplicationLabel(@NonNull android.content.pm.ApplicationInfo);
    method @Nullable public abstract android.graphics.drawable.Drawable getApplicationLogo(@NonNull android.content.pm.ApplicationInfo);
    method @Nullable public abstract android.graphics.drawable.Drawable getApplicationLogo(@NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
    method @FlaggedApi("android.content.pm.archiving") @Nullable public android.content.pm.ArchivedPackage getArchivedPackage(@NonNull String);
    method @FlaggedApi("android.content.pm.archiving") @Nullable public android.content.pm.ArchivedPackageInfo getArchivedPackage(@NonNull String);
    method @NonNull public CharSequence getBackgroundPermissionOptionLabel();
    method @Nullable public abstract android.content.pm.ChangedPackages getChangedPackages(@IntRange(from=0) int);
    method public abstract int getComponentEnabledSetting(@NonNull android.content.ComponentName);
+3 −3
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ import android.content.IntentSender;
import android.content.pm.ActivityInfo;
import android.content.pm.ApkChecksum;
import android.content.pm.ApplicationInfo;
import android.content.pm.ArchivedPackage;
import android.content.pm.ArchivedPackageInfo;
import android.content.pm.ChangedPackages;
import android.content.pm.Checksum;
import android.content.pm.ComponentInfo;
@@ -3937,13 +3937,13 @@ public class ApplicationPackageManager extends PackageManager {
    }

    @Override
    public @Nullable ArchivedPackage getArchivedPackage(@NonNull String packageName) {
    public @Nullable ArchivedPackageInfo getArchivedPackage(@NonNull String packageName) {
        try {
            var parcel = mPM.getArchivedPackage(packageName, mContext.getUserId());
            if (parcel == null) {
                return null;
            }
            return new ArchivedPackage(parcel);
            return new ArchivedPackageInfo(parcel);
        } catch (RemoteException e) {
            throw e.rethrowAsRuntimeException();
        }
+15 −11
Original line number Diff line number Diff line
@@ -32,9 +32,13 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Objects;

/**
 * Contains fields required to show archived package in Launcher.
 * @see ArchivedPackageInfo
 */
@DataClass(genBuilder = false, genConstructor = false, genSetters = true)
@FlaggedApi(Flags.FLAG_ARCHIVING)
public final class ArchivedActivity {
public final class ArchivedActivityInfo {
    /** The label for the activity. */
    private @NonNull CharSequence mLabel;
    /** The component name of this activity. */
@@ -47,7 +51,7 @@ public final class ArchivedActivity {
    /** Monochrome icon, if defined, of the activity. */
    private @Nullable Drawable mMonochromeIcon;

    public ArchivedActivity(@NonNull CharSequence label, @NonNull ComponentName componentName) {
    public ArchivedActivityInfo(@NonNull CharSequence label, @NonNull ComponentName componentName) {
        Objects.requireNonNull(label);
        Objects.requireNonNull(componentName);
        mLabel = label;
@@ -55,7 +59,7 @@ public final class ArchivedActivity {
    }

    /* @hide */
    ArchivedActivity(@NonNull ArchivedActivityParcel parcel) {
    ArchivedActivityInfo(@NonNull ArchivedActivityParcel parcel) {
        mLabel = parcel.title;
        mComponentName = parcel.originalComponentName;
        mIcon = drawableFromCompressedBitmap(parcel.iconBitmap);
@@ -149,7 +153,7 @@ public final class ArchivedActivity {
    // CHECKSTYLE:OFF Generated code
    //
    // To regenerate run:
    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/content/pm/ArchivedActivity.java
    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/content/pm/ArchivedActivityInfo.java
    //
    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
    //   Settings > Editor > Code Style > Formatter Control
@@ -193,7 +197,7 @@ public final class ArchivedActivity {
     * The label for the activity.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedActivity setLabel(@NonNull CharSequence value) {
    public @NonNull ArchivedActivityInfo setLabel(@NonNull CharSequence value) {
        mLabel = value;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mLabel);
@@ -204,7 +208,7 @@ public final class ArchivedActivity {
     * The component name of this activity.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedActivity setComponentName(@NonNull ComponentName value) {
    public @NonNull ArchivedActivityInfo setComponentName(@NonNull ComponentName value) {
        mComponentName = value;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mComponentName);
@@ -216,7 +220,7 @@ public final class ArchivedActivity {
     * launcher.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedActivity setIcon(@NonNull Drawable value) {
    public @NonNull ArchivedActivityInfo setIcon(@NonNull Drawable value) {
        mIcon = value;
        return this;
    }
@@ -225,16 +229,16 @@ public final class ArchivedActivity {
     * Monochrome icon, if defined, of the activity.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedActivity setMonochromeIcon(@NonNull Drawable value) {
    public @NonNull ArchivedActivityInfo setMonochromeIcon(@NonNull Drawable value) {
        mMonochromeIcon = value;
        return this;
    }

    @DataClass.Generated(
            time = 1698173429911L,
            time = 1698789991876L,
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/content/pm/ArchivedActivity.java",
            inputSignatures = "private @android.annotation.NonNull java.lang.CharSequence mLabel\nprivate @android.annotation.NonNull android.content.ComponentName mComponentName\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mIcon\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mMonochromeIcon\n @android.annotation.NonNull android.content.pm.ArchivedActivityParcel getParcel()\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable)\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable,int)\npublic static  byte[] bytesFromBitmap(android.graphics.Bitmap)\nprivate static  android.graphics.drawable.Drawable drawableFromCompressedBitmap(byte[])\nclass ArchivedActivity extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=false, genConstructor=false, genSetters=true)")
            sourceFile = "frameworks/base/core/java/android/content/pm/ArchivedActivityInfo.java",
            inputSignatures = "private @android.annotation.NonNull java.lang.CharSequence mLabel\nprivate @android.annotation.NonNull android.content.ComponentName mComponentName\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mIcon\nprivate @android.annotation.Nullable android.graphics.drawable.Drawable mMonochromeIcon\n @android.annotation.NonNull android.content.pm.ArchivedActivityParcel getParcel()\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable)\npublic static  android.graphics.Bitmap drawableToBitmap(android.graphics.drawable.Drawable,int)\npublic static  byte[] bytesFromBitmap(android.graphics.Bitmap)\nprivate static  android.graphics.drawable.Drawable drawableFromCompressedBitmap(byte[])\nclass ArchivedActivityInfo extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=false, genConstructor=false, genSetters=true)")
    @Deprecated
    private void __metadata() {}

+24 −20
Original line number Diff line number Diff line
@@ -27,9 +27,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * Contains fields required for archived package installation,
 * i.e. installation without an APK.
 */
@DataClass(genBuilder = false, genConstructor = false, genSetters = true)
@FlaggedApi(Flags.FLAG_ARCHIVING)
public final class ArchivedPackage {
public final class ArchivedPackageInfo {
    /** Name of the package as used to identify it in the system */
    private @NonNull String mPackageName;
    /** Signing certificates used to sign the package. */
@@ -74,10 +78,10 @@ public final class ArchivedPackage {
     * {@link Intent#CATEGORY_LAUNCHER}.
     * @see LauncherApps#getActivityList
     */
    private @NonNull List<ArchivedActivity> mLauncherActivities;
    private @NonNull List<ArchivedActivityInfo> mLauncherActivities;

    public ArchivedPackage(@NonNull String packageName, @NonNull SigningInfo signingInfo,
            @NonNull List<ArchivedActivity> launcherActivities) {
    public ArchivedPackageInfo(@NonNull String packageName, @NonNull SigningInfo signingInfo,
            @NonNull List<ArchivedActivityInfo> launcherActivities) {
        Objects.requireNonNull(packageName);
        Objects.requireNonNull(signingInfo);
        Objects.requireNonNull(launcherActivities);
@@ -90,7 +94,7 @@ public final class ArchivedPackage {
     * Constructs the archived package from parcel.
     * @hide
     */
    public ArchivedPackage(@NonNull ArchivedPackageParcel parcel) {
    public ArchivedPackageInfo(@NonNull ArchivedPackageParcel parcel) {
        mPackageName = parcel.packageName;
        mSigningInfo = new SigningInfo(parcel.signingDetails);
        mVersionCode = parcel.versionCode;
@@ -102,7 +106,7 @@ public final class ArchivedPackage {
        mLauncherActivities = new ArrayList<>();
        if (parcel.archivedActivities != null) {
            for (var activityParcel : parcel.archivedActivities) {
                mLauncherActivities.add(new ArchivedActivity(activityParcel));
                mLauncherActivities.add(new ArchivedActivityInfo(activityParcel));
            }
        }
    }
@@ -135,7 +139,7 @@ public final class ArchivedPackage {
    // CHECKSTYLE:OFF Generated code
    //
    // To regenerate run:
    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/content/pm/ArchivedPackage.java
    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/content/pm/ArchivedPackageInfo.java
    //
    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
    //   Settings > Editor > Code Style > Formatter Control
@@ -224,7 +228,7 @@ public final class ArchivedPackage {
     * @see LauncherApps#getActivityList
     */
    @DataClass.Generated.Member
    public @NonNull List<ArchivedActivity> getLauncherActivities() {
    public @NonNull List<ArchivedActivityInfo> getLauncherActivities() {
        return mLauncherActivities;
    }

@@ -232,7 +236,7 @@ public final class ArchivedPackage {
     * Name of the package as used to identify it in the system
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setPackageName(@NonNull String value) {
    public @NonNull ArchivedPackageInfo setPackageName(@NonNull String value) {
        mPackageName = value;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mPackageName);
@@ -243,7 +247,7 @@ public final class ArchivedPackage {
     * Signing certificates used to sign the package.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setSigningInfo(@NonNull SigningInfo value) {
    public @NonNull ArchivedPackageInfo setSigningInfo(@NonNull SigningInfo value) {
        mSigningInfo = value;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mSigningInfo);
@@ -255,7 +259,7 @@ public final class ArchivedPackage {
     * {@link android.R.styleable#AndroidManifest_versionCode versionCode} attribute.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setVersionCode( int value) {
    public @NonNull ArchivedPackageInfo setVersionCode( int value) {
        mVersionCode = value;
        return this;
    }
@@ -265,7 +269,7 @@ public final class ArchivedPackage {
     * {@link android.R.styleable#AndroidManifest_versionCode versionCodeMajor} attribute.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setVersionCodeMajor( int value) {
    public @NonNull ArchivedPackageInfo setVersionCodeMajor( int value) {
        mVersionCodeMajor = value;
        return this;
    }
@@ -276,7 +280,7 @@ public final class ArchivedPackage {
     * attribute.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setTargetSdkVersion( int value) {
    public @NonNull ArchivedPackageInfo setTargetSdkVersion( int value) {
        mTargetSdkVersion = value;
        return this;
    }
@@ -287,7 +291,7 @@ public final class ArchivedPackage {
     * attribute.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setDefaultToDeviceProtectedStorage(@NonNull String value) {
    public @NonNull ArchivedPackageInfo setDefaultToDeviceProtectedStorage(@NonNull String value) {
        mDefaultToDeviceProtectedStorage = value;
        return this;
    }
@@ -299,7 +303,7 @@ public final class ArchivedPackage {
     * attribute.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setRequestLegacyExternalStorage(@NonNull String value) {
    public @NonNull ArchivedPackageInfo setRequestLegacyExternalStorage(@NonNull String value) {
        mRequestLegacyExternalStorage = value;
        return this;
    }
@@ -310,7 +314,7 @@ public final class ArchivedPackage {
     * {@link android.R.styleable#AndroidManifestApplication_hasFragileUserData} attribute.
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setUserDataFragile(@NonNull String value) {
    public @NonNull ArchivedPackageInfo setUserDataFragile(@NonNull String value) {
        mUserDataFragile = value;
        return this;
    }
@@ -322,7 +326,7 @@ public final class ArchivedPackage {
     * @see LauncherApps#getActivityList
     */
    @DataClass.Generated.Member
    public @NonNull ArchivedPackage setLauncherActivities(@NonNull List<ArchivedActivity> value) {
    public @NonNull ArchivedPackageInfo setLauncherActivities(@NonNull List<ArchivedActivityInfo> value) {
        mLauncherActivities = value;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, mLauncherActivities);
@@ -330,10 +334,10 @@ public final class ArchivedPackage {
    }

    @DataClass.Generated(
            time = 1697824890503L,
            time = 1698789995536L,
            codegenVersion = "1.0.23",
            sourceFile = "frameworks/base/core/java/android/content/pm/ArchivedPackage.java",
            inputSignatures = "private @android.annotation.NonNull java.lang.String mPackageName\nprivate @android.annotation.NonNull android.content.pm.SigningInfo mSigningInfo\nprivate  int mVersionCode\nprivate  int mVersionCodeMajor\nprivate  int mTargetSdkVersion\nprivate @android.annotation.Nullable java.lang.String mDefaultToDeviceProtectedStorage\nprivate @android.annotation.Nullable java.lang.String mRequestLegacyExternalStorage\nprivate @android.annotation.Nullable java.lang.String mUserDataFragile\nprivate @android.annotation.NonNull java.util.List<android.content.pm.ArchivedActivity> mLauncherActivities\n  android.content.pm.ArchivedPackageParcel getParcel()\nclass ArchivedPackage extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=false, genConstructor=false, genSetters=true)")
            sourceFile = "frameworks/base/core/java/android/content/pm/ArchivedPackageInfo.java",
            inputSignatures = "private @android.annotation.NonNull java.lang.String mPackageName\nprivate @android.annotation.NonNull android.content.pm.SigningInfo mSigningInfo\nprivate  int mVersionCode\nprivate  int mVersionCodeMajor\nprivate  int mTargetSdkVersion\nprivate @android.annotation.Nullable java.lang.String mDefaultToDeviceProtectedStorage\nprivate @android.annotation.Nullable java.lang.String mRequestLegacyExternalStorage\nprivate @android.annotation.Nullable java.lang.String mUserDataFragile\nprivate @android.annotation.NonNull java.util.List<android.content.pm.ArchivedActivityInfo> mLauncherActivities\n  android.content.pm.ArchivedPackageParcel getParcel()\nclass ArchivedPackageInfo extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=false, genConstructor=false, genSetters=true)")
    @Deprecated
    private void __metadata() {}

+4 −4
Original line number Diff line number Diff line
@@ -1003,7 +1003,7 @@ public class PackageInstaller {
    /**
     * Install package in an archived state.
     *
     * @param archivedPackage archived package data such as package name, signature etc.
     * @param archivedPackageInfo archived package data such as package name, signature etc.
     * @param sessionParams used to create an underlying installation session
     * @param statusReceiver Called when the state of the session changes. Intents
     *                       sent to this receiver contain {@link #EXTRA_STATUS}. Refer to the
@@ -1013,15 +1013,15 @@ public class PackageInstaller {
     */
    @RequiresPermission(Manifest.permission.INSTALL_PACKAGES)
    @FlaggedApi(Flags.FLAG_ARCHIVING)
    public void installPackageArchived(@NonNull ArchivedPackage archivedPackage,
    public void installPackageArchived(@NonNull ArchivedPackageInfo archivedPackageInfo,
            @NonNull SessionParams sessionParams,
            @NonNull IntentSender statusReceiver) {
        Objects.requireNonNull(archivedPackage, "archivedPackage cannot be null");
        Objects.requireNonNull(archivedPackageInfo, "archivedPackageInfo cannot be null");
        Objects.requireNonNull(sessionParams, "sessionParams cannot be null");
        Objects.requireNonNull(statusReceiver, "statusReceiver cannot be null");
        try {
            mInstaller.installPackageArchived(
                    archivedPackage.getParcel(),
                    archivedPackageInfo.getParcel(),
                    sessionParams,
                    statusReceiver,
                    mInstallerPackageName,
Loading