Search in sources :

Example 16 with Feed

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

the class DownloadService method enqueueAll.

private void enqueueAll(Intent intent) {
    boolean initiatedByUser = intent.getBooleanExtra(EXTRA_INITIATED_BY_USER, false);
    List<Feed> feeds = DBReader.getFeedList();
    for (Feed feed : feeds) {
        if (feed.getPreferences().getKeepUpdated()) {
            DownloadRequest.Builder builder = DownloadRequestCreator.create(feed);
            builder.setInitiatedByUser(initiatedByUser);
            addNewRequest(builder.build());
        }
    }
    postDownloaders();
    stopServiceIfEverythingDone();
}
Also used : Feed(de.danoeh.antennapod.model.feed.Feed)

Example 17 with Feed

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

the class DownloadService method performLocalFeedRefresh.

/**
 * This method MUST NOT, in any case, throw an exception.
 * Otherwise, it hangs up the refresh thread pool.
 */
private void performLocalFeedRefresh(Downloader downloader, DownloadRequest request) {
    try {
        Feed feed = DBReader.getFeed(request.getFeedfileId());
        LocalFeedUpdater.updateFeed(feed, DownloadService.this);
    } catch (Exception e) {
        e.printStackTrace();
    }
    downloadEnqueueExecutor.submit(() -> {
        downloads.remove(downloader);
        stopServiceIfEverythingDone();
    });
}
Also used : IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException) Feed(de.danoeh.antennapod.model.feed.Feed)

Example 18 with Feed

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

the class DbCleanupTests method testPerformAutoCleanupHandleUnplayed.

@Test
public void testPerformAutoCleanupHandleUnplayed() 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<>();
    populateItems(numItems, feed, items, files, FeedItem.UNPLAYED, false, false);
    DBTasks.performAutoCleanup(context);
    for (File file : files) {
        assertTrue(file.exists());
    }
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) ArrayList(java.util.ArrayList) File(java.io.File) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 19 with Feed

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

the class DbCleanupTests method testPerformAutoCleanupShouldDelete.

@Test
public void testPerformAutoCleanupShouldDelete() 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<>();
    populateItems(numItems, feed, items, files, FeedItem.PLAYED, false, false);
    DBTasks.performAutoCleanup(context);
    for (int i = 0; i < files.size(); i++) {
        if (i < EPISODE_CACHE_SIZE) {
            assertTrue(files.get(i).exists());
        } else {
            assertFalse(files.get(i).exists());
        }
    }
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) ArrayList(java.util.ArrayList) File(java.io.File) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 20 with Feed

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

the class DbCleanupTests method testPerformAutoCleanupShouldNotDeleteBecauseInQueue.

@Test
public void testPerformAutoCleanupShouldNotDeleteBecauseInQueue() 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<>();
    populateItems(numItems, feed, items, files, FeedItem.PLAYED, true, false);
    DBTasks.performAutoCleanup(context);
    for (File file : files) {
        assertTrue(file.exists());
    }
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) ArrayList(java.util.ArrayList) File(java.io.File) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

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