| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Implement the following features:
- Manually pause/resume individual downloads in DownloadManager
- Manually pause/resume all downloads in notification
Based on commit ecd609e7017b8a69688bbae25c17d878ea305f19.
Change-Id: I433cdee2de8b3add0248bbb0a9d02f8da4e5bb38
|
|
|
|
|
|
|
| |
Add the current total download speed to in-progress downloads
shown in the notification pane.
Change-Id: I801dbe61c7ee59d0c1d14d5851ad6dc3a7678499
|
|\
| |
| |
| |
| |
| | |
am: ffec00b013
Change-Id: I2e27d1e54090eb38c113cd855f715017fe116c96
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Malicious callers can leak side-channel information by using
subqueries in any untrusted inputs where SQLite allows "expr" values.
This change starts using setStrictColumns() and setStrictGrammar()
on SQLiteQueryBuilder to block this class of attacks. This means we
now need to define the projection mapping of valid columns, which
consists of both the columns defined in the public API and columns
read internally by DownloadInfo.Reader.
We're okay growing sAppReadableColumnsSet like this, since we're
relying on our trusted WHERE clause to filter away any rows that
don't belong to the calling UID.
Remove the legacy Lexer code, since we're now internally relying on
the robust and well-tested SQLiteTokenizer logic.
Bug: 135270103, 135269143
Test: atest DownloadProviderTests
Test: atest CtsAppTestCases:android.app.cts.DownloadManagerTest
Change-Id: I8e595e1470df586a3d593b7851305da413e44347
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update file size in MediaStore to 0 before triggering mediascan
which should force MediaScanner to scan this file.
Also, add a clean-up job to trigger mediscan on already existing
downloads which should have been mediascanned but haven't and got
stuck in this state.
Bug: 138419471
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest DownloadManagerLegacy
Test: atest DownloadManagerApi28
Change-Id: I813086ceba6c70ca42309fcce5f9db209eac1575
(cherry picked from commit c2b0739b08e423e3c9fcde42b095cd72315ecf1f)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a media item is inserted, media_type will be
automatically updated but some of the other media
attributes will only be updated after a media scan.
Bug: 138419471
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/app/DownloadManagerLegacyTest/src/android/app/cts/DownloadManagerLegacyTest.java
Test: atest cts/tests/app/DownloadManagerApi28Test/src/android/app/cts/DownloadManagerApi28Test.java
Change-Id: If8192b31fb7da37425480e7afa53dd1304533b76
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is what DownloadProvider used to do pre-Q using
PRIORITY_FOREGROUND_APP but in Q, we added a new priority to denote
FGS but DownloadProvider was still using PRIORITY_FOREGROUND_APP which
is now considered a lower priority than FGS and some jobs are getting
preempted unnecessarily. So, update DownloadProvider to mark download
jobs with FGS priority instead of BFGS priority. This still has some
issues but at least this will be kind of reverting DownloadProvider
to its pre-Q behavior.
Bug: 135982638
Test: manual - Go through DO provisioning a few times and check admin
app can be successfully downloaded.
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/app/DownloadManagerLegacyTest/src/android/app/cts/DownloadManagerLegacyTest.java
Test: atest cts/tests/app/DownloadManagerApi28Test/src/android/app/cts/DownloadManagerApi28Test.java
Change-Id: I020e366845d768da271b860a7ace91318e67d8ae
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for background activity starts
When the DownloadManager download notification is clicked,
that broadcast is sent to an app, and the app should be able
to open activities from bg for its duration.
Bug: 135515407
Test: com.android.providers.downloads.PublicApiFunctionalTest#testNotificationClickedBroadcast
Test: manual
Change-Id: Ic1691f5bda890ceb2938ac76f4ca2a4c7e7a1160
|
|
|
|
|
|
|
|
|
|
|
| |
Using ContentResolver.delete() directly on MediaProvider doesn't work
for uris corresponding to directories. For now, delegate this
deletion to FileSystemProvider which will try deleting all entries
regex-matching the file path.
Bug: 135031305
Test: manual
Change-Id: Iac18d0fd0be05758aaf2c03971d716592d96699b
|
|
|
|
|
|
|
|
|
|
| |
Fixes: 133741222
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/app/DownloadManagerLegacyTest/src/android/app/cts/DownloadManagerLegacyTest.java
Test: atest cts/tests/app/DownloadManagerApi28Test/src/android/app/cts/DownloadManagerApi28Test.java
Change-Id: I00796e5ff8e9b30d153490f997fb7c776b600e57
|
|\
| |
| |
| | |
into qt-dev
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When MediaProvider db gets recreated, all the media content ids
get renumbered. It's possible that when DownloadProvider is
trying to delete an entry, it is holding onto a invalid mediastore
uri. So, don't use linked mediastore uris in DownloadProvider
operations. Also, revoke any prior uri grants of media content from
DownloadStorageProvider.
Bug: 132087334
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/app/DownloadManagerLegacyTest/src/android/app/cts/DownloadManagerLegacyTest.java
Test: atest cts/tests/app/DownloadManagerApi28Test/src/android/app/cts/DownloadManagerApi28Test.java
Test: atest cts/hostsidetests/appsecurity/src/android/appsecurity/cts/AppSecurityTests.java
Change-Id: If6fb479da7e937ecdfa23136811f3456f7bcd75c
|
|/
|
|
|
|
|
|
| |
Add trailing '/' to RELATIVE_PATH selection args in db queries.
Test: atest --test-mapping packages/providers/MediaProvider
Bug:132631113
Change-Id: Ib8887dbb0e49dc76df6e4292d36e8f5948f256c5
|
|
|
|
|
|
|
|
|
|
| |
Also, allow files to be renamed if they are not in pending state and
trigger a media scan when a new file is created.
Bug: 127844893
Bug: 127802924
Test: manual
Change-Id: Iec14c5d349930c5fae54ac3346ee5cf11fcda387
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow apps to use DownloadManager for downloading files into
known public dirs other than "Download" but don't include
them as part of Downloads collection.
Bug: 132136431
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/app/DownloadManagerLegacyTest/src/android/app/cts/DownloadManagerLegacyTest.java
Test: atest cts/tests/app/DownloadManagerApi28Test/src/android/app/cts/DownloadManagerApi28Test.java
Change-Id: I62d4f810c71c9231e2b6d8e276a0a1e326382e14
|
|
|
|
|
|
| |
Bug: 131693243
Test: n/a
Change-Id: Iae700a00f1bca78f823a3f8b732d86d380942828
|
|\
| |
| |
| | |
allowScanningByMediaScanner/setVisibleInDownloadsUi." into qt-dev
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These APIs javadocs have been updated earlier to indicate how they behave
on Q, now updating impl of those APIs to match with javadocs.
Bug: 131693243
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/app/DownloadManagerLegacyTest/src/android/app/cts/DownloadManagerLegacyTest.java
Test: atest cts/tests/app/DownloadManagerApi28Test/src/android/app/cts/DownloadManagerApi28Test.java
Change-Id: I8fb43806b27fefaffc510fde5424b48e3ff56d20
|
|\ \
| |/
|/|
| | |
download." into qt-dev
|
| |
| |
| |
| |
| |
| |
| | |
Fixes: 131624566
Fixes: 131610977
Test: manual
Change-Id: I771ff8a39ac977c510f1785c3cb61e859bbb0c0f
|
|/
|
|
|
|
|
|
|
|
|
|
| |
When an app is uninstalled, it's downloads in top-level
download directory will be orphaned and the rest will be
deleted.
Bug: 126064843
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Change-Id: Iad430f7ec14f306ed859a3b30db9eea29a23c19d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-- Update behavior of DownloadManager.setDestinationUri(),
DownloadManager.setDestinationInExternalPublicDir() and
DownloadManager.addCompletedDownload() based on the latest
storage re-design. Essentially, going forward these APIs
will only allow downloading files into package owned dirs
or the top-level Download dir.
-- Allow some system components to specify
MediaColumns.OWNER_PACKAGE_NAME when inserting items into
MediaProvider.
-- Don't copy DownloadManager.COLUMN_TITLE to MediaProvider.
DownloadProvider and MediaProvider have different constraints
around "title" and there isn't really a need to keep these
in sync.
-- Sanity check file download paths hinted by apps.
-- Remove sandbox related logic in DownloadProvider.
Bug: 120879208
Bug: 128630262
Bug: 130797842
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/app/DownloadManagerLegacyTest/src/android/app/cts/DownloadManagerLegacyTest.java
Test: atest cts/tests/app/DownloadManagerApi28Test/src/android/app/cts/DownloadManagerApi28Test.java
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: I8f4569f91f2c0567ff892a2107183cd11b7065a7
|
|
|
|
|
|
| |
Bug: 130427780
Test: manual
Change-Id: I3a3c98dfa769ea6e2dac1fb3d92148489c04f3a1
|
|\
| |
| |
| | |
into qt-dev
|
| |
| |
| |
| |
| |
| |
| | |
Bug: 130232195
Test: manual
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: I77cd8b38c729aaaa2df138c3bc30049dba68b693
|
|\ \ |
|
| |/
| |
| |
| |
| |
| | |
Fixes: 130759236
Test: manual
Change-Id: I8791cd3261f6a0f85cb5bc0e6d13a656fa7b1e8b
|
|/
|
|
|
|
|
|
| |
Exclude the media files when query recent files from mediastore
Change-Id: If9cb87967b4cc21a7b14f1bc10e1a2349d06eb2b
Fix: 130233533
Test: manual
|
|
|
|
|
|
| |
Bug: 130226648
Test: manual
Change-Id: Ie38de7099d01d7d676bcaacd3951bb2aea41e90d
|
|
|
|
|
|
|
|
|
| |
The provider isn't in the requesting app's sandbox, so it's unlikely
that we can canonicalize the path.
Bug: 128383017
Test: none
Change-Id: I689ebb44e4c5d7f579ec998ff7333ee9b8d46542
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bug: 126888145
Bug: 122475235
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Change-Id: I96fa73d3a18e94986043c45dc4e12a47d62eeea6
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change will ensure when the download root is queried for
the first time, DownloadStorageProvider will start observing
the existing download dirs. There is still a corner case which
is not fixed by this change that is if a new sandbox top-level
Download directory gets created while the user is using the
files app, changes in that newly created directory won't be
picked up automatically unless the user refreshes
the app.
Bug: 124524422
Test: manual
Change-Id: I8d57eeb3f630039d217c4f0c8802c1b1b80da745
|
|
|
|
|
|
| |
Bug: 124337318
Test: manual
Change-Id: Ic0c3d2de51e07923e9d04375329ca7c84cccd88f
|
|
|
|
|
|
|
|
|
| |
DownloadStorageProvider queries Files table, so it should only
read columns available in Files table.
Bug: 124504769
Test: manual
Change-Id: If56e087b30229d3079b51699388f37bef887d5b2
|
|
|
|
|
|
| |
Fixes: 123017716
Test: manual
Change-Id: Ia2f9f57051dd8b91261e35d0bdf6d1023f4c8523
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Android/sandbox dir is not available on devices
with isolated_storage flag disabled.
Bug: 123613559
Test: manual
Change-Id: Iaed734f9068c8089a34816936dc07ff0ff91ee03
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Right now, DownloadProvider only uses the COLUMN_MEDIA_SCANNED
value if it is coming from addCompletedDownload and for the rest
of the requests, it ignores the incoming COLUMN_MEDIA_SCANNED value
and always invokes mediascanner. This is not what the documentation
says. For e.g., if the caller uses DownloadManager.setDestinationUri()
API, then unless otherwise specified, the download doesn't need to be
mediascanned.
Also, since we are inserting user visible downloads to MediaProvider,
use that info to populate the COLUMN_MEDIAPROVIDER_URI column as well
and update DownloadProvider to not invoke MediaScanner.
Bug: 123440050
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: Ia667319a811d502d42a0602581bdc34ed46d88f7
|
|/
|
|
|
| |
Test: manual
Change-Id: I4f18c33cbb7521c023fabf96e78394c34301b61b
|
|
|
|
|
|
|
|
|
|
| |
Bug: 120879205
Test: manual
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest MediaProviderTests
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: Ief04f55614d34ba3c8a094fbd1ede34d4fef930b
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add new column Root.COLUMN_QUERY_ARGS in Root's cursor to get
the supported query args.
Bug: 121234248
Test: manual
Change-Id: Id1cb040927d0205dfdf5f60138a97932abb5aa19
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some of the downloads columns data in DownloadProvider could possibly stale.
When these columns gets queried from DownloadProvider, DownloadProvider
will query internally query MediaProvider and serve those values.
Bug: 120876251
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest MediaProviderTests
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: Iaae77646a5f8303aa2a73437fbf28595e7019e6f
|
|/
|
|
|
|
|
|
|
|
| |
StorageManager.hasIsolatedStorage() has already been updated to use
this, so most callers are already using this sys prop. Now, updating
remaining callers to use it as well.
Bug: 122559151
Test: manual
Change-Id: I0967a215daa9e0f2f3cbe7edfa9fa4fe7e53978b
|
|
|
|
|
|
|
| |
Bug: 122434250
Test: manual
Exempt-From-Owner-Approval: minor fix to resolve a chase list bug
Change-Id: I7a4a64ae0fa42eb0571d78a34166ac96457ce43a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Files downloaded using DownloadManager or those added to
DownloadProvider using DownloadManager.addCompletedDownload() API
are added to MediaStore Downloads collection so that apps can
query all their downloads using MediaStore collection APIs.
Bug: 120876251
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest MediaProviderTests
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: Icaff9b013bb9486651ce0b5631cc48e80cdbb4b9
|