aboutsummaryrefslogtreecommitdiff
path: root/TestMediaApp/src
diff options
context:
space:
mode:
authorArnaud Berry <arnaudberry@google.com>2019-05-23 10:31:16 -0700
committerArnaud Berry <arnaudberry@google.com>2019-05-30 17:29:49 +0000
commit13ff3bc1fa60e4094d30062663e95a7975d2b972 (patch)
tree2dd9762066912a433df8e3f0cfa15a373950302e /TestMediaApp/src
parentb6d873275f754b1dbd72f02ff2295219adf5373a (diff)
downloadtests-13ff3bc1fa60e4094d30062663e95a7975d2b972.tar.gz
Add artwork support
Added various resolution bitmaps and media items referencing them. Also added missing launcher icons. I took the photos myself so there's no previous copyright on them. Test: manual Change-Id: I4fe550bb2c55e246683e3242d776fe514059b891
Diffstat (limited to 'TestMediaApp/src')
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java85
-rw-r--r--TestMediaApp/src/com/android/car/media/testmediaapp/loader/TmaMediaMetadataReader.java13
2 files changed, 97 insertions, 1 deletions
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java
new file mode 100644
index 0000000..ca72fde
--- /dev/null
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/TmaAssetProvider.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2019, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.media.testmediaapp;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.res.AssetFileDescriptor;
+import android.database.Cursor;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+public class TmaAssetProvider extends ContentProvider {
+
+ private static final String TAG = "TmaAssetProvider";
+
+ private static final String URI_PREFIX = "content://com.android.car.media.testmediaapp.assets/";
+
+
+ public static String buildUriString(String localAssetFilePath) {
+ return URI_PREFIX + localAssetFilePath;
+ }
+
+ @Override
+ public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException {
+ String file_path = uri.getPath();
+ if (TextUtils.isEmpty(file_path)) throw new FileNotFoundException();
+ try {
+ if (file_path.startsWith("/")) {
+ file_path = file_path.substring(1);
+ }
+ return getContext().getAssets().openFd(file_path);
+ } catch (IOException e) {
+ Log.e(TAG, "openAssetFile failed: " + e);
+ return null;
+ }
+ }
+
+ @Override
+ public boolean onCreate() {
+ return false;
+ }
+
+ @Override
+ public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+ String sortOrder) {
+ return null;
+ }
+
+ @Override
+ public String getType(Uri uri) {
+ return null;
+ }
+
+ @Override
+ public Uri insert(Uri uri, ContentValues values) {
+ return null;
+ }
+
+ @Override
+ public int delete(Uri uri, String selection, String[] selectionArgs) {
+ return 0;
+ }
+
+ @Override
+ public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+ return 0;
+ }
+}
diff --git a/TestMediaApp/src/com/android/car/media/testmediaapp/loader/TmaMediaMetadataReader.java b/TestMediaApp/src/com/android/car/media/testmediaapp/loader/TmaMediaMetadataReader.java
index 3039310..95f8f89 100644
--- a/TestMediaApp/src/com/android/car/media/testmediaapp/loader/TmaMediaMetadataReader.java
+++ b/TestMediaApp/src/com/android/car/media/testmediaapp/loader/TmaMediaMetadataReader.java
@@ -53,10 +53,14 @@ import static com.android.car.media.testmediaapp.loader.TmaLoaderUtils.enumNames
import android.support.v4.media.MediaMetadataCompat;
import android.util.Log;
+import com.android.car.media.testmediaapp.TmaAssetProvider;
+
import org.json.JSONException;
import org.json.JSONObject;
+import java.util.EnumSet;
import java.util.Map;
+import java.util.Set;
class TmaMediaMetadataReader {
@@ -125,9 +129,12 @@ class TmaMediaMetadataReader {
}
private final Map<String, MetadataKey> mMetadataKeys;
+ private final Set<MetadataKey> mUriKeys;
private TmaMediaMetadataReader() {
mMetadataKeys = enumNamesToValues(MetadataKey.values());
+ mUriKeys = EnumSet.of(MetadataKey.ART_URI, MetadataKey.ALBUM_ART_URI,
+ MetadataKey.DISPLAY_ICON_URI, MetadataKey.MEDIA_URI);
}
@@ -141,7 +148,11 @@ class TmaMediaMetadataReader {
builder.putLong(key.mLongName, object.getLong(jsonKey));
break;
case TEXT:
- builder.putString(key.mLongName, object.getString(jsonKey));
+ String value = object.getString(jsonKey);
+ if (mUriKeys.contains(key)) {
+ value = TmaAssetProvider.buildUriString(value);
+ }
+ builder.putString(key.mLongName, value);
break;
case BITMAP:
case RATING: