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

Commit cb363193 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by android-build-merger
Browse files

Merge "Don't use linked mediastore uris in DownloadProvider operations." into qt-dev

am: 4344e7c7

Change-Id: Iaf52026e9d67f97b94cc0426a460f94b5fa358ec
parents e6e8116b 4344e7c7
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -31,11 +31,12 @@ interface IUriGrantsManager {
            in Uri uri, int mode, int sourceUserId, int targetUserId);
    /**
     * Gets the URI permissions granted to an arbitrary package (or all packages if null)
     * NOTE: this is different from getPersistedUriPermissions(), which returns the URIs the package
     * NOTE: this is different from getUriPermissions(), which returns the URIs the package
     * granted to another packages (instead of those granted to it).
     */
    ParceledListSlice getGrantedUriPermissions(in String packageName, int userId);
    /** Clears the URI permissions granted to an arbitrary package. */
    void clearGrantedUriPermissions(in String packageName, int userId);
    ParceledListSlice getPersistedUriPermissions(in String packageName, boolean incoming);
    ParceledListSlice getUriPermissions(in String packageName, boolean incoming,
            boolean persistedOnly);
}
+14 −4
Original line number Diff line number Diff line
@@ -2482,8 +2482,8 @@ public abstract class ContentResolver implements ContentInterface {
     */
    public @NonNull List<UriPermission> getPersistedUriPermissions() {
        try {
            return UriGrantsManager.getService()
                    .getPersistedUriPermissions(mPackageName, true).getList();
            return UriGrantsManager.getService().getUriPermissions(
                    mPackageName, true /* incoming */, true /* persistedOnly */).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -2498,8 +2498,18 @@ public abstract class ContentResolver implements ContentInterface {
     */
    public @NonNull List<UriPermission> getOutgoingPersistedUriPermissions() {
        try {
            return UriGrantsManager.getService()
                    .getPersistedUriPermissions(mPackageName, false).getList();
            return UriGrantsManager.getService().getUriPermissions(
                    mPackageName, false /* incoming */, true /* persistedOnly */).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    /** @hide */
    public @NonNull List<UriPermission> getOutgoingUriPermissions() {
        try {
            return UriGrantsManager.getService().getUriPermissions(
                    mPackageName, false /* incoming */, false /* persistedOnly */).getList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+2 −0
Original line number Diff line number Diff line
@@ -849,6 +849,8 @@ public final class Downloads {
    public static final String CALL_MEDIASTORE_DOWNLOADS_DELETED = "mediastore_downloads_deleted";
    /** @hide */
    public static final String CALL_CREATE_EXTERNAL_PUBLIC_DIR = "create_external_public_dir";
    /** @hide */
    public static final String CALL_REVOKE_MEDIASTORE_URI_PERMS = "revoke_mediastore_uri_perms";

    /** @hide */
    public static final String EXTRA_IDS = "ids";
+1 −1
Original line number Diff line number Diff line
@@ -13532,7 +13532,7 @@ HSPLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissionsInte
HSPLcom/android/server/uri/UriGrantsManagerService;->checkUriPermission(Lcom/android/server/uri/GrantUri;II)Z
HSPLcom/android/server/uri/UriGrantsManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
HSPLcom/android/server/uri/UriGrantsManagerService;->findOrCreateUriPermission(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
PLcom/android/server/uri/UriGrantsManagerService;->getPersistedUriPermissions(Ljava/lang/String;Z)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/uri/UriGrantsManagerService;->getPersistedUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice;
HSPLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
HSPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;I)V
HSPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;Lcom/android/server/uri/UriPermissionOwner;I)V
+7 −5
Original line number Diff line number Diff line
@@ -211,9 +211,9 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
    }

    @Override
    public ParceledListSlice<android.content.UriPermission> getPersistedUriPermissions(
            String packageName, boolean incoming) {
        enforceNotIsolatedCaller("getPersistedUriPermissions");
    public ParceledListSlice<android.content.UriPermission> getUriPermissions(
            String packageName, boolean incoming, boolean persistedOnly) {
        enforceNotIsolatedCaller("getUriPermissions");
        Preconditions.checkNotNull(packageName, "packageName");

        final int callingUid = Binder.getCallingUid();
@@ -240,7 +240,8 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
                } else {
                    for (int j = 0; j < perms.size(); j++) {
                        final UriPermission perm = perms.valueAt(j);
                        if (packageName.equals(perm.targetPkg) && perm.persistedModeFlags != 0) {
                        if (packageName.equals(perm.targetPkg)
                                && (!persistedOnly || perm.persistedModeFlags != 0)) {
                            result.add(perm.buildPersistedPublicApiObject());
                        }
                    }
@@ -252,7 +253,8 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
                            mGrantedUriPermissions.valueAt(i);
                    for (int j = 0; j < perms.size(); j++) {
                        final UriPermission perm = perms.valueAt(j);
                        if (packageName.equals(perm.sourcePkg) && perm.persistedModeFlags != 0) {
                        if (packageName.equals(perm.sourcePkg)
                                && (!persistedOnly || perm.persistedModeFlags != 0)) {
                            result.add(perm.buildPersistedPublicApiObject());
                        }
                    }