summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java9
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java13
3 files changed, 22 insertions, 5 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java b/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java
index de040603d..fe6e8c400 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java
@@ -45,6 +45,7 @@ import de.danoeh.antennapod.core.util.gui.NotificationUtils;
* This class also provides static methods for starting the GpodnetSyncService.
*/
public class GpodnetSyncService extends JobIntentService {
+
private static final String TAG = "GpodnetSyncService";
private static final long WAIT_INTERVAL = 5000L;
@@ -61,8 +62,10 @@ public class GpodnetSyncService extends JobIntentService {
private static boolean syncSubscriptions = false;
private static boolean syncActions = false;
+ private static final int JOB_ID = -17000;
+
private static void enqueueWork(Context context, Intent intent) {
- enqueueWork(context, GpodnetSyncService.class, 0, intent);
+ enqueueWork(context, GpodnetSyncService.class, JOB_ID, intent);
}
@Override
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java b/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java
index 2fd790ac7..d2214cac8 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java
@@ -26,13 +26,16 @@ import de.danoeh.antennapod.core.receiver.PlayerWidget;
* Updates the state of the player widget
*/
public class PlayerWidgetJobService extends JobIntentService {
+
private static final String TAG = "PlayerWidgetJobService";
private PlaybackService playbackService;
private final Object waitForService = new Object();
+ private static final int JOB_ID = -17001;
+
public static void updateWidget(Context context) {
- enqueueWork(context, PlayerWidgetJobService.class, 0, new Intent(context, PlayerWidgetJobService.class));
+ enqueueWork(context, PlayerWidgetJobService.class, JOB_ID, new Intent(context, PlayerWidgetJobService.class));
}
@Override
@@ -41,8 +44,8 @@ public class PlayerWidgetJobService extends JobIntentService {
return;
}
- if (PlaybackService.isRunning && playbackService == null) {
- synchronized (waitForService) {
+ synchronized (waitForService) {
+ if (PlaybackService.isRunning && playbackService == null) {
bindService(new Intent(this, PlaybackService.class), mConnection, 0);
while (playbackService == null) {
try {
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 a7c01e43a..979857381 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
@@ -660,7 +660,12 @@ public class PlaybackService extends MediaBrowserServiceCompat {
private final PlaybackServiceMediaPlayer.PSMPCallback mediaPlayerCallback = new PlaybackServiceMediaPlayer.PSMPCallback() {
@Override
public void statusChanged(PlaybackServiceMediaPlayer.PSMPInfo newInfo) {
- currentMediaType = mediaPlayer.getCurrentMediaType();
+ if (mediaPlayer != null) {
+ currentMediaType = mediaPlayer.getCurrentMediaType();
+ } else {
+ currentMediaType = MediaType.UNKNOWN;
+ }
+
updateMediaSession(newInfo.playerStatus);
switch (newInfo.playerStatus) {
case INITIALIZED:
@@ -1680,6 +1685,9 @@ public class PlaybackService extends MediaBrowserServiceCompat {
* an invalid state.
*/
public int getDuration() {
+ if (mediaPlayer == null) {
+ return INVALID_TIME;
+ }
return mediaPlayer.getDuration();
}
@@ -1688,6 +1696,9 @@ public class PlaybackService extends MediaBrowserServiceCompat {
* is in an invalid state.
*/
public int getCurrentPosition() {
+ if (mediaPlayer == null) {
+ return INVALID_TIME;
+ }
return mediaPlayer.getPosition();
}