diff options
| -rw-r--r-- | core/api/current.txt | 19 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageInstaller.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageInstaller.java | 278 |
3 files changed, 298 insertions, 0 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index ea61962b6812..b7f9d0ade0ec 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -11612,6 +11612,25 @@ package android.content.pm { field public static final int STATUS_SUCCESS = 0; // 0x0 } + public static final class PackageInstaller.PreapprovalDetails implements android.os.Parcelable { + method public int describeContents(); + method @Nullable public android.graphics.Bitmap getIcon(); + method @NonNull public String getLabel(); + method @NonNull public android.icu.util.ULocale getLocale(); + method @NonNull public String getPackageName(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.PackageInstaller.PreapprovalDetails> CREATOR; + } + + public static final class PackageInstaller.PreapprovalDetails.Builder { + ctor public PackageInstaller.PreapprovalDetails.Builder(); + method @NonNull public android.content.pm.PackageInstaller.PreapprovalDetails build(); + method @NonNull public android.content.pm.PackageInstaller.PreapprovalDetails.Builder setIcon(@NonNull android.graphics.Bitmap); + method @NonNull public android.content.pm.PackageInstaller.PreapprovalDetails.Builder setLabel(@NonNull String); + method @NonNull public android.content.pm.PackageInstaller.PreapprovalDetails.Builder setLocale(@NonNull android.icu.util.ULocale); + method @NonNull public android.content.pm.PackageInstaller.PreapprovalDetails.Builder setPackageName(@NonNull String); + } + public static class PackageInstaller.Session implements java.io.Closeable { method public void abandon(); method public void addChildSessionId(int); diff --git a/core/java/android/content/pm/PackageInstaller.aidl b/core/java/android/content/pm/PackageInstaller.aidl index 270f870405f5..833919e16855 100644 --- a/core/java/android/content/pm/PackageInstaller.aidl +++ b/core/java/android/content/pm/PackageInstaller.aidl @@ -18,3 +18,4 @@ package android.content.pm; parcelable PackageInstaller.SessionParams; parcelable PackageInstaller.SessionInfo; +parcelable PackageInstaller.PreapprovalDetails; diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java index 5f45c342a27c..5b182730b284 100644 --- a/core/java/android/content/pm/PackageInstaller.java +++ b/core/java/android/content/pm/PackageInstaller.java @@ -47,6 +47,7 @@ import android.content.pm.PackageManager.DeleteFlags; import android.content.pm.PackageManager.InstallReason; import android.content.pm.PackageManager.InstallScenario; import android.graphics.Bitmap; +import android.icu.util.ULocale; import android.net.Uri; import android.os.Build; import android.os.FileBridge; @@ -65,6 +66,7 @@ import android.text.TextUtils; import android.util.ArraySet; import android.util.ExceptionUtils; +import com.android.internal.util.DataClass; import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.Preconditions; import com.android.internal.util.function.pooled.PooledLambda; @@ -3275,4 +3277,280 @@ public class PackageInstaller { } }; } + + /** + * Details for requesting the pre-commit install approval. + */ + @DataClass(genParcelable = true, genHiddenConstructor = true, genBuilder = true, + genToString = true) + public static final class PreapprovalDetails implements Parcelable { + /** + * The icon representing the app to be installed. + */ + private final @Nullable Bitmap mIcon; + /** + * The label representing the app to be installed. + */ + private final @NonNull String mLabel; + /** + * The locale of the app label being used. + */ + private final @NonNull ULocale mLocale; + /** + * The package name of the app to be installed. + */ + private final @NonNull String mPackageName; + + + + + // Code below generated by codegen v1.0.23. + // + // DO NOT MODIFY! + // CHECKSTYLE:OFF Generated code + // + // To regenerate run: + // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/content/pm/PackageInstaller.java + // + // To exclude the generated code from IntelliJ auto-formatting enable (one-time): + // Settings > Editor > Code Style > Formatter Control + //@formatter:off + + + /** + * Creates a new PreapprovalDetails. + * + * @param icon + * The icon representing the app to be installed. + * @param label + * The label representing the app to be installed. + * @param locale + * The locale of the app label being used. + * @param packageName + * The package name of the app to be installed. + * @hide + */ + @DataClass.Generated.Member + public PreapprovalDetails( + @Nullable Bitmap icon, + @NonNull String label, + @NonNull ULocale locale, + @NonNull String packageName) { + this.mIcon = icon; + this.mLabel = label; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mLabel); + this.mLocale = locale; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mLocale); + this.mPackageName = packageName; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mPackageName); + + // onConstructed(); // You can define this method to get a callback + } + + /** + * The icon representing the app to be installed. + */ + @DataClass.Generated.Member + public @Nullable Bitmap getIcon() { + return mIcon; + } + + /** + * The label representing the app to be installed. + */ + @DataClass.Generated.Member + public @NonNull String getLabel() { + return mLabel; + } + + /** + * The locale of the app label being used. + */ + @DataClass.Generated.Member + public @NonNull ULocale getLocale() { + return mLocale; + } + + /** + * The package name of the app to be installed. + */ + @DataClass.Generated.Member + public @NonNull String getPackageName() { + return mPackageName; + } + + @Override + @DataClass.Generated.Member + public String toString() { + // You can override field toString logic by defining methods like: + // String fieldNameToString() { ... } + + return "PreapprovalDetails { " + + "icon = " + mIcon + ", " + + "label = " + mLabel + ", " + + "locale = " + mLocale + ", " + + "packageName = " + mPackageName + + " }"; + } + + @Override + @DataClass.Generated.Member + public void writeToParcel(@NonNull Parcel dest, int flags) { + // You can override field parcelling by defining methods like: + // void parcelFieldName(Parcel dest, int flags) { ... } + + byte flg = 0; + if (mIcon != null) flg |= 0x1; + dest.writeByte(flg); + if (mIcon != null) mIcon.writeToParcel(dest, flags); + dest.writeString8(mLabel); + dest.writeString8(mLocale.toString()); + dest.writeString8(mPackageName); + } + + @Override + @DataClass.Generated.Member + public int describeContents() { return 0; } + + /** @hide */ + @SuppressWarnings({"unchecked", "RedundantCast"}) + @DataClass.Generated.Member + /* package-private */ PreapprovalDetails(@NonNull Parcel in) { + // You can override field unparcelling by defining methods like: + // static FieldType unparcelFieldName(Parcel in) { ... } + + byte flg = in.readByte(); + Bitmap icon = (flg & 0x1) == 0 ? null : Bitmap.CREATOR.createFromParcel(in); + String label = in.readString8(); + ULocale locale = new ULocale(in.readString8()); + String packageName = in.readString8(); + + this.mIcon = icon; + this.mLabel = label; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mLabel); + this.mLocale = locale; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mLocale); + this.mPackageName = packageName; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mPackageName); + + // onConstructed(); // You can define this method to get a callback + } + + @DataClass.Generated.Member + public static final @NonNull Parcelable.Creator<PreapprovalDetails> CREATOR + = new Parcelable.Creator<PreapprovalDetails>() { + @Override + public PreapprovalDetails[] newArray(int size) { + return new PreapprovalDetails[size]; + } + + @Override + public PreapprovalDetails createFromParcel(@NonNull Parcel in) { + return new PreapprovalDetails(in); + } + }; + + /** + * A builder for {@link PreapprovalDetails} + */ + @SuppressWarnings("WeakerAccess") + @DataClass.Generated.Member + public static final class Builder { + + private @Nullable Bitmap mIcon; + private @NonNull String mLabel; + private @NonNull ULocale mLocale; + private @NonNull String mPackageName; + + private long mBuilderFieldsSet = 0L; + + /** + * Creates a new Builder. + */ + public Builder() {} + + /** + * The icon representing the app to be installed. + */ + @DataClass.Generated.Member + public @NonNull Builder setIcon(@NonNull Bitmap value) { + checkNotUsed(); + mBuilderFieldsSet |= 0x1; + mIcon = value; + return this; + } + + /** + * The label representing the app to be installed. + */ + @DataClass.Generated.Member + public @NonNull Builder setLabel(@NonNull String value) { + checkNotUsed(); + mBuilderFieldsSet |= 0x2; + mLabel = value; + return this; + } + + /** + * The locale of the app label being used. + */ + @DataClass.Generated.Member + public @NonNull Builder setLocale(@NonNull ULocale value) { + checkNotUsed(); + mBuilderFieldsSet |= 0x4; + mLocale = value; + return this; + } + + /** + * The package name of the app to be installed. + */ + @DataClass.Generated.Member + public @NonNull Builder setPackageName(@NonNull String value) { + checkNotUsed(); + mBuilderFieldsSet |= 0x8; + mPackageName = value; + return this; + } + + /** Builds the instance. This builder should not be touched after calling this! */ + public @NonNull PreapprovalDetails build() { + checkNotUsed(); + mBuilderFieldsSet |= 0x10; // Mark builder used + + PreapprovalDetails o = new PreapprovalDetails( + mIcon, + mLabel, + mLocale, + mPackageName); + return o; + } + + private void checkNotUsed() { + if ((mBuilderFieldsSet & 0x10) != 0) { + throw new IllegalStateException( + "This Builder should not be reused. Use a new Builder instance instead"); + } + } + } + + @DataClass.Generated( + time = 1664257135109L, + codegenVersion = "1.0.23", + sourceFile = "frameworks/base/core/java/android/content/pm/PackageInstaller.java", + inputSignatures = "private final @android.annotation.Nullable android.graphics.Bitmap mIcon\nprivate final @android.annotation.NonNull java.lang.String mLabel\nprivate final @android.annotation.NonNull android.icu.util.ULocale mLocale\nprivate final @android.annotation.NonNull java.lang.String mPackageName\nclass PreapprovalDetails extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genHiddenConstructor=true, genBuilder=true, genToString=true)") + @Deprecated + private void __metadata() {} + + + //@formatter:on + // End of generated code + + } } |