summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java19
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedEvent.java32
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java56
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/ChapterUtils.java9
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/comparator/ChapterStartTimeComparator.java14
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/comparator/DownloadResultComparator.java14
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/comparator/PlaybackCompletionDateComparator.java19
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java5
10 files changed, 19 insertions, 159 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java b/core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java
deleted file mode 100644
index 5ab5decf9..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/event/DownloadLogEvent.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.danoeh.antennapod.core.event;
-
-import androidx.annotation.NonNull;
-
-public class DownloadLogEvent {
-
- private DownloadLogEvent() {
- }
-
- public static DownloadLogEvent listUpdated() {
- return new DownloadLogEvent();
- }
-
- @NonNull
- @Override
- public String toString() {
- return "DownloadLogEvent";
- }
-}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedEvent.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedEvent.java
deleted file mode 100644
index 044554451..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedEvent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package de.danoeh.antennapod.core.feed;
-
-import androidx.annotation.NonNull;
-
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-public class FeedEvent {
-
- public enum Action {
- FILTER_CHANGED,
- SORT_ORDER_CHANGED
- }
-
- private final Action action;
- public final long feedId;
-
- public FeedEvent(Action action, long feedId) {
- this.action = action;
- this.feedId = feedId;
- }
-
- @NonNull
- @Override
- public String toString() {
- return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
- .append("action", action)
- .append("feedId", feedId)
- .toString();
- }
-
-}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
index 16c12bdd5..5e64fb1a1 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
@@ -16,8 +16,6 @@ import java.util.Map;
import de.danoeh.antennapod.core.util.FeedItemPermutors;
import de.danoeh.antennapod.core.util.LongList;
-import de.danoeh.antennapod.core.util.comparator.DownloadResultComparator;
-import de.danoeh.antennapod.core.util.comparator.PlaybackCompletionDateComparator;
import de.danoeh.antennapod.model.feed.Chapter;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedItem;
@@ -342,57 +340,6 @@ public final class DBReader {
}
/**
- * Loads the playback history from the database. A FeedItem is in the playback history if playback of the correpsonding episode
- * has been completed at least once.
- *
- * @param limit The maximum number of items to return.
- *
- * @return The playback history. The FeedItems are sorted by their media's playbackCompletionDate in descending order.
- */
- @NonNull
- public static List<FeedItem> getPlaybackHistory(int offset, int limit) {
- Log.d(TAG, "getPlaybackHistory() called");
-
- PodDBAdapter adapter = PodDBAdapter.getInstance();
- adapter.open();
-
- Cursor mediaCursor = null;
- Cursor itemCursor = null;
- try {
- mediaCursor = adapter.getCompletedMediaCursor(offset, limit);
- String[] itemIds = new String[mediaCursor.getCount()];
- for (int i = 0; i < itemIds.length && mediaCursor.moveToPosition(i); i++) {
- int index = mediaCursor.getColumnIndex(PodDBAdapter.KEY_FEEDITEM);
- itemIds[i] = Long.toString(mediaCursor.getLong(index));
- }
- itemCursor = adapter.getFeedItemCursor(itemIds);
- List<FeedItem> items = extractItemlistFromCursor(adapter, itemCursor);
- loadAdditionalFeedItemListData(items);
- Collections.sort(items, new PlaybackCompletionDateComparator());
- return items;
- } finally {
- if (mediaCursor != null) {
- mediaCursor.close();
- }
- if (itemCursor != null) {
- itemCursor.close();
- }
- adapter.close();
- }
- }
-
- public static long getPlaybackHistoryLength() {
- PodDBAdapter adapter = PodDBAdapter.getInstance();
- adapter.open();
-
- try {
- return adapter.getCompletedMediaLength();
- } finally {
- adapter.close();
- }
- }
-
- /**
* Loads the download log from the database.
*
* @return A list with DownloadStatus objects that represent the download log.
@@ -408,7 +355,6 @@ public final class DBReader {
while (cursor.moveToNext()) {
downloadLog.add(DownloadResultCursorMapper.convert(cursor));
}
- Collections.sort(downloadLog, new DownloadResultComparator());
return downloadLog;
} finally {
adapter.close();
@@ -432,7 +378,6 @@ public final class DBReader {
while (cursor.moveToNext()) {
downloadLog.add(DownloadResultCursorMapper.convert(cursor));
}
- Collections.sort(downloadLog, new DownloadResultComparator());
return downloadLog;
} finally {
adapter.close();
@@ -691,7 +636,6 @@ public final class DBReader {
try (Cursor itemCursor = adapter.getFeedItemCursorByUrl(urls)) {
List<FeedItem> items = extractItemlistFromCursor(adapter, itemCursor);
loadAdditionalFeedItemListData(items);
- Collections.sort(items, new PlaybackCompletionDateComparator());
return items;
} finally {
adapter.close();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
index 389f2bf5a..811dbfe5a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
@@ -12,7 +12,7 @@ import androidx.documentfile.provider.DocumentFile;
import com.google.common.util.concurrent.Futures;
-import de.danoeh.antennapod.core.event.DownloadLogEvent;
+import de.danoeh.antennapod.event.DownloadLogEvent;
import de.danoeh.antennapod.core.feed.LocalFeedUpdater;
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
import de.danoeh.antennapod.core.service.playback.PlaybackServiceInterface;
@@ -39,7 +39,7 @@ import de.danoeh.antennapod.event.MessageEvent;
import de.danoeh.antennapod.event.playback.PlaybackHistoryEvent;
import de.danoeh.antennapod.event.QueueEvent;
import de.danoeh.antennapod.event.UnreadItemsUpdateEvent;
-import de.danoeh.antennapod.core.feed.FeedEvent;
+import de.danoeh.antennapod.event.FeedEvent;
import de.danoeh.antennapod.storage.preferences.PlaybackPreferences;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.model.download.DownloadResult;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/ChapterUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/ChapterUtils.java
index c32d71005..c058d47fe 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/ChapterUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/ChapterUtils.java
@@ -11,7 +11,6 @@ import de.danoeh.antennapod.core.feed.ChapterMerger;
import de.danoeh.antennapod.model.feed.FeedMedia;
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
import de.danoeh.antennapod.core.storage.DBReader;
-import de.danoeh.antennapod.core.util.comparator.ChapterStartTimeComparator;
import de.danoeh.antennapod.parser.feed.PodcastIndexChapterParser;
import de.danoeh.antennapod.parser.media.id3.ChapterReader;
import de.danoeh.antennapod.parser.media.id3.ID3ReaderException;
@@ -30,6 +29,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InterruptedIOException;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
/**
@@ -232,4 +232,11 @@ public class ChapterUtils {
}
return true;
}
+
+ public static class ChapterStartTimeComparator implements Comparator<Chapter> {
+ @Override
+ public int compare(Chapter lhs, Chapter rhs) {
+ return Long.compare(lhs.getStart(), rhs.getStart());
+ }
+ }
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java b/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java
index ec9c9e55e..4e39681f4 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemPermutors.java
@@ -78,6 +78,12 @@ public class FeedItemPermutors {
case SIZE_LARGE_SMALL:
comparator = (f1, f2) -> Long.compare(size(f2), size(f1));
break;
+ case COMPLETION_DATE_NEW_OLD:
+ comparator = (f1, f2) -> f2.getMedia().getPlaybackCompletionDate()
+ .compareTo(f1.getMedia().getPlaybackCompletionDate());
+ break;
+ default:
+ throw new IllegalArgumentException("Permutor not implemented");
}
if (comparator != null) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/ChapterStartTimeComparator.java b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/ChapterStartTimeComparator.java
deleted file mode 100644
index 0f75d1237..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/ChapterStartTimeComparator.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package de.danoeh.antennapod.core.util.comparator;
-
-import java.util.Comparator;
-
-import de.danoeh.antennapod.model.feed.Chapter;
-
-public class ChapterStartTimeComparator implements Comparator<Chapter> {
-
- @Override
- public int compare(Chapter lhs, Chapter rhs) {
- return Long.compare(lhs.getStart(), rhs.getStart());
- }
-
-}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/DownloadResultComparator.java b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/DownloadResultComparator.java
deleted file mode 100644
index d1d50fc8a..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/DownloadResultComparator.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package de.danoeh.antennapod.core.util.comparator;
-
-import java.util.Comparator;
-
-import de.danoeh.antennapod.model.download.DownloadResult;
-
-/** Compares the completion date of two DownloadResult objects. */
-public class DownloadResultComparator implements Comparator<DownloadResult> {
-
- @Override
- public int compare(DownloadResult lhs, DownloadResult rhs) {
- return rhs.getCompletionDate().compareTo(lhs.getCompletionDate());
- }
-}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/PlaybackCompletionDateComparator.java b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/PlaybackCompletionDateComparator.java
deleted file mode 100644
index 26c3a74c4..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/PlaybackCompletionDateComparator.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.danoeh.antennapod.core.util.comparator;
-
-import java.util.Comparator;
-
-import de.danoeh.antennapod.model.feed.FeedItem;
-
-public class PlaybackCompletionDateComparator implements Comparator<FeedItem> {
-
- public int compare(FeedItem lhs, FeedItem rhs) {
- if (lhs.getMedia() != null
- && lhs.getMedia().getPlaybackCompletionDate() != null
- && rhs.getMedia() != null
- && rhs.getMedia().getPlaybackCompletionDate() != null) {
- return rhs.getMedia().getPlaybackCompletionDate()
- .compareTo(lhs.getMedia().getPlaybackCompletionDate());
- }
- return 0;
- }
-}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java
index 54b4e507c..dee918239 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java
@@ -320,7 +320,7 @@ public class DbReaderTest {
}
adapter.close();
- long len = DBReader.getPlaybackHistoryLength();
+ long len = DBReader.getTotalEpisodeCount(new FeedItemFilter(FeedItemFilter.IS_IN_HISTORY));
assertEquals("Wrong size: ", (int) len, playedItems);
}
@@ -500,7 +500,8 @@ public class DbReaderTest {
}
adapter.close();
- List<FeedItem> saved = DBReader.getPlaybackHistory(paramOffset, paramLimit);
+ List<FeedItem> saved = DBReader.getEpisodes(paramOffset, paramLimit,
+ new FeedItemFilter(FeedItemFilter.IS_IN_HISTORY), SortOrder.COMPLETION_DATE_NEW_OLD);
assertNotNull(saved);
assertEquals(String.format("Wrong size with offset %d and limit %d: ",
paramOffset, paramLimit),