Media buttons: Fast forward when next button is pressed

This commit is contained in:
Martin Fietz 2015-11-23 21:40:18 +01:00
parent 506b821249
commit cdc8bbd97a

View File

@ -16,6 +16,7 @@ import android.support.v4.media.session.PlaybackStateCompat;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.Log; import android.util.Log;
import android.util.Pair; import android.util.Pair;
import android.view.InputDevice;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.SurfaceHolder; import android.view.SurfaceHolder;
@ -1182,8 +1183,11 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
private final MediaSessionCompat.Callback sessionCallback = new MediaSessionCompat.Callback() { private final MediaSessionCompat.Callback sessionCallback = new MediaSessionCompat.Callback() {
private static final String TAG = "MediaSessionCompat";
@Override @Override
public void onPlay() { public void onPlay() {
Log.d(TAG, "onPlay()");
if (playerStatus == PlayerStatus.PAUSED || playerStatus == PlayerStatus.PREPARED) { if (playerStatus == PlayerStatus.PAUSED || playerStatus == PlayerStatus.PREPARED) {
resume(); resume();
} else if (playerStatus == PlayerStatus.INITIALIZED) { } else if (playerStatus == PlayerStatus.INITIALIZED) {
@ -1194,7 +1198,7 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); Log.d(TAG, "onPause()");
if (playerStatus == PlayerStatus.PLAYING) { if (playerStatus == PlayerStatus.PLAYING) {
pause(false, true); pause(false, true);
} }
@ -1207,25 +1211,24 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
@Override @Override
public void onSkipToNext() { public void onSkipToNext() {
super.onSkipToNext(); Log.d(TAG, "onSkipToNext()");
endPlayback(true);
} }
@Override @Override
public void onFastForward() { public void onFastForward() {
super.onFastForward(); Log.d(TAG, "onFastForward()");
seekDelta(UserPreferences.getFastFowardSecs() * 1000); seekDelta(UserPreferences.getFastFowardSecs() * 1000);
} }
@Override @Override
public void onRewind() { public void onRewind() {
super.onRewind(); Log.d(TAG, "onRewind()");
seekDelta(-UserPreferences.getRewindSecs() * 1000); seekDelta(-UserPreferences.getRewindSecs() * 1000);
} }
@Override @Override
public void onSeekTo(long pos) { public void onSeekTo(long pos) {
super.onSeekTo(pos); Log.d(TAG, "onSeekTo()");
seekTo((int) pos); seekTo((int) pos);
} }
@ -1236,11 +1239,12 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
KeyEvent keyEvent = (KeyEvent) mediaButton.getExtras().get(Intent.EXTRA_KEY_EVENT); KeyEvent keyEvent = (KeyEvent) mediaButton.getExtras().get(Intent.EXTRA_KEY_EVENT);
handleMediaKey(keyEvent); handleMediaKey(keyEvent);
} }
return super.onMediaButtonEvent(mediaButton); return false;
} }
}; };
public boolean handleMediaKey(KeyEvent event) { public boolean handleMediaKey(KeyEvent event) {
Log.d(TAG, "handleMediaKey(" + event +")");
if (event != null if (event != null
&& event.getAction() == KeyEvent.ACTION_DOWN && event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) { && event.getRepeatCount() == 0) {
@ -1291,8 +1295,11 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
return true; return true;
} }
case KeyEvent.KEYCODE_MEDIA_NEXT: { case KeyEvent.KEYCODE_MEDIA_NEXT: {
Log.d(TAG, "Received next event from RemoteControlClient"); if(event.getSource() == InputDevice.SOURCE_CLASS_NONE) {
endPlayback(true); endPlayback(true);
} else {
seekDelta(UserPreferences.getFastFowardSecs() * 1000);
}
return true; return true;
} }
default: default: