package android.support.v4.media.session; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.RemoteException; import android.os.ResultReceiver; import android.support.v4.media.MediaMetadataCompat; import android.support.v4.media.session.IMediaControllerCallback; import android.support.v4.media.session.IMediaSession; import android.support.v4.media.session.MediaControllerCompatApi21; import android.support.v4.media.session.MediaSessionCompat; import android.util.Log; import android.view.KeyEvent; import androidx.core.app.BundleCompat; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; /* loaded from: classes.dex */ public final class MediaControllerCompat { private final MediaControllerImpl a; public static abstract class Callback implements IBinder.DeathRecipient { MessageHandler a; IMediaControllerCallback b; private class MessageHandler extends Handler { } public Callback() { if (Build.VERSION.SDK_INT >= 21) { MediaControllerCompatApi21.a(new StubApi21(this)); } else { this.b = new StubCompat(this); } } public void a() { } void a(int i, Object obj, Bundle bundle) { MessageHandler messageHandler = this.a; if (messageHandler != null) { Message obtainMessage = messageHandler.obtainMessage(i, obj); obtainMessage.setData(bundle); obtainMessage.sendToTarget(); } } public void a(Bundle bundle) { } public void a(MediaMetadataCompat mediaMetadataCompat) { } public void a(PlaybackInfo playbackInfo) { } public void a(PlaybackStateCompat playbackStateCompat) { } public void a(CharSequence charSequence) { } public void a(String str, Bundle bundle) { } public void a(List list) { } @Override // android.os.IBinder.DeathRecipient public void binderDied() { a(8, null, null); } private static class StubApi21 implements MediaControllerCompatApi21.Callback { private final WeakReference a; StubApi21(Callback callback) { this.a = new WeakReference<>(callback); } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void a(String str, Bundle bundle) { Callback callback = this.a.get(); if (callback != null) { if (callback.b == null || Build.VERSION.SDK_INT >= 23) { callback.a(str, bundle); } } } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void b() { Callback callback = this.a.get(); if (callback != null) { callback.a(); } } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void b(Object obj) { Callback callback = this.a.get(); if (callback == null || callback.b != null) { return; } callback.a(PlaybackStateCompat.fromPlaybackState(obj)); } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void a(Object obj) { Callback callback = this.a.get(); if (callback != null) { callback.a(MediaMetadataCompat.fromMediaMetadata(obj)); } } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void a(List list) { Callback callback = this.a.get(); if (callback != null) { callback.a(MediaSessionCompat.QueueItem.fromQueueItemList(list)); } } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void a(CharSequence charSequence) { Callback callback = this.a.get(); if (callback != null) { callback.a(charSequence); } } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void a(Bundle bundle) { Callback callback = this.a.get(); if (callback != null) { callback.a(bundle); } } @Override // android.support.v4.media.session.MediaControllerCompatApi21.Callback public void a(int i, int i2, int i3, int i4, int i5) { Callback callback = this.a.get(); if (callback != null) { callback.a(new PlaybackInfo(i, i2, i3, i4, i5)); } } } private static class StubCompat extends IMediaControllerCallback.Stub { private final WeakReference a; StubCompat(Callback callback) { this.a = new WeakReference<>(callback); } @Override // android.support.v4.media.session.IMediaControllerCallback public void a(PlaybackStateCompat playbackStateCompat) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(2, playbackStateCompat, null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void b() throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(8, null, null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void c(String str, Bundle bundle) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(1, str, bundle); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void c(boolean z) throws RemoteException { } @Override // android.support.v4.media.session.IMediaControllerCallback public void f() throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(13, null, null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void g(int i) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(9, Integer.valueOf(i), null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void h(int i) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(12, Integer.valueOf(i), null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void a(MediaMetadataCompat mediaMetadataCompat) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(3, mediaMetadataCompat, null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void b(boolean z) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(11, Boolean.valueOf(z), null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void a(List list) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(5, list, null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void a(CharSequence charSequence) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(6, charSequence, null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void a(Bundle bundle) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(7, bundle, null); } } @Override // android.support.v4.media.session.IMediaControllerCallback public void a(ParcelableVolumeInfo parcelableVolumeInfo) throws RemoteException { Callback callback = this.a.get(); if (callback != null) { callback.a(4, parcelableVolumeInfo != null ? new PlaybackInfo(parcelableVolumeInfo.volumeType, parcelableVolumeInfo.audioStream, parcelableVolumeInfo.controlType, parcelableVolumeInfo.maxVolume, parcelableVolumeInfo.currentVolume) : null, null); } } } } interface MediaControllerImpl { boolean a(KeyEvent keyEvent); } static class MediaControllerImplApi21 implements MediaControllerImpl { protected final Object a; final Object b = new Object(); private final List c = new ArrayList(); private HashMap d = new HashMap<>(); final MediaSessionCompat.Token e; private static class ExtraBinderRequestResultReceiver extends ResultReceiver { private WeakReference mMediaControllerImpl; ExtraBinderRequestResultReceiver(MediaControllerImplApi21 mediaControllerImplApi21) { super(null); this.mMediaControllerImpl = new WeakReference<>(mediaControllerImplApi21); } @Override // android.os.ResultReceiver protected void onReceiveResult(int i, Bundle bundle) { MediaControllerImplApi21 mediaControllerImplApi21 = this.mMediaControllerImpl.get(); if (mediaControllerImplApi21 == null || bundle == null) { return; } synchronized (mediaControllerImplApi21.b) { mediaControllerImplApi21.e.setExtraBinder(IMediaSession.Stub.a(BundleCompat.a(bundle, "android.support.v4.media.session.EXTRA_BINDER"))); mediaControllerImplApi21.e.setSessionToken2Bundle(bundle.getBundle("android.support.v4.media.session.SESSION_TOKEN2_BUNDLE")); mediaControllerImplApi21.a(); } } } private static class ExtraCallback extends Callback.StubCompat { ExtraCallback(Callback callback) { super(callback); } @Override // android.support.v4.media.session.MediaControllerCompat.Callback.StubCompat, android.support.v4.media.session.IMediaControllerCallback public void a(MediaMetadataCompat mediaMetadataCompat) throws RemoteException { throw new AssertionError(); } @Override // android.support.v4.media.session.MediaControllerCompat.Callback.StubCompat, android.support.v4.media.session.IMediaControllerCallback public void b() throws RemoteException { throw new AssertionError(); } @Override // android.support.v4.media.session.MediaControllerCompat.Callback.StubCompat, android.support.v4.media.session.IMediaControllerCallback public void a(List list) throws RemoteException { throw new AssertionError(); } @Override // android.support.v4.media.session.MediaControllerCompat.Callback.StubCompat, android.support.v4.media.session.IMediaControllerCallback public void a(CharSequence charSequence) throws RemoteException { throw new AssertionError(); } @Override // android.support.v4.media.session.MediaControllerCompat.Callback.StubCompat, android.support.v4.media.session.IMediaControllerCallback public void a(Bundle bundle) throws RemoteException { throw new AssertionError(); } @Override // android.support.v4.media.session.MediaControllerCompat.Callback.StubCompat, android.support.v4.media.session.IMediaControllerCallback public void a(ParcelableVolumeInfo parcelableVolumeInfo) throws RemoteException { throw new AssertionError(); } } public MediaControllerImplApi21(Context context, MediaSessionCompat.Token token) throws RemoteException { this.e = token; this.a = MediaControllerCompatApi21.a(context, this.e.getToken()); if (this.a == null) { throw new RemoteException(); } if (this.e.getExtraBinder() == null) { b(); } } private void b() { a("android.support.v4.media.session.command.GET_EXTRA_BINDER", null, new ExtraBinderRequestResultReceiver(this)); } @Override // android.support.v4.media.session.MediaControllerCompat.MediaControllerImpl public boolean a(KeyEvent keyEvent) { return MediaControllerCompatApi21.a(this.a, keyEvent); } public void a(String str, Bundle bundle, ResultReceiver resultReceiver) { MediaControllerCompatApi21.a(this.a, str, bundle, resultReceiver); } void a() { if (this.e.getExtraBinder() == null) { return; } for (Callback callback : this.c) { ExtraCallback extraCallback = new ExtraCallback(callback); this.d.put(callback, extraCallback); callback.b = extraCallback; try { this.e.getExtraBinder().a(extraCallback); callback.a(13, null, null); } catch (RemoteException e) { Log.e("MediaControllerCompat", "Dead object in registerCallback.", e); } } this.c.clear(); } } static class MediaControllerImplApi23 extends MediaControllerImplApi21 { public MediaControllerImplApi23(Context context, MediaSessionCompat.Token token) throws RemoteException { super(context, token); } } static class MediaControllerImplApi24 extends MediaControllerImplApi23 { public MediaControllerImplApi24(Context context, MediaSessionCompat.Token token) throws RemoteException { super(context, token); } } static class MediaControllerImplBase implements MediaControllerImpl { private IMediaSession a; public MediaControllerImplBase(MediaSessionCompat.Token token) { this.a = IMediaSession.Stub.a((IBinder) token.getToken()); } @Override // android.support.v4.media.session.MediaControllerCompat.MediaControllerImpl public boolean a(KeyEvent keyEvent) { if (keyEvent == null) { throw new IllegalArgumentException("event may not be null."); } try { this.a.a(keyEvent); return false; } catch (RemoteException e) { Log.e("MediaControllerCompat", "Dead object in dispatchMediaButtonEvent.", e); return false; } } } public static final class PlaybackInfo { PlaybackInfo(int i, int i2, int i3, int i4, int i5) { } } public MediaControllerCompat(Context context, MediaSessionCompat.Token token) throws RemoteException { new HashSet(); if (token == null) { throw new IllegalArgumentException("sessionToken must not be null"); } int i = Build.VERSION.SDK_INT; if (i >= 24) { this.a = new MediaControllerImplApi24(context, token); return; } if (i >= 23) { this.a = new MediaControllerImplApi23(context, token); } else if (i >= 21) { this.a = new MediaControllerImplApi21(context, token); } else { this.a = new MediaControllerImplBase(token); } } public boolean a(KeyEvent keyEvent) { if (keyEvent != null) { return this.a.a(keyEvent); } throw new IllegalArgumentException("KeyEvent may not be null"); } }