summaryrefslogtreecommitdiff
path: root/core/src/main/java/de
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2021-03-04 22:46:11 +0100
committerByteHamster <info@bytehamster.com>2021-03-04 22:58:13 +0100
commitcfa873af6db0445978db6439c47ed6c565952b91 (patch)
treec3a3063383d356cc5c0f7a9fdaaa01261fc5f617 /core/src/main/java/de
parent0a6855ac9e5d21339d825233645b0b06b5a88a07 (diff)
downloadAntennaPod-cfa873af6db0445978db6439c47ed6c565952b91.zip
Removed ShownotesProvider interface
Diffstat (limited to 'core/src/main/java/de')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java15
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java19
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/ShownotesProvider.java16
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/Playable.java10
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/RemoteMedia.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java30
6 files changed, 26 insertions, 69 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 133caaebd..d6926385e 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
@@ -13,19 +13,16 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
-import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
-import de.danoeh.antennapod.core.util.ShownotesProvider;
/**
* Item (episode) within a feed.
*
* @author daniel
*/
-public class FeedItem extends FeedComponent implements ShownotesProvider, Serializable {
+public class FeedItem extends FeedComponent implements Serializable {
/** tag that indicates this item is in the queue */
public static final String TAG_QUEUE = "Queue";
@@ -352,16 +349,6 @@ public class FeedItem extends FeedComponent implements ShownotesProvider, Serial
return media != null && media.isPlaying();
}
- @Override
- public Callable<String> loadShownotes() {
- return () -> {
- if (description == null) {
- DBReader.loadDescriptionOfFeedItem(FeedItem.this);
- }
- return description;
- };
- }
-
public String getImageLocation() {
if (imageUrl != null) {
return imageUrl;
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 34c9b8ca7..3070f882c 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
@@ -14,7 +14,6 @@ import android.support.v4.media.MediaDescriptionCompat;
import java.util.Date;
import java.util.List;
-import java.util.concurrent.Callable;
import de.danoeh.antennapod.core.preferences.GpodnetPreferences;
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
@@ -286,6 +285,14 @@ public class FeedMedia extends FeedFile implements Playable {
this.size = size;
}
+ @Override
+ public String getDescription() {
+ if (item != null) {
+ return item.getDescription();
+ }
+ return null;
+ }
+
/**
* Indicates we asked the service what the size was, but didn't
* get a valid answer and we shoudln't check using the network again.
@@ -529,16 +536,6 @@ public class FeedMedia extends FeedFile implements Playable {
}
}
- @Override
- public Callable<String> loadShownotes() {
- return () -> {
- if (item == null) {
- item = DBReader.getFeedItem(itemID);
- }
- return item.loadShownotes().call();
- };
- }
-
public static final Parcelable.Creator<FeedMedia> CREATOR = new Parcelable.Creator<FeedMedia>() {
public FeedMedia createFromParcel(Parcel in) {
final long id = in.readLong();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/ShownotesProvider.java b/core/src/main/java/de/danoeh/antennapod/core/util/ShownotesProvider.java
deleted file mode 100644
index a4cd83f70..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/ShownotesProvider.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package de.danoeh.antennapod.core.util;
-
-import java.util.concurrent.Callable;
-
-/**
- * Created by daniel on 04.08.13.
- */
-public interface ShownotesProvider {
- /**
- * Loads shownotes. If the shownotes have to be loaded from a file or from a
- * database, it should be done in a separate thread. After the shownotes
- * have been loaded, callback.onShownotesLoaded should be called.
- */
- Callable<String> loadShownotes();
-
-}
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 f103b32bf..feba6db1c 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
@@ -7,14 +7,13 @@ import android.os.Parcelable;
import androidx.annotation.Nullable;
import de.danoeh.antennapod.core.feed.Chapter;
import de.danoeh.antennapod.core.feed.MediaType;
-import de.danoeh.antennapod.core.util.ShownotesProvider;
import java.util.Date;
import java.util.List;
/**
* Interface for objects that can be played by the PlaybackService.
*/
-public interface Playable extends Parcelable, ShownotesProvider {
+public interface Playable extends Parcelable {
public static final int INVALID_TIME = -1;
/**
@@ -83,6 +82,13 @@ public interface Playable extends Parcelable, ShownotesProvider {
long getLastPlayedTime();
/**
+ * Returns the description of the item, if available.
+ * For FeedItems, the description needs to be loaded from the database first.
+ */
+ @Nullable
+ String getDescription();
+
+ /**
* Returns the type of media. This method should return the correct value
* BEFORE loadMetadata() is called.
*/
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 219edd2e7..926eaa315 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
@@ -13,7 +13,6 @@ import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.feed.MediaType;
import java.util.Date;
import java.util.List;
-import java.util.concurrent.Callable;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
@@ -260,8 +259,8 @@ public class RemoteMedia implements Playable {
}
@Override
- public Callable<String> loadShownotes() {
- return () -> (notes != null) ? notes : "";
+ public String getDescription() {
+ return notes;
}
@Override
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java
index 40849a262..e125c7e66 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java
@@ -9,7 +9,7 @@ import android.text.TextUtils;
import android.util.Log;
import android.util.TypedValue;
-import de.danoeh.antennapod.core.feed.FeedItem;
+import androidx.annotation.Nullable;
import org.apache.commons.io.IOUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
@@ -24,7 +24,6 @@ import java.util.regex.Pattern;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.util.Converter;
-import de.danoeh.antennapod.core.util.ShownotesProvider;
/**
* Connects chapter information and shownotes of a shownotesProvider, for example by making it possible to use the
@@ -42,17 +41,16 @@ public class Timeline {
private static final Pattern TIMECODE_REGEX = Pattern.compile("\\b((\\d+):)?(\\d+):(\\d{2})\\b");
private static final Pattern LINE_BREAK_REGEX = Pattern.compile("<br */?>");
- private final ShownotesProvider shownotesProvider;
+ private final String rawShownotes;
private final String noShownotesLabel;
+ private final int playableDuration;
private final String webviewStyle;
- public Timeline(Context context, ShownotesProvider shownotesProvider) {
- if (shownotesProvider == null) {
- throw new IllegalArgumentException("shownotesProvider = null");
- }
- this.shownotesProvider = shownotesProvider;
+ public Timeline(Context context, @Nullable String rawShownotes, int playableDuration) {
+ this.rawShownotes = rawShownotes;
noShownotesLabel = context.getString(R.string.no_shownotes_label);
+ this.playableDuration = playableDuration;
final String colorPrimary = colorToHtml(context, android.R.attr.textColorPrimary);
final String colorAccent = colorToHtml(context, R.attr.colorAccent);
final int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8,
@@ -87,13 +85,7 @@ public class Timeline {
*/
@NonNull
public String processShownotes() {
- String shownotes;
- try {
- shownotes = shownotesProvider.loadShownotes().call();
- } catch (Exception e) {
- Log.e(TAG, "processShownotes() - encounters exceptions unexpectedly in load, treat as if no shownotes.", e);
- shownotes = "";
- }
+ String shownotes = rawShownotes;
if (TextUtils.isEmpty(shownotes)) {
Log.d(TAG, "shownotesProvider contained no shownotes. Returning 'no shownotes' message");
@@ -147,14 +139,6 @@ public class Timeline {
// No elements with timecodes
return;
}
-
- int playableDuration = Integer.MAX_VALUE;
- if (shownotesProvider instanceof Playable) {
- playableDuration = ((Playable) shownotesProvider).getDuration();
- } else if (shownotesProvider instanceof FeedItem && ((FeedItem) shownotesProvider).getMedia() != null) {
- playableDuration = ((FeedItem) shownotesProvider).getMedia().getDuration();
- }
-
boolean useHourFormat = true;
if (playableDuration != Integer.MAX_VALUE) {