125 lines
4.8 KiB
Java
125 lines
4.8 KiB
Java
package android.support.v4.media.session;
|
|
|
|
import android.content.Context;
|
|
import android.media.session.MediaController;
|
|
import android.media.session.MediaSession;
|
|
import android.os.Bundle;
|
|
import android.os.RemoteException;
|
|
import android.os.ResultReceiver;
|
|
import android.support.v4.media.MediaMetadataCompat;
|
|
import android.support.v4.media.session.MediaSessionCompat;
|
|
import android.util.Log;
|
|
import androidx.annotation.GuardedBy;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.core.app.BundleCompat;
|
|
import androidx.versionedparcelable.ParcelUtils;
|
|
import androidx.versionedparcelable.VersionedParcelable;
|
|
import java.lang.ref.WeakReference;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import x.a.b.b.a.b;
|
|
import x.a.b.b.a.c;
|
|
@RequiresApi(21)
|
|
public class MediaControllerCompat$MediaControllerImplApi21 {
|
|
public final MediaController a;
|
|
public final Object b = new Object();
|
|
@GuardedBy("mLock")
|
|
|
|
/* renamed from: c reason: collision with root package name */
|
|
public final List<c> f14c = new ArrayList();
|
|
public HashMap<c, a> d = new HashMap<>();
|
|
public final MediaSessionCompat.Token e;
|
|
|
|
public static class ExtraBinderRequestResultReceiver extends ResultReceiver {
|
|
public WeakReference<MediaControllerCompat$MediaControllerImplApi21> i;
|
|
|
|
public ExtraBinderRequestResultReceiver(MediaControllerCompat$MediaControllerImplApi21 mediaControllerCompat$MediaControllerImplApi21) {
|
|
super(null);
|
|
this.i = new WeakReference<>(mediaControllerCompat$MediaControllerImplApi21);
|
|
}
|
|
|
|
@Override // android.os.ResultReceiver
|
|
public void onReceiveResult(int i, Bundle bundle) {
|
|
MediaControllerCompat$MediaControllerImplApi21 mediaControllerCompat$MediaControllerImplApi21 = this.i.get();
|
|
if (mediaControllerCompat$MediaControllerImplApi21 != null && bundle != null) {
|
|
synchronized (mediaControllerCompat$MediaControllerImplApi21.b) {
|
|
MediaSessionCompat.Token token = mediaControllerCompat$MediaControllerImplApi21.e;
|
|
b e = b.a.e(BundleCompat.getBinder(bundle, "android.support.v4.media.session.EXTRA_BINDER"));
|
|
synchronized (token.i) {
|
|
token.k = e;
|
|
}
|
|
MediaSessionCompat.Token token2 = mediaControllerCompat$MediaControllerImplApi21.e;
|
|
VersionedParcelable versionedParcelable = ParcelUtils.getVersionedParcelable(bundle, "android.support.v4.media.session.SESSION_TOKEN2");
|
|
synchronized (token2.i) {
|
|
token2.l = versionedParcelable;
|
|
}
|
|
mediaControllerCompat$MediaControllerImplApi21.a();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static class a extends c.b {
|
|
public a(c cVar) {
|
|
super(cVar);
|
|
}
|
|
|
|
@Override // x.a.b.b.a.c.b, x.a.b.b.a.a
|
|
public void V(CharSequence charSequence) throws RemoteException {
|
|
throw new AssertionError();
|
|
}
|
|
|
|
@Override // x.a.b.b.a.c.b, x.a.b.b.a.a
|
|
public void W() throws RemoteException {
|
|
throw new AssertionError();
|
|
}
|
|
|
|
@Override // x.a.b.b.a.c.b, x.a.b.b.a.a
|
|
public void X(MediaMetadataCompat mediaMetadataCompat) throws RemoteException {
|
|
throw new AssertionError();
|
|
}
|
|
|
|
@Override // x.a.b.b.a.c.b, x.a.b.b.a.a
|
|
public void w0(ParcelableVolumeInfo parcelableVolumeInfo) throws RemoteException {
|
|
throw new AssertionError();
|
|
}
|
|
|
|
@Override // x.a.b.b.a.c.b, x.a.b.b.a.a
|
|
public void y(Bundle bundle) throws RemoteException {
|
|
throw new AssertionError();
|
|
}
|
|
|
|
@Override // x.a.b.b.a.c.b, x.a.b.b.a.a
|
|
public void z(List<MediaSessionCompat.QueueItem> list) throws RemoteException {
|
|
throw new AssertionError();
|
|
}
|
|
}
|
|
|
|
public MediaControllerCompat$MediaControllerImplApi21(Context context, MediaSessionCompat.Token token) {
|
|
this.e = token;
|
|
MediaController mediaController = new MediaController(context, (MediaSession.Token) token.j);
|
|
this.a = mediaController;
|
|
if (token.b() == null) {
|
|
mediaController.sendCommand("android.support.v4.media.session.command.GET_EXTRA_BINDER", null, new ExtraBinderRequestResultReceiver(this));
|
|
}
|
|
}
|
|
|
|
@GuardedBy("mLock")
|
|
public void a() {
|
|
if (this.e.b() != null) {
|
|
for (c cVar : this.f14c) {
|
|
a aVar = new a(cVar);
|
|
this.d.put(cVar, aVar);
|
|
cVar.a = aVar;
|
|
try {
|
|
this.e.b().j(aVar);
|
|
} catch (RemoteException e) {
|
|
Log.e("MediaControllerCompat", "Dead object in registerCallback.", e);
|
|
}
|
|
}
|
|
this.f14c.clear();
|
|
}
|
|
}
|
|
}
|