Search in sources :

Example 46 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class FeedItemlistFragment method loadData.

@Nullable
private Feed loadData() {
    Feed feed = DBReader.getFeed(feedID, true);
    if (feed == null) {
        return null;
    }
    DBReader.loadAdditionalFeedItemListData(feed.getItems());
    if (feed.getSortOrder() != null) {
        List<FeedItem> feedItems = feed.getItems();
        FeedItemPermutors.getPermutor(feed.getSortOrder()).reorder(feedItems);
        feed.setItems(feedItems);
    }
    return feed;
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) Feed(de.danoeh.antennapod.model.feed.Feed) Nullable(androidx.annotation.Nullable)

Example 47 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class DbNullCleanupAlgorithmTest method testPerformAutoCleanupShouldNotDelete.

/**
 * A test with no items in the queue, but multiple items downloaded.
 * The null algorithm should never delete any items, even if they're played and not in the queue.
 */
@Test
public void testPerformAutoCleanupShouldNotDelete() throws IOException {
    final int numItems = EPISODE_CACHE_SIZE * 2;
    Feed feed = new Feed("url", null, "title");
    List<FeedItem> items = new ArrayList<>();
    feed.setItems(items);
    List<File> files = new ArrayList<>();
    for (int i = 0; i < numItems; i++) {
        FeedItem item = new FeedItem(0, "title", "id" + i, "link", new Date(), FeedItem.PLAYED, feed);
        File f = new File(destFolder, "file " + i);
        assertTrue(f.createNewFile());
        files.add(f);
        item.setMedia(new FeedMedia(0, item, 1, 0, 1L, "m", f.getAbsolutePath(), "url", true, new Date(numItems - i), 0, 0));
        items.add(item);
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    assertTrue(feed.getId() != 0);
    for (FeedItem item : items) {
        assertTrue(item.getId() != 0);
        // noinspection ConstantConditions
        assertTrue(item.getMedia().getId() != 0);
    }
    DBTasks.performAutoCleanup(context);
    for (int i = 0; i < files.size(); i++) {
        assertTrue(files.get(i).exists());
    }
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) FeedMedia(de.danoeh.antennapod.model.feed.FeedMedia) ArrayList(java.util.ArrayList) File(java.io.File) Date(java.util.Date) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 48 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class DbReaderTest method testGetNavDrawerDataQueueNotEmptyWithUnreadItems.

@Test
public void testGetNavDrawerDataQueueNotEmptyWithUnreadItems() {
    final int numFeeds = 10;
    final int numItems = 10;
    final int numQueue = 1;
    final int numNew = 2;
    List<Feed> feeds = DbTestUtils.saveFeedlist(numFeeds, numItems, true);
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    for (int i = 0; i < numNew; i++) {
        FeedItem item = feeds.get(0).getItems().get(i);
        item.setNew();
        adapter.setSingleFeedItem(item);
    }
    List<FeedItem> queue = new ArrayList<>();
    for (int i = 0; i < numQueue; i++) {
        FeedItem item = feeds.get(1).getItems().get(i);
        queue.add(item);
    }
    adapter.setQueue(queue);
    adapter.close();
    NavDrawerData navDrawerData = DBReader.getNavDrawerData();
    assertEquals(numFeeds, navDrawerData.items.size());
    assertEquals(numNew, navDrawerData.numNewItems);
    assertEquals(numQueue, navDrawerData.queueSize);
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) ArrayList(java.util.ArrayList) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 49 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class DbReaderTest method testGetPlaybackHistory.

@Test
public void testGetPlaybackHistory() {
    final int numItems = (DBReader.PLAYBACK_HISTORY_SIZE + 1) * 2;
    final int playedItems = DBReader.PLAYBACK_HISTORY_SIZE + 1;
    final int numReturnedItems = Math.min(playedItems, DBReader.PLAYBACK_HISTORY_SIZE);
    final int numFeeds = 1;
    Feed feed = DbTestUtils.saveFeedlist(numFeeds, numItems, true).get(0);
    long[] ids = new long[playedItems];
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    for (int i = 0; i < playedItems; i++) {
        FeedMedia m = feed.getItems().get(i).getMedia();
        m.setPlaybackCompletionDate(new Date(i + 1));
        adapter.setFeedMediaPlaybackCompletionDate(m);
        ids[ids.length - 1 - i] = m.getItem().getId();
    }
    adapter.close();
    List<FeedItem> saved = DBReader.getPlaybackHistory();
    assertNotNull(saved);
    assertEquals("Wrong size: ", numReturnedItems, saved.size());
    for (int i = 0; i < numReturnedItems; i++) {
        FeedItem item = saved.get(i);
        assertNotNull(item.getMedia().getPlaybackCompletionDate());
        assertEquals("Wrong sort order: ", item.getId(), ids[i]);
    }
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) FeedMedia(de.danoeh.antennapod.model.feed.FeedMedia) Date(java.util.Date) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 50 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class DbReaderTest method saveNewItems.

@SuppressWarnings("SameParameterValue")
private List<FeedItem> saveNewItems(int numItems) {
    List<Feed> feeds = saveFeedlist(numItems, numItems, true);
    List<FeedItem> items = new ArrayList<>();
    for (Feed f : feeds) {
        items.addAll(f.getItems());
    }
    List<FeedItem> newItems = new ArrayList<>();
    Random random = new Random();
    while (newItems.size() < numItems) {
        int i = random.nextInt(numItems);
        if (!newItems.contains(items.get(i))) {
            FeedItem item = items.get(i);
            item.setNew();
            newItems.add(item);
        }
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.storeFeedItemlist(newItems);
    adapter.close();
    return newItems;
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) Random(java.util.Random) ArrayList(java.util.ArrayList) Feed(de.danoeh.antennapod.model.feed.Feed)

Aggregations

Feed (de.danoeh.antennapod.model.feed.Feed)125 FeedItem (de.danoeh.antennapod.model.feed.FeedItem)75 Test (org.junit.Test)61 ArrayList (java.util.ArrayList)43 Date (java.util.Date)37 File (java.io.File)31 FeedMedia (de.danoeh.antennapod.model.feed.FeedMedia)27 Cursor (android.database.Cursor)15 FeedPreferences (de.danoeh.antennapod.model.feed.FeedPreferences)12 NonNull (androidx.annotation.NonNull)10 Nullable (androidx.annotation.Nullable)8 View (android.view.View)7 DownloadStatus (de.danoeh.antennapod.core.service.download.DownloadStatus)7 Log (android.util.Log)6 R (de.danoeh.antennapod.R)6 DownloadRequest (de.danoeh.antennapod.core.service.download.DownloadRequest)6 List (java.util.List)6 ViewGroup (android.view.ViewGroup)5 AlertDialog (androidx.appcompat.app.AlertDialog)5 RequestOptions (com.bumptech.glide.request.RequestOptions)5