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

Commit 140bfcc6 authored by Sahana Rao's avatar Sahana Rao Committed by Automerger Merge Worker
Browse files

Merge "Change hasRequestRawExternalStorageAccess() to return integer" into...

Merge "Change hasRequestRawExternalStorageAccess() to return integer" into sc-dev am: 8f28e577 am: c9e338ed

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14327548

Change-Id: If359144e71550fea3be16dab095e3e2971bbab48
parents c4a83f8b c9e338ed
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -11920,6 +11920,7 @@ package android.content.pm {
    method public int getGwpAsanMode();
    method public int getMemtagMode();
    method public int getNativeHeapZeroInitialized();
    method public int getRequestRawExternalStorageAccess();
    method public boolean isProfileable();
    method public boolean isProfileableByShell();
    method public boolean isResourceOverlay();
@@ -11975,6 +11976,9 @@ package android.content.pm {
    field public static final int MEMTAG_DEFAULT = -1; // 0xffffffff
    field public static final int MEMTAG_OFF = 0; // 0x0
    field public static final int MEMTAG_SYNC = 2; // 0x2
    field public static final int RAW_EXTERNAL_STORAGE_ACCESS_DEFAULT = 0; // 0x0
    field public static final int RAW_EXTERNAL_STORAGE_ACCESS_NOT_REQUESTED = 2; // 0x2
    field public static final int RAW_EXTERNAL_STORAGE_ACCESS_REQUESTED = 1; // 0x1
    field public static final int ZEROINIT_DEFAULT = -1; // 0xffffffff
    field public static final int ZEROINIT_DISABLED = 0; // 0x0
    field public static final int ZEROINIT_ENABLED = 1; // 0x1
+0 −1
Original line number Diff line number Diff line
@@ -2520,7 +2520,6 @@ package android.content.om {
package android.content.pm {
  public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
    method @Nullable public Boolean hasRequestRawExternalStorageAccess();
    method public boolean isEncryptionAware();
    method public boolean isInstantApp();
    method public boolean isOem();
+47 −12
Original line number Diff line number Diff line
@@ -2140,23 +2140,58 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        return (privateFlags & PRIVATE_FLAG_REQUEST_LEGACY_EXTERNAL_STORAGE) != 0;
    }

    /**
     * Use default value for
     * {@link android.R.styleable#AndroidManifestApplication_requestRawExternalStorageAccess}.
     */
    public static final int RAW_EXTERNAL_STORAGE_ACCESS_DEFAULT = 0;

    /**
     * Raw external storage was requested by this app.
     */
    public static final int RAW_EXTERNAL_STORAGE_ACCESS_REQUESTED = 1;

    /**
     * Raw external storage was not requested by this app.
     */
    public static final int RAW_EXTERNAL_STORAGE_ACCESS_NOT_REQUESTED = 2;

    /**
     * These constants need to match the value of
     * {@link android.R.styleable#AndroidManifestApplication_requestRawExternalStorageAccess}.
     * in application manifest.
     * @hide
     */
    @IntDef(prefix = {"RAW_EXTERNAL_STORAGE_"}, value = {
            RAW_EXTERNAL_STORAGE_ACCESS_DEFAULT,
            RAW_EXTERNAL_STORAGE_ACCESS_REQUESTED,
            RAW_EXTERNAL_STORAGE_ACCESS_NOT_REQUESTED,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface RawExternalStorage {}

    /**
     * @return
     * <ul>
     * <li>{@code true} if this app requested raw external storage access
     * <li>{@code false} if this app requests to disable raw external storage access.
     * <li>{@code null} if the app didn't specify
     * <li>{@link ApplicationInfo#RAW_EXTERNAL_STORAGE_ACCESS_DEFAULT} if app didn't specify
     * {@link android.R.styleable#AndroidManifestApplication_requestRawExternalStorageAccess}
     * in its manifest file.
     * </ul>
     *
     * @hide
     * attribute in the manifest.
     * <li>{@link ApplicationInfo#RAW_EXTERNAL_STORAGE_ACCESS_REQUESTED} if this app requested raw
     * external storage access.
     * <li>{@link ApplicationInfo#RAW_EXTERNAL_STORAGE_ACCESS_NOT_REQUESTED} if this app requests to
     * disable raw external storage access
     * </ul
     * <p>
     * Note that this doesn't give any hints on whether the app gets raw external storage access or
     * not. Also, apps may get raw external storage access by default in some cases, see
     * {@link android.R.styleable#AndroidManifestApplication_requestRawExternalStorageAccess}.
     */
    @SuppressWarnings("AutoBoxing")
    @SystemApi
    @Nullable
    public Boolean hasRequestRawExternalStorageAccess() {
        return requestRawExternalStorageAccess;
    public @RawExternalStorage int getRequestRawExternalStorageAccess() {
        if (requestRawExternalStorageAccess == null) {
            return RAW_EXTERNAL_STORAGE_ACCESS_DEFAULT;
        }
        return requestRawExternalStorageAccess ? RAW_EXTERNAL_STORAGE_ACCESS_REQUESTED
                : RAW_EXTERNAL_STORAGE_ACCESS_NOT_REQUESTED;
    }

    /**