Fixed Media Key processing
This commit is contained in:
parent
decca7103f
commit
7f5ff00237
|
@ -64,6 +64,11 @@ public class MediaPlayerLifecycleSupport
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCreate()
|
public void onCreate()
|
||||||
|
{
|
||||||
|
onCreate(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onCreate(final boolean autoPlay)
|
||||||
{
|
{
|
||||||
if (created) return;
|
if (created) return;
|
||||||
registerHeadsetReceiver();
|
registerHeadsetReceiver();
|
||||||
|
@ -86,8 +91,7 @@ public class MediaPlayerLifecycleSupport
|
||||||
this.downloadQueueSerializer.deserializeDownloadQueue(new Consumer<State>() {
|
this.downloadQueueSerializer.deserializeDownloadQueue(new Consumer<State>() {
|
||||||
@Override
|
@Override
|
||||||
public void accept(State state) {
|
public void accept(State state) {
|
||||||
// TODO: here the autoPlay = false creates problems when Ultrasonic is started by a Play MediaButton as the player won't start this way.
|
mediaPlayerController.restore(state.songs, state.currentPlayingIndex, state.currentPlayingPosition, autoPlay, false);
|
||||||
mediaPlayerController.restore(state.songs, state.currentPlayingIndex, state.currentPlayingPosition, false, false);
|
|
||||||
|
|
||||||
// Work-around: Serialize again, as the restore() method creates a serialization without current playing info.
|
// Work-around: Serialize again, as the restore() method creates a serialization without current playing info.
|
||||||
MediaPlayerLifecycleSupport.this.downloadQueueSerializer.serializeDownloadQueue(downloader.downloadList,
|
MediaPlayerLifecycleSupport.this.downloadQueueSerializer.serializeDownloadQueue(downloader.downloadList,
|
||||||
|
@ -177,7 +181,16 @@ public class MediaPlayerLifecycleSupport
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (event.getKeyCode())
|
int keyCode = event.getKeyCode();
|
||||||
|
boolean autoStart = (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE ||
|
||||||
|
keyCode == KeyEvent.KEYCODE_MEDIA_PLAY ||
|
||||||
|
keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS ||
|
||||||
|
keyCode == KeyEvent.KEYCODE_MEDIA_NEXT);
|
||||||
|
|
||||||
|
// We can receive intents (e.g. MediaButton) when everything is stopped, so we need to start
|
||||||
|
if (!created) onCreate(autoStart);
|
||||||
|
|
||||||
|
switch (keyCode)
|
||||||
{
|
{
|
||||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||||
|
|
Loading…
Reference in New Issue