145 lines
4.3 KiB
Java
145 lines
4.3 KiB
Java
package android.support.v4.media.session;
|
|
|
|
import android.content.Context;
|
|
import android.media.AudioAttributes;
|
|
import android.media.MediaMetadata;
|
|
import android.media.session.MediaController;
|
|
import android.media.session.MediaSession;
|
|
import android.media.session.PlaybackState;
|
|
import android.os.Bundle;
|
|
import android.os.ResultReceiver;
|
|
import android.view.KeyEvent;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
class MediaControllerCompatApi21 {
|
|
|
|
public interface Callback {
|
|
void a(int i, int i2, int i3, int i4, int i5);
|
|
|
|
void a(Bundle bundle);
|
|
|
|
void a(CharSequence charSequence);
|
|
|
|
void a(Object obj);
|
|
|
|
void a(String str, Bundle bundle);
|
|
|
|
void a(List<?> list);
|
|
|
|
void b();
|
|
|
|
void b(Object obj);
|
|
}
|
|
|
|
static class CallbackProxy<T extends Callback> extends MediaController.Callback {
|
|
protected final T a;
|
|
|
|
public CallbackProxy(T t) {
|
|
this.a = t;
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onAudioInfoChanged(MediaController.PlaybackInfo playbackInfo) {
|
|
this.a.a(playbackInfo.getPlaybackType(), PlaybackInfo.b(playbackInfo), playbackInfo.getVolumeControl(), playbackInfo.getMaxVolume(), playbackInfo.getCurrentVolume());
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onExtrasChanged(Bundle bundle) {
|
|
MediaSessionCompat.a(bundle);
|
|
this.a.a(bundle);
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onMetadataChanged(MediaMetadata mediaMetadata) {
|
|
this.a.a(mediaMetadata);
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onPlaybackStateChanged(PlaybackState playbackState) {
|
|
this.a.b(playbackState);
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onQueueChanged(List<MediaSession.QueueItem> list) {
|
|
this.a.a(list);
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onQueueTitleChanged(CharSequence charSequence) {
|
|
this.a.a(charSequence);
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onSessionDestroyed() {
|
|
this.a.b();
|
|
}
|
|
|
|
@Override // android.media.session.MediaController.Callback
|
|
public void onSessionEvent(String str, Bundle bundle) {
|
|
MediaSessionCompat.a(bundle);
|
|
this.a.a(str, bundle);
|
|
}
|
|
}
|
|
|
|
public static class PlaybackInfo {
|
|
public static AudioAttributes a(Object obj) {
|
|
return ((MediaController.PlaybackInfo) obj).getAudioAttributes();
|
|
}
|
|
|
|
public static int b(Object obj) {
|
|
return a(a(obj));
|
|
}
|
|
|
|
private static int a(AudioAttributes audioAttributes) {
|
|
if ((audioAttributes.getFlags() & 1) == 1) {
|
|
return 7;
|
|
}
|
|
if ((audioAttributes.getFlags() & 4) == 4) {
|
|
return 6;
|
|
}
|
|
switch (audioAttributes.getUsage()) {
|
|
case 1:
|
|
case 11:
|
|
case 12:
|
|
case 14:
|
|
return 3;
|
|
case 2:
|
|
return 0;
|
|
case 3:
|
|
return 8;
|
|
case 4:
|
|
return 4;
|
|
case 5:
|
|
case 7:
|
|
case 8:
|
|
case 9:
|
|
case 10:
|
|
return 5;
|
|
case 6:
|
|
return 2;
|
|
case 13:
|
|
return 1;
|
|
default:
|
|
return 3;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static Object a(Context context, Object obj) {
|
|
return new MediaController(context, (MediaSession.Token) obj);
|
|
}
|
|
|
|
public static Object a(Callback callback) {
|
|
return new CallbackProxy(callback);
|
|
}
|
|
|
|
public static boolean a(Object obj, KeyEvent keyEvent) {
|
|
return ((MediaController) obj).dispatchMediaButtonEvent(keyEvent);
|
|
}
|
|
|
|
public static void a(Object obj, String str, Bundle bundle, ResultReceiver resultReceiver) {
|
|
((MediaController) obj).sendCommand(str, bundle, resultReceiver);
|
|
}
|
|
}
|