288 lines
12 KiB
Java
288 lines
12 KiB
Java
package android.support.v4.media;
|
|
|
|
import android.graphics.Bitmap;
|
|
import android.net.Uri;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.support.v4.media.MediaDescriptionCompat;
|
|
import android.support.v4.media.session.MediaSessionCompat;
|
|
import android.text.TextUtils;
|
|
import android.util.Log;
|
|
import androidx.collection.ArrayMap;
|
|
import java.util.Set;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class MediaMetadataCompat implements Parcelable {
|
|
public static final Parcelable.Creator<MediaMetadataCompat> CREATOR;
|
|
static final ArrayMap<String, Integer> METADATA_KEYS_TYPE = new ArrayMap<>();
|
|
public static final String METADATA_KEY_ADVERTISEMENT = "android.media.metadata.ADVERTISEMENT";
|
|
public static final String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
|
|
public static final String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
|
|
public static final String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
|
|
public static final String METADATA_KEY_ALBUM_ART_URI = "android.media.metadata.ALBUM_ART_URI";
|
|
public static final String METADATA_KEY_ART = "android.media.metadata.ART";
|
|
public static final String METADATA_KEY_ARTIST = "android.media.metadata.ARTIST";
|
|
public static final String METADATA_KEY_ART_URI = "android.media.metadata.ART_URI";
|
|
public static final String METADATA_KEY_AUTHOR = "android.media.metadata.AUTHOR";
|
|
public static final String METADATA_KEY_BT_FOLDER_TYPE = "android.media.metadata.BT_FOLDER_TYPE";
|
|
public static final String METADATA_KEY_COMPILATION = "android.media.metadata.COMPILATION";
|
|
public static final String METADATA_KEY_COMPOSER = "android.media.metadata.COMPOSER";
|
|
public static final String METADATA_KEY_DATE = "android.media.metadata.DATE";
|
|
public static final String METADATA_KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
|
|
public static final String METADATA_KEY_DISPLAY_DESCRIPTION = "android.media.metadata.DISPLAY_DESCRIPTION";
|
|
public static final String METADATA_KEY_DISPLAY_ICON = "android.media.metadata.DISPLAY_ICON";
|
|
public static final String METADATA_KEY_DISPLAY_ICON_URI = "android.media.metadata.DISPLAY_ICON_URI";
|
|
public static final String METADATA_KEY_DISPLAY_SUBTITLE = "android.media.metadata.DISPLAY_SUBTITLE";
|
|
public static final String METADATA_KEY_DISPLAY_TITLE = "android.media.metadata.DISPLAY_TITLE";
|
|
public static final String METADATA_KEY_DOWNLOAD_STATUS = "android.media.metadata.DOWNLOAD_STATUS";
|
|
public static final String METADATA_KEY_DURATION = "android.media.metadata.DURATION";
|
|
public static final String METADATA_KEY_GENRE = "android.media.metadata.GENRE";
|
|
public static final String METADATA_KEY_MEDIA_ID = "android.media.metadata.MEDIA_ID";
|
|
public static final String METADATA_KEY_MEDIA_URI = "android.media.metadata.MEDIA_URI";
|
|
public static final String METADATA_KEY_NUM_TRACKS = "android.media.metadata.NUM_TRACKS";
|
|
public static final String METADATA_KEY_RATING = "android.media.metadata.RATING";
|
|
public static final String METADATA_KEY_TITLE = "android.media.metadata.TITLE";
|
|
public static final String METADATA_KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
|
|
public static final String METADATA_KEY_USER_RATING = "android.media.metadata.USER_RATING";
|
|
public static final String METADATA_KEY_WRITER = "android.media.metadata.WRITER";
|
|
public static final String METADATA_KEY_YEAR = "android.media.metadata.YEAR";
|
|
static final int METADATA_TYPE_BITMAP = 2;
|
|
static final int METADATA_TYPE_LONG = 0;
|
|
static final int METADATA_TYPE_RATING = 3;
|
|
static final int METADATA_TYPE_TEXT = 1;
|
|
private static final String[] PREFERRED_BITMAP_ORDER;
|
|
private static final String[] PREFERRED_DESCRIPTION_ORDER;
|
|
private static final String[] PREFERRED_URI_ORDER;
|
|
private static final String TAG = "MediaMetadata";
|
|
final Bundle mBundle;
|
|
private MediaDescriptionCompat mDescription;
|
|
private Object mMetadataObj;
|
|
|
|
static {
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_TITLE, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ARTIST, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DURATION, 0);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ALBUM, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_AUTHOR, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_WRITER, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_COMPOSER, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_COMPILATION, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DATE, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_YEAR, 0);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_GENRE, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_TRACK_NUMBER, 0);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_NUM_TRACKS, 0);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DISC_NUMBER, 0);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ALBUM_ARTIST, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ART, 2);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ART_URI, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ALBUM_ART, 2);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ALBUM_ART_URI, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_USER_RATING, 3);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_RATING, 3);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DISPLAY_TITLE, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DISPLAY_SUBTITLE, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DISPLAY_DESCRIPTION, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DISPLAY_ICON, 2);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DISPLAY_ICON_URI, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_MEDIA_ID, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_BT_FOLDER_TYPE, 0);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_MEDIA_URI, 1);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_ADVERTISEMENT, 0);
|
|
METADATA_KEYS_TYPE.put(METADATA_KEY_DOWNLOAD_STATUS, 0);
|
|
PREFERRED_DESCRIPTION_ORDER = new String[]{METADATA_KEY_TITLE, METADATA_KEY_ARTIST, METADATA_KEY_ALBUM, METADATA_KEY_ALBUM_ARTIST, METADATA_KEY_WRITER, METADATA_KEY_AUTHOR, METADATA_KEY_COMPOSER};
|
|
PREFERRED_BITMAP_ORDER = new String[]{METADATA_KEY_DISPLAY_ICON, METADATA_KEY_ART, METADATA_KEY_ALBUM_ART};
|
|
PREFERRED_URI_ORDER = new String[]{METADATA_KEY_DISPLAY_ICON_URI, METADATA_KEY_ART_URI, METADATA_KEY_ALBUM_ART_URI};
|
|
CREATOR = new Parcelable.Creator<MediaMetadataCompat>() { // from class: android.support.v4.media.MediaMetadataCompat.1
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // android.os.Parcelable.Creator
|
|
public MediaMetadataCompat createFromParcel(Parcel parcel) {
|
|
return new MediaMetadataCompat(parcel);
|
|
}
|
|
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // android.os.Parcelable.Creator
|
|
public MediaMetadataCompat[] newArray(int i) {
|
|
return new MediaMetadataCompat[i];
|
|
}
|
|
};
|
|
}
|
|
|
|
MediaMetadataCompat(Bundle bundle) {
|
|
this.mBundle = new Bundle(bundle);
|
|
MediaSessionCompat.a(this.mBundle);
|
|
}
|
|
|
|
public static MediaMetadataCompat fromMediaMetadata(Object obj) {
|
|
if (obj == null || Build.VERSION.SDK_INT < 21) {
|
|
return null;
|
|
}
|
|
Parcel obtain = Parcel.obtain();
|
|
MediaMetadataCompatApi21.a(obj, obtain, 0);
|
|
obtain.setDataPosition(0);
|
|
MediaMetadataCompat createFromParcel = CREATOR.createFromParcel(obtain);
|
|
obtain.recycle();
|
|
createFromParcel.mMetadataObj = obj;
|
|
return createFromParcel;
|
|
}
|
|
|
|
public boolean containsKey(String str) {
|
|
return this.mBundle.containsKey(str);
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
public Bitmap getBitmap(String str) {
|
|
try {
|
|
return (Bitmap) this.mBundle.getParcelable(str);
|
|
} catch (Exception e) {
|
|
Log.w(TAG, "Failed to retrieve a key as Bitmap.", e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public Bundle getBundle() {
|
|
return new Bundle(this.mBundle);
|
|
}
|
|
|
|
public MediaDescriptionCompat getDescription() {
|
|
Bitmap bitmap;
|
|
Uri uri;
|
|
MediaDescriptionCompat mediaDescriptionCompat = this.mDescription;
|
|
if (mediaDescriptionCompat != null) {
|
|
return mediaDescriptionCompat;
|
|
}
|
|
String string = getString(METADATA_KEY_MEDIA_ID);
|
|
CharSequence[] charSequenceArr = new CharSequence[3];
|
|
CharSequence text = getText(METADATA_KEY_DISPLAY_TITLE);
|
|
if (TextUtils.isEmpty(text)) {
|
|
int i = 0;
|
|
int i2 = 0;
|
|
while (i < charSequenceArr.length) {
|
|
String[] strArr = PREFERRED_DESCRIPTION_ORDER;
|
|
if (i2 >= strArr.length) {
|
|
break;
|
|
}
|
|
int i3 = i2 + 1;
|
|
CharSequence text2 = getText(strArr[i2]);
|
|
if (!TextUtils.isEmpty(text2)) {
|
|
charSequenceArr[i] = text2;
|
|
i++;
|
|
}
|
|
i2 = i3;
|
|
}
|
|
} else {
|
|
charSequenceArr[0] = text;
|
|
charSequenceArr[1] = getText(METADATA_KEY_DISPLAY_SUBTITLE);
|
|
charSequenceArr[2] = getText(METADATA_KEY_DISPLAY_DESCRIPTION);
|
|
}
|
|
int i4 = 0;
|
|
while (true) {
|
|
String[] strArr2 = PREFERRED_BITMAP_ORDER;
|
|
if (i4 >= strArr2.length) {
|
|
bitmap = null;
|
|
break;
|
|
}
|
|
bitmap = getBitmap(strArr2[i4]);
|
|
if (bitmap != null) {
|
|
break;
|
|
}
|
|
i4++;
|
|
}
|
|
int i5 = 0;
|
|
while (true) {
|
|
String[] strArr3 = PREFERRED_URI_ORDER;
|
|
if (i5 >= strArr3.length) {
|
|
uri = null;
|
|
break;
|
|
}
|
|
String string2 = getString(strArr3[i5]);
|
|
if (!TextUtils.isEmpty(string2)) {
|
|
uri = Uri.parse(string2);
|
|
break;
|
|
}
|
|
i5++;
|
|
}
|
|
String string3 = getString(METADATA_KEY_MEDIA_URI);
|
|
Uri parse = TextUtils.isEmpty(string3) ? null : Uri.parse(string3);
|
|
MediaDescriptionCompat.Builder builder = new MediaDescriptionCompat.Builder();
|
|
builder.a(string);
|
|
builder.c(charSequenceArr[0]);
|
|
builder.b(charSequenceArr[1]);
|
|
builder.a(charSequenceArr[2]);
|
|
builder.a(bitmap);
|
|
builder.a(uri);
|
|
builder.b(parse);
|
|
Bundle bundle = new Bundle();
|
|
if (this.mBundle.containsKey(METADATA_KEY_BT_FOLDER_TYPE)) {
|
|
bundle.putLong(MediaDescriptionCompat.EXTRA_BT_FOLDER_TYPE, getLong(METADATA_KEY_BT_FOLDER_TYPE));
|
|
}
|
|
if (this.mBundle.containsKey(METADATA_KEY_DOWNLOAD_STATUS)) {
|
|
bundle.putLong(MediaDescriptionCompat.EXTRA_DOWNLOAD_STATUS, getLong(METADATA_KEY_DOWNLOAD_STATUS));
|
|
}
|
|
if (!bundle.isEmpty()) {
|
|
builder.a(bundle);
|
|
}
|
|
this.mDescription = builder.a();
|
|
return this.mDescription;
|
|
}
|
|
|
|
public long getLong(String str) {
|
|
return this.mBundle.getLong(str, 0L);
|
|
}
|
|
|
|
public Object getMediaMetadata() {
|
|
if (this.mMetadataObj == null && Build.VERSION.SDK_INT >= 21) {
|
|
Parcel obtain = Parcel.obtain();
|
|
writeToParcel(obtain, 0);
|
|
obtain.setDataPosition(0);
|
|
this.mMetadataObj = MediaMetadataCompatApi21.a(obtain);
|
|
obtain.recycle();
|
|
}
|
|
return this.mMetadataObj;
|
|
}
|
|
|
|
public RatingCompat getRating(String str) {
|
|
try {
|
|
return Build.VERSION.SDK_INT >= 19 ? RatingCompat.fromRating(this.mBundle.getParcelable(str)) : (RatingCompat) this.mBundle.getParcelable(str);
|
|
} catch (Exception e) {
|
|
Log.w(TAG, "Failed to retrieve a key as Rating.", e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public String getString(String str) {
|
|
CharSequence charSequence = this.mBundle.getCharSequence(str);
|
|
if (charSequence != null) {
|
|
return charSequence.toString();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public CharSequence getText(String str) {
|
|
return this.mBundle.getCharSequence(str);
|
|
}
|
|
|
|
public Set<String> keySet() {
|
|
return this.mBundle.keySet();
|
|
}
|
|
|
|
public int size() {
|
|
return this.mBundle.size();
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
parcel.writeBundle(this.mBundle);
|
|
}
|
|
|
|
MediaMetadataCompat(Parcel parcel) {
|
|
this.mBundle = parcel.readBundle(MediaSessionCompat.class.getClassLoader());
|
|
}
|
|
}
|