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

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

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

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

Change-Id: I40de27b3be76edba8478f4b960829c279435b8b5
parents a571fc08 8f28e577
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;
    }

    /**