diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2018-08-10 20:32:36 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-08-10 20:32:36 +0000 |
commit | acb664cb6749ca5e019ec7bd71dc6f18d006e5b7 (patch) | |
tree | 2d2c42cc22393a02c8494e3c77c275070b863cec | |
parent | 1e911e09f1698e9ee459676e8422412157ca63bd (diff) | |
parent | 544294737dfc3b585465302f1f784a311659a37c (diff) | |
download | android_packages_providers_DownloadProvider-acb664cb6749ca5e019ec7bd71dc6f18d006e5b7.tar.gz android_packages_providers_DownloadProvider-acb664cb6749ca5e019ec7bd71dc6f18d006e5b7.tar.bz2 android_packages_providers_DownloadProvider-acb664cb6749ca5e019ec7bd71dc6f18d006e5b7.zip |
Merge cherrypicks of [4741663, 4741664, 4741665, 4741666, 4743080, 4743081, 4743082, 4743083, 4741262, 4741263, 4741264, 4741265, 4741266, 4741667, 4743084, 4741242, 4741243, 4741741, 4741742, 4741743, 4741744, 4741822, 4743085, 4741668, 4741338, 4743055, 4743056, 4743070, 4743073, 4743075, 4743076, 4743078, 4743079, 4743161, 4743162, 4743164, 4743165, 4743167, 4743168, 4743169, 4743170, 4741681, 4741682, 4741683, 4741684, 4741685, 4741686, 4741687, 4741688, 4741689, 4741690, 4741691, 4741692, 4741693, 4741694, 4741695, 4741696, 4741697, 4741698, 4741699, 4743240, 4743241, 4743242, 4743243, 4741745, 4741823, 4741824, 4741825, 4741267, 4741268, 4743244, 4743280, 4743281, 4743224, 4743203, 4743204, 4743205, 4741746, 4741747, 4743245, 4741826, 4741827, 4741828, 4741829, 4741748, 4741749, 4741750, 4743233, 4743282, 4741244, 4741245, 4741246, 4741247, 4743206, 4743207, 4743208, 4743209, 4743210, 4743211, 4743212, 4743213, 4743214, 4743215, 4743216, 4743217, 4743218, 4743219, 4743360, 4743361, 4743362, 4743363, 4743364, 4743365, 4743366, 4743367, 4743368, 4743369, 4743370, 4743371, 4743372, 4743373, 4743374, 4743375, 4743376, 4743377, 4743283, 4743284, 4741830, 4742501, 4743246, 4743086, 4743087, 4743378, 4743379, 4741751] into sparse-4749909-L04200000199131547
Change-Id: If7e18904479001f2e2b7e674e9b7ccc469c8af0a
5 files changed, 16 insertions, 13 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index e177da17..db7db65a 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -105,11 +105,6 @@ public final class DownloadProvider extends ContentProvider { private static final int ALL_DOWNLOADS_ID = 4; /** URI matcher constant for the URI of a download's request headers */ private static final int REQUEST_HEADERS_URI = 5; - /** URI matcher constant for the public URI returned by - * {@link DownloadManager#getUriForDownloadedFile(long)} if the given downloaded file - * is publicly accessible. - */ - private static final int PUBLIC_DOWNLOAD_ID = 6; static { sURIMatcher.addURI("downloads", "my_downloads", MY_DOWNLOADS); sURIMatcher.addURI("downloads", "my_downloads/#", MY_DOWNLOADS_ID); @@ -127,9 +122,6 @@ public final class DownloadProvider extends ContentProvider { sURIMatcher.addURI("downloads", "download/#/" + Downloads.Impl.RequestHeaders.URI_SEGMENT, REQUEST_HEADERS_URI); - sURIMatcher.addURI("downloads", - Downloads.Impl.PUBLICLY_ACCESSIBLE_DOWNLOADS_URI_SEGMENT + "/#", - PUBLIC_DOWNLOAD_ID); } /** Different base URIs that could be used to access an individual download */ @@ -526,8 +518,7 @@ public final class DownloadProvider extends ContentProvider { return DOWNLOAD_LIST_TYPE; } case MY_DOWNLOADS_ID: - case ALL_DOWNLOADS_ID: - case PUBLIC_DOWNLOAD_ID: { + case ALL_DOWNLOADS_ID: { // return the mimetype of this id from the database final String id = getDownloadIdFromUri(uri); final SQLiteDatabase db = mOpenHelper.getReadableDatabase(); @@ -1234,8 +1225,7 @@ public final class DownloadProvider extends ContentProvider { int uriMatch) { SqlSelection selection = new SqlSelection(); selection.appendClause(where, whereArgs); - if (uriMatch == MY_DOWNLOADS_ID || uriMatch == ALL_DOWNLOADS_ID || - uriMatch == PUBLIC_DOWNLOAD_ID) { + if (uriMatch == MY_DOWNLOADS_ID || uriMatch == ALL_DOWNLOADS_ID) { selection.appendClause(Downloads.Impl._ID + " = ?", getDownloadIdFromUri(uri)); } if ((uriMatch == MY_DOWNLOADS || uriMatch == MY_DOWNLOADS_ID) diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index 9c920053..d3ec568c 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -725,7 +725,7 @@ public class DownloadThread extends Thread { if (info.isRoaming() && !mInfo.isRoamingAllowed()) { throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is roaming"); } - if (mSystemFacade.isNetworkMetered(mNetwork) + if (mSystemFacade.isActiveNetworkMeteredForUid(mInfo.mUid) && !mInfo.isMeteredAllowed(mInfoDelta.mTotalBytes)) { throw new StopRequestException(STATUS_WAITING_FOR_NETWORK, "Network is metered"); } diff --git a/src/com/android/providers/downloads/RealSystemFacade.java b/src/com/android/providers/downloads/RealSystemFacade.java index 1c2ba581..2d9b3a30 100644 --- a/src/com/android/providers/downloads/RealSystemFacade.java +++ b/src/com/android/providers/downloads/RealSystemFacade.java @@ -68,6 +68,12 @@ class RealSystemFacade implements SystemFacade { } @Override + public boolean isActiveNetworkMeteredForUid(int uid) { + return mContext.getSystemService(ConnectivityManager.class) + .isActiveNetworkMeteredForUid(uid); + } + + @Override public long getMaxBytesOverMobile() { final Long value = DownloadManager.getMaxBytesOverMobile(mContext); return (value == null) ? Long.MAX_VALUE : value; diff --git a/src/com/android/providers/downloads/SystemFacade.java b/src/com/android/providers/downloads/SystemFacade.java index 53d14041..dec0cb28 100644 --- a/src/com/android/providers/downloads/SystemFacade.java +++ b/src/com/android/providers/downloads/SystemFacade.java @@ -38,6 +38,8 @@ interface SystemFacade { public boolean isNetworkMetered(Network network); + public boolean isActiveNetworkMeteredForUid(int uid); + /** * @return maximum size, in bytes, of downloads that may go over a mobile connection; or null if * there's no limit diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java index de483c7f..aa7b8af4 100644 --- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java +++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java @@ -102,6 +102,11 @@ public class FakeSystemFacade implements SystemFacade { } @Override + public boolean isActiveNetworkMeteredForUid(int uid) { + return mIsMetered; + } + + @Override public long getMaxBytesOverMobile() { return mMaxBytesOverMobile; } |