diff options
author | ByteHamster <info@bytehamster.com> | 2021-03-05 17:44:33 +0100 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2021-03-05 17:44:33 +0100 |
commit | bc073ff38fc9f21998811504d0c0cd15ffb39c5e (patch) | |
tree | 7cfb40248cc20eb0a0bd55d0b704052448337128 /core/src/main/java/de/danoeh/antennapod | |
parent | dd0502c0d65ef51347a8dedabd6edf2b9318848c (diff) | |
download | AntennaPod-bc073ff38fc9f21998811504d0c0cd15ffb39c5e.zip |
Removed metadata loader from model
Diffstat (limited to 'core/src/main/java/de/danoeh/antennapod')
6 files changed, 9 insertions, 78 deletions
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 3070f882c..06bc592e4 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 @@ -19,13 +19,11 @@ import de.danoeh.antennapod.core.preferences.GpodnetPreferences; import de.danoeh.antennapod.core.preferences.PlaybackPreferences; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.service.playback.PlaybackService; -import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.PodDBAdapter; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.sync.SyncService; import de.danoeh.antennapod.core.sync.model.EpisodeAction; -import de.danoeh.antennapod.core.util.playback.PlayableException; public class FeedMedia extends FeedFile implements Playable { private static final String TAG = "FeedMedia"; @@ -384,13 +382,6 @@ public class FeedMedia extends FeedFile implements Playable { } @Override - public void loadMetadata() throws PlayableException { - if (item == null && itemID != 0) { - item = DBReader.getFeedItem(itemID); - } - } - - @Override public String getEpisodeTitle() { if (item == null) { return null; @@ -442,14 +433,6 @@ public class FeedMedia extends FeedFile implements Playable { } @Override - public String getPaymentLink() { - if (item == null) { - return null; - } - return item.getPaymentLink(); - } - - @Override public Date getPubDate() { if (item == null) { return null; @@ -466,11 +449,6 @@ public class FeedMedia extends FeedFile implements Playable { return isDownloaded() && file_url != null; } - @Override - public boolean streamAvailable() { - return download_url != null; - } - public long getItemId() { return itemID; } 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 28d8a0e29..8c874a9e6 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 @@ -14,6 +14,7 @@ import android.view.SurfaceHolder; import androidx.media.AudioAttributesCompat; import androidx.media.AudioFocusRequestCompat; import androidx.media.AudioManagerCompat; +import de.danoeh.antennapod.core.storage.DBReader; import org.antennapod.audio.MediaPlayer; import java.io.File; @@ -38,7 +39,6 @@ import de.danoeh.antennapod.core.util.RewindAfterPauseUtils; import de.danoeh.antennapod.core.util.playback.AudioPlayer; import de.danoeh.antennapod.core.util.playback.IPlayer; import de.danoeh.antennapod.core.util.playback.Playable; -import de.danoeh.antennapod.core.util.playback.PlayableException; import de.danoeh.antennapod.core.util.playback.PlaybackServiceStarter; import de.danoeh.antennapod.core.util.playback.VideoPlayer; @@ -259,7 +259,9 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { LocalPSMP.this.startWhenPrepared.set(startWhenPrepared); setPlayerStatus(PlayerStatus.INITIALIZING, media); try { - media.loadMetadata(); + if (media instanceof FeedMedia && ((FeedMedia) media).getItem() == null) { + ((FeedMedia) media).setItem(DBReader.getFeedItem(((FeedMedia) media).getItemId())); + } callback.onMediaChanged(false); setPlaybackParams(PlaybackSpeedUtils.getCurrentPlaybackSpeed(media), UserPreferences.isSkipSilence()); if (stream) { @@ -289,7 +291,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { onPrepared(startWhenPrepared); } - } catch (PlayableException | IOException | IllegalStateException e) { + } catch (IOException | IllegalStateException e) { e.printStackTrace(); setPlayerStatus(PlayerStatus.ERROR, null); } 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 9430e2e3c..4de63db74 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 @@ -77,7 +77,6 @@ import de.danoeh.antennapod.core.util.IntentUtils; import de.danoeh.antennapod.core.util.NetworkUtils; import de.danoeh.antennapod.core.util.gui.NotificationUtils; import de.danoeh.antennapod.core.util.playback.Playable; -import de.danoeh.antennapod.core.util.playback.PlayableException; import de.danoeh.antennapod.core.util.playback.PlayableUtils; import de.danoeh.antennapod.core.util.playback.PlaybackServiceStarter; import de.danoeh.antennapod.core.widget.WidgetUpdater; @@ -993,11 +992,8 @@ public class PlaybackService extends MediaBrowserServiceCompat { } Log.d(TAG, "getNextInQueue()"); FeedMedia media = (FeedMedia) currentMedia; - try { - media.loadMetadata(); - } catch (PlayableException e) { - Log.e(TAG, "Unable to load metadata to get next in queue", e); - return null; + if (media.getItem() == null) { + media.setItem(DBReader.getFeedItem(media.getItemId())); } FeedItem item = media.getItem(); if (item == null) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java index feba6db1c..683515d6f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java @@ -14,7 +14,7 @@ import java.util.List; * Interface for objects that can be played by the PlaybackService. */ public interface Playable extends Parcelable { - public static final int INVALID_TIME = -1; + int INVALID_TIME = -1; /** * Save information about the playable in a preference so that it can be @@ -25,14 +25,6 @@ public interface Playable extends Parcelable { void writeToPreferences(SharedPreferences.Editor prefEditor); /** - * This method is called from a separate thread by the PlaybackService. - * Playable objects should load their metadata in this method. This method - * should execute as quickly as possible and NOT load chapter marks if no - * local file is available. - */ - void loadMetadata() throws PlayableException; - - /** * Returns the title of the episode that this playable represents */ String getEpisodeTitle(); @@ -47,8 +39,6 @@ public interface Playable extends Parcelable { */ String getWebsiteLink(); - String getPaymentLink(); - /** * Returns the title of the feed this Playable belongs to. */ @@ -89,8 +79,7 @@ public interface Playable extends Parcelable { String getDescription(); /** - * Returns the type of media. This method should return the correct value - * BEFORE loadMetadata() is called. + * Returns the type of media. */ MediaType getMediaType(); @@ -113,12 +102,6 @@ public interface Playable extends Parcelable { boolean localFileAvailable(); /** - * Returns true if a streamable file is available. getStreamUrl MUST return - * a non-null string if this method returns true. - */ - boolean streamAvailable(); - - /** * Saves the current position of this object. Implementations can use the * provided SharedPreference to save this information and retrieve it later * via PlayableUtils.createInstanceFromPreferences. diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlayableException.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlayableException.java deleted file mode 100644 index c0c21d647..000000000 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlayableException.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.danoeh.antennapod.core.util.playback; - -/** - * Exception thrown by {@link Playable} implementations. - */ -public class PlayableException extends Exception { - - private static final long serialVersionUID = 1L; - - public PlayableException(String detailMessage) { - super(detailMessage); - } -} diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java index 926eaa315..9079c870e 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java @@ -122,11 +122,6 @@ public class RemoteMedia implements Playable { } @Override - public void loadMetadata() throws PlayableException { - //Already loaded - } - - @Override public String getEpisodeTitle() { return episodeTitle; } @@ -146,11 +141,6 @@ public class RemoteMedia implements Playable { } @Override - public String getPaymentLink() { - return null; - } - - @Override public String getFeedTitle() { return feedTitle; } @@ -196,11 +186,6 @@ public class RemoteMedia implements Playable { } @Override - public boolean streamAvailable() { - return true; - } - - @Override public void saveCurrentPosition(SharedPreferences pref, int newPosition, long timestamp) { //we're not saving playback information for this kind of items on preferences setPosition(newPosition); |