summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--core/java/android/provider/Downloads.java9
-rw-r--r--core/java/android/provider/MediaStore.java12
-rw-r--r--test-mock/src/android/test/mock/MockContentProvider.java9
4 files changed, 30 insertions, 1 deletions
diff --git a/api/current.txt b/api/current.txt
index f81eb54743ca..79040ad2922d 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -38047,6 +38047,7 @@ package android.provider {
}
public static abstract interface MediaStore.DownloadColumns implements android.provider.MediaStore.MediaColumns {
+ field public static final java.lang.String DESCRIPTION = "description";
field public static final java.lang.String DOWNLOAD_URI = "download_uri";
field public static final java.lang.String REFERER_URI = "referer_uri";
}
diff --git a/core/java/android/provider/Downloads.java b/core/java/android/provider/Downloads.java
index e5fd29cc09b1..b348da45e2d6 100644
--- a/core/java/android/provider/Downloads.java
+++ b/core/java/android/provider/Downloads.java
@@ -409,6 +409,15 @@ public final class Downloads {
public static final String COLUMN_MEDIAPROVIDER_URI = "mediaprovider_uri";
/**
+ * Similar to {@link #COLUMN_MEDIAPROVIDER_URI}, except this cannot be updated/queried
+ * by apps and will be the source of truth when updating/deleting download entries in
+ * MediaProvider database.
+ *
+ * <P>Type: TEXT</P>
+ */
+ public static final String COLUMN_MEDIASTORE_URI = "mediastore_uri";
+
+ /**
* The column that is used to remember whether the media scanner was invoked.
* It can take the values: null or 0(not scanned), 1(scanned), 2 (not scannable).
* <P>Type: TEXT</P>
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index f7ae28437bb2..cdbc9790c952 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -1025,6 +1025,11 @@ public final class MediaStore {
return AUTHORITY_URI.buildUpon().appendPath(volumeName).appendPath("dir").build();
}
+ /** @hide */
+ public static final Uri getContentUriForPath(String path) {
+ return getContentUri(getVolumeNameForPath(path));
+ }
+
/**
* Fields for master table for all media files.
* Table also contains MediaColumns._ID, DATA, SIZE and DATE_MODIFIED.
@@ -1131,6 +1136,13 @@ public final class MediaStore {
* Type: TEXT
*/
String REFERER_URI = "referer_uri";
+
+ /**
+ * The description of the download.
+ * <p>
+ * Type: Text
+ */
+ String DESCRIPTION = "description";
}
/**
diff --git a/test-mock/src/android/test/mock/MockContentProvider.java b/test-mock/src/android/test/mock/MockContentProvider.java
index 0ac35bc2628c..e9a5ff70a7cc 100644
--- a/test-mock/src/android/test/mock/MockContentProvider.java
+++ b/test-mock/src/android/test/mock/MockContentProvider.java
@@ -119,7 +119,7 @@ public class MockContentProvider extends ContentProvider {
@Override
public IBinder asBinder() {
- throw new UnsupportedOperationException();
+ return MockContentProvider.this.getIContentProviderBinder();
}
@Override
@@ -279,6 +279,13 @@ public class MockContentProvider extends ContentProvider {
}
/**
+ * @hide
+ */
+ public IBinder getIContentProviderBinder() {
+ throw new UnsupportedOperationException("unimplemented mock method");
+ }
+
+ /**
* Like {@link #attachInfo(Context, android.content.pm.ProviderInfo)}, but for use
* when directly instantiating the provider for testing.
*