summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2018-08-03 19:20:51 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-08-03 19:20:51 +0000
commit1bfa0cebdc5d2701c881ec04a3d8063852df1f21 (patch)
tree2d2c42cc22393a02c8494e3c77c275070b863cec
parentaeab10e819bbc4e34d85df4a815a45e6c9bbbc4b (diff)
parentf1cced10c0df8e892e78a81ba55db9b6bacbd02d (diff)
downloadDownloadProvider-android-8.1.0_r45.tar.gz
Merge cherrypicks of [4691111, 4689862, 4690575, 4690576, 4690577, 4690578, 4689866, 4689868, 4689869, 4689870, 4691132, 4689456, 4689963, 4691133, 4691134, 4691156, 4691157, 4691159, 4691161, 4690581, 4689964, 4689460, 4691112, 4690582, 4690583, 4691165, 4691166, 4691167, 4691168, 4691169, 4691170, 4691211, 4691212, 4691213, 4691214, 4691215, 4691216, 4691217, 4691218, 4691219, 4691232, 4691233, 4691234, 4691235, 4691236, 4691237, 4691238, 4691239, 4691240, 4691241, 4691243, 4691245, 4691247, 4691249, 4691250, 4691291, 4691292, 4691293, 4691294, 4691295, 4691296, 4691255, 4689476, 4689477, 4689478, 4691223, 4691224, 4691136, 4689479, 4689480, 4691137, 4691225, 4691226, 4691227, 4691371, 4691228, 4691328, 4689967, 4691138, 4691139, 4691140, 4691433, 4689968, 4689969, 4691395, 4691230, 4691297, 4691298, 4691299, 4691300, 4691396, 4691397, 4691398, 4691399, 4691400, 4691401, 4691402, 4691403, 4691404, 4691405, 4691406, 4691407, 4691408, 4691409, 4691410, 4691471, 4691472, 4691473, 4691474, 4691475, 4691476, 4691477, 4691478, 4691479, 4691480, 4691481, 4691482, 4691483, 4691484, 4691485, 4691486, 4691487, 4691488, 4691143, 4691144, 4691511, 4691113, 4689482, 4691533, 4691145, 4691146, 4691147, 4691148, 4691536] into sparse-4732991-L01200000196794104android-8.1.0_r45oreo-m4-s12-release
Change-Id: I19960fed681ebb71c92e0a463c8d481c69b0ffdc
-rw-r--r--src/com/android/providers/downloads/DownloadProvider.java14
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java2
-rw-r--r--src/com/android/providers/downloads/RealSystemFacade.java6
-rw-r--r--src/com/android/providers/downloads/SystemFacade.java2
-rw-r--r--tests/src/com/android/providers/downloads/FakeSystemFacade.java5
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;
}