summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java8
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/PlayerWidgetJobService.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java11
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java25
5 files changed, 36 insertions, 16 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java
index ecd34acff..8d123a432 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java
@@ -375,10 +375,10 @@ public class FeedItem extends FeedComponent implements ShownotesProvider, ImageR
@Override
public String getImageLocation() {
- if(media != null && media.hasEmbeddedPicture()) {
- return media.getImageLocation();
- } else if (imageUrl != null) {
- return imageUrl;
+ if (imageUrl != null) {
+ return imageUrl;
+ } else if (media != null && media.hasEmbeddedPicture()) {
+ return media.getLocalMediaUrl();
} else if (feed != null) {
return feed.getImageLocation();
} else {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java
index b1c2ff15a..572f32e66 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java
@@ -566,10 +566,10 @@ public class FeedMedia extends FeedFile implements Playable {
@Override
public String getImageLocation() {
- if (hasEmbeddedPicture()) {
- return getLocalMediaUrl();
- } else if(item != null) {
+ if (item != null) {
return item.getImageLocation();
+ } else if (hasEmbeddedPicture()) {
+ return getLocalMediaUrl();
} else {
return null;
}
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 2f7806eff..2d9de1894 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
@@ -219,7 +219,7 @@ public class PlayerWidgetJobService extends SafeJobIntentService {
}
private String getProgressString(int position, int duration, float speed) {
- if (position > 0 && duration > 0) {
+ if (position >= 0 && duration > 0) {
TimeSpeedConverter converter = new TimeSpeedConverter(speed);
position = converter.convert(position);
duration = converter.convert(duration);
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 ee99c59c2..18d789dc3 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
@@ -326,6 +326,12 @@ public class PlaybackService extends MediaBrowserServiceCompat {
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "Service is about to be destroyed");
+
+ if (notificationBuilder.getPlayerStatus() == PlayerStatus.PLAYING) {
+ notificationBuilder.setPlayerStatus(PlayerStatus.STOPPED);
+ NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
+ notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build());
+ }
stateManager.stopForeground(!UserPreferences.isPersistNotify());
isRunning = false;
currentMediaType = MediaType.UNKNOWN;
@@ -1197,7 +1203,10 @@ public class PlaybackService extends MediaBrowserServiceCompat {
}
PlayerStatus playerStatus = mediaPlayer.getPlayerStatus();
- notificationBuilder.setMetadata(playable, mediaSession.getSessionToken(), playerStatus, isCasting);
+ notificationBuilder.setPlayable(playable);
+ notificationBuilder.setMediaSessionToken(mediaSession.getSessionToken());
+ notificationBuilder.setPlayerStatus(playerStatus);
+ notificationBuilder.setCasting(isCasting);
notificationBuilder.updatePosition(getCurrentPosition(), getCurrentPlaybackSpeed());
Log.d(TAG, "setupNotification: startForeground" + playerStatus);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java
index be9a02445..6219fe78c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java
@@ -46,16 +46,11 @@ public class PlaybackServiceNotificationBuilder {
this.context = context;
}
- public void setMetadata(Playable playable, MediaSessionCompat.Token mediaSessionToken,
- PlayerStatus playerStatus, boolean isCasting) {
-
+ public void setPlayable(Playable playable) {
if (playable != this.playable) {
clearCache();
}
this.playable = playable;
- this.mediaSessionToken = mediaSessionToken;
- this.playerStatus = playerStatus;
- this.isCasting = isCasting;
}
private void clearCache() {
@@ -63,7 +58,7 @@ public class PlaybackServiceNotificationBuilder {
this.position = null;
}
- public void updatePosition(int position,float speed) {
+ public void updatePosition(int position, float speed) {
TimeSpeedConverter converter = new TimeSpeedConverter(speed);
this.position = Converter.getDurationStringLong(converter.convert(position));
}
@@ -239,4 +234,20 @@ public class PlaybackServiceNotificationBuilder {
return PendingIntent.getService(context, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
}
+
+ public void setMediaSessionToken(MediaSessionCompat.Token mediaSessionToken) {
+ this.mediaSessionToken = mediaSessionToken;
+ }
+
+ public void setPlayerStatus(PlayerStatus playerStatus) {
+ this.playerStatus = playerStatus;
+ }
+
+ public void setCasting(boolean casting) {
+ isCasting = casting;
+ }
+
+ public PlayerStatus getPlayerStatus() {
+ return playerStatus;
+ }
} \ No newline at end of file