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

Commit 069fc0fa authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "Internal components still need filename access."

parents 12c167d1 aec99bf7
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -920,9 +920,9 @@ public class DownloadManager {

    private final ContentResolver mResolver;
    private final String mPackageName;
    private final int mTargetSdkVersion;

    private Uri mBaseUri = Downloads.Impl.CONTENT_URI;
    private boolean mAccessFilename;

    /**
     * @hide
@@ -930,7 +930,10 @@ public class DownloadManager {
    public DownloadManager(Context context) {
        mResolver = context.getContentResolver();
        mPackageName = context.getPackageName();
        mTargetSdkVersion = context.getApplicationInfo().targetSdkVersion;

        // Callers can access filename columns when targeting old platform
        // versions; otherwise we throw telling them it's deprecated.
        mAccessFilename = context.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N;
    }

    /**
@@ -946,6 +949,11 @@ public class DownloadManager {
        }
    }

    /** {@hide} */
    public void setAccessFilename(boolean accessFilename) {
        mAccessFilename = accessFilename;
    }

    /**
     * Enqueue a new download.  The download will start automatically once the download manager is
     * ready to execute it and connectivity is available.
@@ -1010,7 +1018,7 @@ public class DownloadManager {
        if (underlyingCursor == null) {
            return null;
        }
        return new CursorTranslator(underlyingCursor, mBaseUri, mTargetSdkVersion);
        return new CursorTranslator(underlyingCursor, mBaseUri, mAccessFilename);
    }

    /**
@@ -1279,12 +1287,12 @@ public class DownloadManager {
     */
    private static class CursorTranslator extends CursorWrapper {
        private final Uri mBaseUri;
        private final int mTargetSdkVersion;
        private final boolean mAccessFilename;

        public CursorTranslator(Cursor cursor, Uri baseUri, int targetSdkVersion) {
        public CursorTranslator(Cursor cursor, Uri baseUri, boolean accessFilename) {
            super(cursor);
            mBaseUri = baseUri;
            mTargetSdkVersion = targetSdkVersion;
            mAccessFilename = accessFilename;
        }

        @Override
@@ -1310,7 +1318,7 @@ public class DownloadManager {
                case COLUMN_LOCAL_URI:
                    return getLocalUri();
                case COLUMN_LOCAL_FILENAME:
                    if (mTargetSdkVersion >= Build.VERSION_CODES.N) {
                    if (!mAccessFilename) {
                        throw new IllegalArgumentException(
                                "COLUMN_LOCAL_FILENAME is deprecated;"
                                        + " use ContentResolver.openFileDescriptor() instead");