summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers
diff options
context:
space:
mode:
authorlihai <lihai@codeaurora.org>2015-11-25 17:16:17 +0800
committerLinux Build Service Account <lnxbuild@localhost>2016-08-24 08:08:15 -0600
commiteb71d264b945af99b7750b9baf8262199f44a6a8 (patch)
tree8f2d58abd2ace6f70b1ad03274ec89fc15794efb /src/com/android/providers
parentc2bd3084efad9f5f421e4224914d883f212901b3 (diff)
downloadandroid_packages_providers_MediaProvider-eb71d264b945af99b7750b9baf8262199f44a6a8.tar.gz
android_packages_providers_MediaProvider-eb71d264b945af99b7750b9baf8262199f44a6a8.tar.bz2
android_packages_providers_MediaProvider-eb71d264b945af99b7750b9baf8262199f44a6a8.zip
MediaProvider: support streaming bookmark
Add bookmarks table and bookmark URI. Change-Id: I108ce3eacc181f60343c7cd6b3ec5688c0b8c78e CRs-Fixed: 1031467
Diffstat (limited to 'src/com/android/providers')
-rw-r--r--src/com/android/providers/media/MediaProvider.java38
1 files changed, 37 insertions, 1 deletions
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 388997fc..89575098 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -1888,6 +1888,18 @@ public class MediaProvider extends ContentProvider {
+ " AND datetaken<date_modified*5;");
}
+ if (fromVersion < 701) {
+ db.execSQL("CREATE TABLE IF NOT EXISTS bookmarks (" +
+ " _id INTEGER PRIMARY KEY," +
+ " _data TEXT," +
+ " _display_name TEXT," +
+ " position INTEGER," +
+ " date_added INTEGER," +
+ " mime_type TEXT," +
+ " media_type TEXT" +
+ ");");
+ }
+
if (fromVersion < 800) {
// Delete albums and artists, then clear the modification time on songs, which
// will cause the media scanner to rescan everything, rebuilding the artist and
@@ -2672,7 +2684,13 @@ public class MediaProvider extends ContentProvider {
case MTP_OBJECT_REFERENCES:
int handle = Integer.parseInt(uri.getPathSegments().get(2));
return getObjectReferences(helper, db, handle);
-
+ case MEDIA_BOOKMARK:
+ qb.setTables("bookmarks");
+ break;
+ case MEDIA_BOOKMARK_ID:
+ qb.setTables("bookmarks");
+ qb.appendWhere("_id = " + uri.getPathSegments().get(2));
+ break;
default:
throw new IllegalStateException("Unknown URL: " + uri.toString());
}
@@ -3666,6 +3684,13 @@ public class MediaProvider extends ContentProvider {
}
break;
+ case MEDIA_BOOKMARK:
+ rowId = db.insert("bookmarks", "mime_type", initialValues);
+ if (rowId > 0) {
+ newUri = ContentUris.withAppendedId(uri, rowId);
+ }
+ break;
+
default:
throw new UnsupportedOperationException("Invalid URI " + uri);
}
@@ -3998,6 +4023,13 @@ public class MediaProvider extends ContentProvider {
out.table = "files";
break;
+ case MEDIA_BOOKMARK_ID:
+ where = "_id=" + uri.getPathSegments().get(2);
+ // fall through
+ case MEDIA_BOOKMARK:
+ out.table = "bookmarks";
+ break;
+
default:
throw new UnsupportedOperationException(
"Unknown or unsupported URL: " + uri.toString());
@@ -5631,6 +5663,8 @@ public class MediaProvider extends ContentProvider {
// UsbReceiver calls insert() and delete() with this URI to tell us
// when MTP is connected and disconnected
private static final int MTP_CONNECTED = 705;
+ private static final int MEDIA_BOOKMARK = 1101;
+ private static final int MEDIA_BOOKMARK_ID = 1102;
private static final UriMatcher URI_MATCHER =
new UriMatcher(UriMatcher.NO_MATCH);
@@ -5729,6 +5763,8 @@ public class MediaProvider extends ContentProvider {
// used by the music app's search activity
URI_MATCHER.addURI("media", "*/audio/search/fancy", AUDIO_SEARCH_FANCY);
URI_MATCHER.addURI("media", "*/audio/search/fancy/*", AUDIO_SEARCH_FANCY);
+ URI_MATCHER.addURI("media", "*/bookmark", MEDIA_BOOKMARK);
+ URI_MATCHER.addURI("media", "*/bookmark/#", MEDIA_BOOKMARK_ID);
}
private static String getVolumeName(Uri uri) {