package com.sregg.android.tv.spotifyPlayer.controllers;
import android.annotation.TargetApi;
import android.content.Intent;
import android.os.Build;
import android.support.v4.media.session.MediaSessionCompat;
import android.view.KeyEvent;
import com.sregg.android.tv.spotifyPlayer.enums.Control;
import timber.log.Timber;
/**
* Created by gw111zz on 24/01/2016.
*/
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class MediaButtonReceiver extends MediaSessionCompat.Callback {
private static final String TAG = "MediaButtonReceiver";
private final SpotifyPlayerController mPlayer;
public MediaButtonReceiver(SpotifyPlayerController player) {
mPlayer = player;
}
@Override
public boolean onMediaButtonEvent(Intent mediaButtonIntent) {
final KeyEvent event = (KeyEvent) mediaButtonIntent.getExtras().get(Intent.EXTRA_KEY_EVENT);
Timber.d("onMediaButtonEvent: %s", (event == null ? "null" : event));
if (event == null) {
return super.onMediaButtonEvent(mediaButtonIntent);
}
if (event.getAction() == KeyEvent.ACTION_DOWN) {
final int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_MEDIA_PLAY:
mPlayer.onControlClick(Control.PLAY);
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
mPlayer.onControlClick(Control.PREVIOUS);
break;
case KeyEvent.KEYCODE_MEDIA_NEXT:
mPlayer.onControlClick(Control.NEXT);
break;
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
mPlayer.onControlClick(Control.PAUSE);
break;
case KeyEvent.KEYCODE_MEDIA_STOP:
mPlayer.onControlClick(Control.STOP);
break;
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
mPlayer.onControlClick(Control.FAST_FORWARD);
break;
case KeyEvent.KEYCODE_MEDIA_REWIND:
mPlayer.onControlClick(Control.REWIND);
break;
default:
return super.onMediaButtonEvent(mediaButtonIntent);
}
}
return true;
}
}