246 lines
8.1 KiB
Java
246 lines
8.1 KiB
Java
package android.support.v4.media.session;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.media.MediaDescription;
|
|
import android.media.session.MediaSession;
|
|
import android.os.BadParcelableException;
|
|
import android.os.Bundle;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.os.ResultReceiver;
|
|
import android.support.v4.media.MediaDescriptionCompat;
|
|
import android.util.Log;
|
|
import androidx.annotation.DoNotInline;
|
|
import androidx.annotation.GuardedBy;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.core.os.BuildCompat;
|
|
import androidx.versionedparcelable.VersionedParcelable;
|
|
import x.a.b.b.a.b;
|
|
public class MediaSessionCompat {
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY})
|
|
public static final int a = (BuildCompat.isAtLeastS() ? 33554432 : 0);
|
|
|
|
@SuppressLint({"BanParcelableUsage"})
|
|
public static final class QueueItem implements Parcelable {
|
|
public static final Parcelable.Creator<QueueItem> CREATOR = new a();
|
|
public final MediaDescriptionCompat j;
|
|
public final long k;
|
|
|
|
public class a implements Parcelable.Creator<QueueItem> {
|
|
/* Return type fixed from 'java.lang.Object' to match base method */
|
|
@Override // android.os.Parcelable.Creator
|
|
public QueueItem createFromParcel(Parcel parcel) {
|
|
return new QueueItem(parcel);
|
|
}
|
|
|
|
/* Return type fixed from 'java.lang.Object[]' to match base method */
|
|
@Override // android.os.Parcelable.Creator
|
|
public QueueItem[] newArray(int i) {
|
|
return new QueueItem[i];
|
|
}
|
|
}
|
|
|
|
@RequiresApi(21)
|
|
public static class b {
|
|
@DoNotInline
|
|
public static MediaSession.QueueItem a(MediaDescription mediaDescription, long j) {
|
|
return new MediaSession.QueueItem(mediaDescription, j);
|
|
}
|
|
|
|
@DoNotInline
|
|
public static MediaDescription b(MediaSession.QueueItem queueItem) {
|
|
return queueItem.getDescription();
|
|
}
|
|
|
|
@DoNotInline
|
|
public static long c(MediaSession.QueueItem queueItem) {
|
|
return queueItem.getQueueId();
|
|
}
|
|
}
|
|
|
|
public QueueItem(MediaSession.QueueItem queueItem, MediaDescriptionCompat mediaDescriptionCompat, long j) {
|
|
if (mediaDescriptionCompat == null) {
|
|
throw new IllegalArgumentException("Description cannot be null");
|
|
} else if (j != -1) {
|
|
this.j = mediaDescriptionCompat;
|
|
this.k = j;
|
|
} else {
|
|
throw new IllegalArgumentException("Id cannot be QueueItem.UNKNOWN_ID");
|
|
}
|
|
}
|
|
|
|
public QueueItem(Parcel parcel) {
|
|
this.j = MediaDescriptionCompat.CREATOR.createFromParcel(parcel);
|
|
this.k = parcel.readLong();
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override // java.lang.Object
|
|
public String toString() {
|
|
StringBuilder R = b.d.b.a.a.R("MediaSession.QueueItem {Description=");
|
|
R.append(this.j);
|
|
R.append(", Id=");
|
|
return b.d.b.a.a.B(R, this.k, " }");
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
this.j.writeToParcel(parcel, i);
|
|
parcel.writeLong(this.k);
|
|
}
|
|
}
|
|
|
|
@SuppressLint({"BanParcelableUsage"})
|
|
public static final class ResultReceiverWrapper implements Parcelable {
|
|
public static final Parcelable.Creator<ResultReceiverWrapper> CREATOR = new a();
|
|
public ResultReceiver j;
|
|
|
|
public class a implements Parcelable.Creator<ResultReceiverWrapper> {
|
|
/* Return type fixed from 'java.lang.Object' to match base method */
|
|
@Override // android.os.Parcelable.Creator
|
|
public ResultReceiverWrapper createFromParcel(Parcel parcel) {
|
|
return new ResultReceiverWrapper(parcel);
|
|
}
|
|
|
|
/* Return type fixed from 'java.lang.Object[]' to match base method */
|
|
@Override // android.os.Parcelable.Creator
|
|
public ResultReceiverWrapper[] newArray(int i) {
|
|
return new ResultReceiverWrapper[i];
|
|
}
|
|
}
|
|
|
|
public ResultReceiverWrapper(Parcel parcel) {
|
|
this.j = (ResultReceiver) ResultReceiver.CREATOR.createFromParcel(parcel);
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
this.j.writeToParcel(parcel, i);
|
|
}
|
|
}
|
|
|
|
@SuppressLint({"BanParcelableUsage"})
|
|
public static final class Token implements Parcelable {
|
|
public static final Parcelable.Creator<Token> CREATOR = new a();
|
|
public final Object j = new Object();
|
|
public final Object k;
|
|
@GuardedBy("mLock")
|
|
public b l;
|
|
@GuardedBy("mLock")
|
|
public VersionedParcelable m;
|
|
|
|
public class a implements Parcelable.Creator<Token> {
|
|
/* Return type fixed from 'java.lang.Object' to match base method */
|
|
@Override // android.os.Parcelable.Creator
|
|
public Token createFromParcel(Parcel parcel) {
|
|
return new Token(parcel.readParcelable(null));
|
|
}
|
|
|
|
/* Return type fixed from 'java.lang.Object[]' to match base method */
|
|
@Override // android.os.Parcelable.Creator
|
|
public Token[] newArray(int i) {
|
|
return new Token[i];
|
|
}
|
|
}
|
|
|
|
public Token(Object obj) {
|
|
this.k = obj;
|
|
this.l = null;
|
|
}
|
|
|
|
public Token(Object obj, b bVar) {
|
|
this.k = obj;
|
|
this.l = bVar;
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY})
|
|
public static Token a(Object obj, b bVar) {
|
|
if (obj == null) {
|
|
return null;
|
|
}
|
|
if (obj instanceof MediaSession.Token) {
|
|
return new Token(obj, bVar);
|
|
}
|
|
throw new IllegalArgumentException("token is not a valid MediaSession.Token object");
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY})
|
|
public b b() {
|
|
b bVar;
|
|
synchronized (this.j) {
|
|
bVar = this.l;
|
|
}
|
|
return bVar;
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override // java.lang.Object
|
|
public boolean equals(Object obj) {
|
|
if (this == obj) {
|
|
return true;
|
|
}
|
|
if (!(obj instanceof Token)) {
|
|
return false;
|
|
}
|
|
Token token = (Token) obj;
|
|
Object obj2 = this.k;
|
|
if (obj2 == null) {
|
|
return token.k == null;
|
|
}
|
|
Object obj3 = token.k;
|
|
if (obj3 == null) {
|
|
return false;
|
|
}
|
|
return obj2.equals(obj3);
|
|
}
|
|
|
|
@Override // java.lang.Object
|
|
public int hashCode() {
|
|
Object obj = this.k;
|
|
if (obj == null) {
|
|
return 0;
|
|
}
|
|
return obj.hashCode();
|
|
}
|
|
|
|
@Override // android.os.Parcelable
|
|
public void writeToParcel(Parcel parcel, int i) {
|
|
parcel.writeParcelable((Parcelable) this.k, i);
|
|
}
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY})
|
|
public static void a(@Nullable Bundle bundle) {
|
|
if (bundle != null) {
|
|
bundle.setClassLoader(MediaSessionCompat.class.getClassLoader());
|
|
}
|
|
}
|
|
|
|
@Nullable
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY})
|
|
public static Bundle b(@Nullable Bundle bundle) {
|
|
a(bundle);
|
|
try {
|
|
bundle.isEmpty();
|
|
return bundle;
|
|
} catch (BadParcelableException unused) {
|
|
Log.e("MediaSessionCompat", "Could not unparcel the data.");
|
|
return null;
|
|
}
|
|
}
|
|
}
|