diff options
author | Arnaud Berry <arnaudberry@google.com> | 2019-05-23 10:31:16 -0700 |
---|---|---|
committer | Arnaud Berry <arnaudberry@google.com> | 2019-05-30 17:29:49 +0000 |
commit | 13ff3bc1fa60e4094d30062663e95a7975d2b972 (patch) | |
tree | 2dd9762066912a433df8e3f0cfa15a373950302e /TestMediaApp/src | |
parent | b6d873275f754b1dbd72f02ff2295219adf5373a (diff) | |
download | tests-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.java | 85 | ||||
-rw-r--r-- | TestMediaApp/src/com/android/car/media/testmediaapp/loader/TmaMediaMetadataReader.java | 13 |
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: |