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

Commit e6a7ab40 authored by Alex Buynytskyy's avatar Alex Buynytskyy Committed by Android (Google) Code Review
Browse files

Merge "Addressing API comments." into main

parents 9f950358 ab1efa66
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
@@ -1006,7 +1006,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
@@ -1016,15 +1016,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