Merge "Check URI is valid for loading images" into rvc-dev am: 6acf4dfeca am: 590729e5ae
Change-Id: Iba683f0eb79d4912da6ff8930b9f3aad921c5ba2
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.systemui.media;
|
|||||||
import android.annotation.LayoutRes;
|
import android.annotation.LayoutRes;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
@@ -39,6 +40,7 @@ import android.media.session.MediaSession;
|
|||||||
import android.media.session.PlaybackState;
|
import android.media.session.PlaybackState;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.service.media.MediaBrowserService;
|
import android.service.media.MediaBrowserService;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -435,7 +437,7 @@ public class MediaControlPanel {
|
|||||||
// First look in URI fields
|
// First look in URI fields
|
||||||
for (String field : ART_URIS) {
|
for (String field : ART_URIS) {
|
||||||
String uriString = metadata.getString(field);
|
String uriString = metadata.getString(field);
|
||||||
if (uriString != null) {
|
if (!TextUtils.isEmpty(uriString)) {
|
||||||
albumArt = loadBitmapFromUri(Uri.parse(uriString));
|
albumArt = loadBitmapFromUri(Uri.parse(uriString));
|
||||||
if (albumArt != null) {
|
if (albumArt != null) {
|
||||||
Log.d(TAG, "loaded art from " + field);
|
Log.d(TAG, "loaded art from " + field);
|
||||||
@@ -463,6 +465,17 @@ public class MediaControlPanel {
|
|||||||
* @return bitmap, or null if couldn't be loaded
|
* @return bitmap, or null if couldn't be loaded
|
||||||
*/
|
*/
|
||||||
private Bitmap loadBitmapFromUri(Uri uri) {
|
private Bitmap loadBitmapFromUri(Uri uri) {
|
||||||
|
// ImageDecoder requires a scheme of the following types
|
||||||
|
if (uri.getScheme() == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)
|
||||||
|
&& !uri.getScheme().equals(ContentResolver.SCHEME_ANDROID_RESOURCE)
|
||||||
|
&& !uri.getScheme().equals(ContentResolver.SCHEME_FILE)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
ImageDecoder.Source source = ImageDecoder.createSource(mContext.getContentResolver(), uri);
|
ImageDecoder.Source source = ImageDecoder.createSource(mContext.getContentResolver(), uri);
|
||||||
try {
|
try {
|
||||||
return ImageDecoder.decodeBitmap(source);
|
return ImageDecoder.decodeBitmap(source);
|
||||||
|
|||||||
Reference in New Issue
Block a user