From 0f32e2953ce2aed89e676d815fa9cb2494a31e1a Mon Sep 17 00:00:00 2001 From: Domingos Lopes Date: Sat, 30 Apr 2016 21:01:14 -0400 Subject: avoid stopping playback after skipping (and changing media type) --- .../danoeh/antennapod/core/service/playback/LocalPSMP.java | 13 +++++++++---- .../antennapod/core/service/playback/PlaybackService.java | 8 +++++--- .../core/service/playback/PlaybackServiceMediaPlayer.java | 2 +- .../danoeh/antennapod/core/service/playback/RemotePSMP.java | 4 ++-- 4 files changed, 17 insertions(+), 10 deletions(-) (limited to 'core/src/main/java/de') diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java index be80ea112..acd0ccfdb 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java @@ -158,7 +158,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { setPlayerStatus(PlayerStatus.INITIALIZING, media); try { media.loadMetadata(); - callback.reloadUI(); + callback.reloadUI(true); if (stream) { mediaPlayer.setDataSource(media.getStreamUrl()); } else { @@ -337,6 +337,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { public void reinit() { executor.submit(() -> { playerLock.lock(); + Log.d(TAG, "reinit()"); releaseWifiLockIfNecessary(); if (media != null) { playMediaObject(media, true, stream, startWhenPrepared.get(), false); @@ -629,9 +630,13 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { public void resetVideoSurface() { executor.submit(() -> { playerLock.lock(); - Log.d(TAG, "Resetting video surface"); - mediaPlayer.setDisplay(null); - reinit(); + if (mediaType == MediaType.VIDEO) { + Log.d(TAG, "Resetting video surface"); + mediaPlayer.setDisplay(null); + reinit(); + } else { + Log.e(TAG, "Resetting video surface for media of Audio type"); + } playerLock.unlock(); }); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index 2e4a486e6..17473feb3 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -499,7 +499,7 @@ public class PlaybackService extends Service { } public void notifyVideoSurfaceAbandoned() { - stopForeground(true); + stopForeground(!UserPreferences.isPersistNotify()); mediaPlayer.resetVideoSurface(); } @@ -640,9 +640,11 @@ public class PlaybackService extends Service { } @Override - public void reloadUI() { + public void reloadUI(boolean onlyMediaSession) { Log.d(TAG, "reloadUI callback reached"); - sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0); + if (!onlyMediaSession) { + sendNotificationBroadcast(NOTIFICATION_TYPE_RELOAD, 0); + } PlaybackService.this.updateMediaSessionMetadata(getPlayable()); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java index f3a9c1d03..132dd095b 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java @@ -322,7 +322,7 @@ public abstract class PlaybackServiceMediaPlayer { void onBufferingUpdate(int percent); - void reloadUI(); + void reloadUI(boolean onlyMediaSession); boolean onMediaPlayerInfo(int code, @StringRes int resourceId); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java index b9068447e..5d7c53b23 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java @@ -244,7 +244,7 @@ public class RemotePSMP extends PlaybackServiceMediaPlayer { setPlayerStatus(PlayerStatus.INDETERMINATE, currentMedia); } if (updateUI) { - callback.reloadUI(); + callback.reloadUI(false); } } @@ -302,7 +302,7 @@ public class RemotePSMP extends PlaybackServiceMediaPlayer { setPlayerStatus(PlayerStatus.INITIALIZING, media); try { media.loadMetadata(); - callback.reloadUI(); + callback.reloadUI(false); setPlayerStatus(PlayerStatus.INITIALIZED, media); if (prepareImmediately) { prepare(); -- cgit v1.2.3