Media buttons: Fast forward when next button is pressed
This commit is contained in:
parent
506b821249
commit
cdc8bbd97a
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user