summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/util/PlaybackController.java
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2013-02-27 11:47:12 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2013-02-27 11:47:12 +0100
commita6b6022626b26acd970588ca0bfd0c1c3d641825 (patch)
tree6fcfb15697335cf12202faa1dc2b5b28138f291e /src/de/danoeh/antennapod/util/PlaybackController.java
parent9cd870c6eebf558d789055e16da4e44dff5d0f0d (diff)
downloadAntennaPod-a6b6022626b26acd970588ca0bfd0c1c3d641825.zip
PlaybackService now works with the 'Playable' interface
Diffstat (limited to 'src/de/danoeh/antennapod/util/PlaybackController.java')
-rw-r--r--src/de/danoeh/antennapod/util/PlaybackController.java21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/de/danoeh/antennapod/util/PlaybackController.java b/src/de/danoeh/antennapod/util/PlaybackController.java
index 465feba8e..cad5af92e 100644
--- a/src/de/danoeh/antennapod/util/PlaybackController.java
+++ b/src/de/danoeh/antennapod/util/PlaybackController.java
@@ -33,6 +33,7 @@ import de.danoeh.antennapod.feed.FeedMedia;
import de.danoeh.antennapod.preferences.PlaybackPreferences;
import de.danoeh.antennapod.service.PlaybackService;
import de.danoeh.antennapod.service.PlayerStatus;
+import de.danoeh.antennapod.util.Playable.PlayableUtils;
/**
* Communicates with the playback service. GUI classes should use this class to
@@ -47,7 +48,7 @@ public abstract class PlaybackController {
private Activity activity;
private PlaybackService playbackService;
- private FeedMedia media;
+ private Playable media;
private PlayerStatus status;
private ScheduledThreadPoolExecutor schedExecutor;
@@ -186,24 +187,22 @@ public abstract class PlaybackController {
Log.d(TAG, "Trying to restore last played media");
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(activity.getApplicationContext());
- long mediaId = PlaybackPreferences.getLastPlayedId();
- long feedId = PlaybackPreferences.getLastPlayedFeedId();
- if (mediaId != -1 && feedId != -1) {
- FeedMedia media = FeedManager.getInstance().getFeedMedia(mediaId);
+ long lastPlayedId = PlaybackPreferences.getLastPlayedId();
+ if (lastPlayedId != PlaybackPreferences.NO_MEDIA_PLAYING) {
+ Playable media = PlayableUtils.createInstanceFromPreferences((int) lastPlayedId, prefs);
if (media != null) {
Intent serviceIntent = new Intent(activity,
PlaybackService.class);
- serviceIntent.putExtra(PlaybackService.EXTRA_FEED_ID, feedId);
- serviceIntent.putExtra(PlaybackService.EXTRA_MEDIA_ID, mediaId);
+ serviceIntent.putExtra(PlaybackService.EXTRA_PLAYABLE, media);
serviceIntent.putExtra(
PlaybackService.EXTRA_START_WHEN_PREPARED, false);
serviceIntent.putExtra(
PlaybackService.EXTRA_PREPARE_IMMEDIATELY, false);
- boolean fileExists = media.fileExists();
+ boolean fileExists = media.localFileAvailable();
boolean lastIsStream = PlaybackPreferences.isLastIsStream();
- if (!fileExists && !lastIsStream) {
+ if (!fileExists && !lastIsStream && media instanceof FeedMedia) {
FeedManager.getInstance().notifyMissingFeedMediaFile(
- activity, media);
+ activity, (FeedMedia) media);
}
serviceIntent.putExtra(PlaybackService.EXTRA_SHOULD_STREAM,
lastIsStream || !fileExists);
@@ -585,7 +584,7 @@ public abstract class PlaybackController {
}
}
- public FeedMedia getMedia() {
+ public Playable getMedia() {
return media;
}