Search in sources :

Example 91 with Feed

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

the class SPAReceiver method onReceive.

@Override
public void onReceive(Context context, Intent intent) {
    if (!TextUtils.equals(intent.getAction(), ACTION_SP_APPS_QUERY_FEEDS_REPSONSE)) {
        return;
    }
    Log.d(TAG, "Received SP_APPS_QUERY_RESPONSE");
    if (!intent.hasExtra(ACTION_SP_APPS_QUERY_FEEDS_REPSONSE_FEEDS_EXTRA)) {
        Log.e(TAG, "Received invalid SP_APPS_QUERY_RESPONSE: Contains no extra");
        return;
    }
    String[] feedUrls = intent.getStringArrayExtra(ACTION_SP_APPS_QUERY_FEEDS_REPSONSE_FEEDS_EXTRA);
    if (feedUrls == null) {
        Log.e(TAG, "Received invalid SP_APPS_QUERY_REPSONSE: extra was null");
        return;
    }
    Log.d(TAG, "Received feeds list: " + Arrays.toString(feedUrls));
    ClientConfig.initialize(context);
    for (String url : feedUrls) {
        Feed f = new Feed(url, null);
        DownloadService.download(context, false, DownloadRequestCreator.create(f).build());
    }
    Toast.makeText(context, R.string.sp_apps_importing_feeds_msg, Toast.LENGTH_LONG).show();
}
Also used : Feed(de.danoeh.antennapod.model.feed.Feed)

Example 92 with Feed

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

the class FeedMultiSelectActionHandler method editFeedPrefTags.

private void editFeedPrefTags() {
    ArrayList<FeedPreferences> preferencesList = new ArrayList<>();
    for (Feed feed : selectedItems) {
        preferencesList.add(feed.getPreferences());
    }
    TagSettingsDialog.newInstance(preferencesList).show(activity.getSupportFragmentManager(), TagSettingsDialog.TAG);
}
Also used : FeedPreferences(de.danoeh.antennapod.model.feed.FeedPreferences) ArrayList(java.util.ArrayList) Feed(de.danoeh.antennapod.model.feed.Feed)

Example 93 with Feed

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

the class DbWriterTest method testDeleteFeedMediaOfItemRemoveFromQueue.

@Test
public void testDeleteFeedMediaOfItemRemoveFromQueue() throws Exception {
    assertTrue(UserPreferences.shouldDeleteRemoveFromQueue());
    File dest = new File(context.getExternalFilesDir(TEST_FOLDER), "testFile");
    assertTrue(dest.createNewFile());
    Feed feed = new Feed("url", null, "title");
    List<FeedItem> items = new ArrayList<>();
    feed.setItems(items);
    FeedItem item = new FeedItem(0, "Item", "Item", "url", new Date(), FeedItem.UNPLAYED, feed);
    FeedMedia media = new FeedMedia(0, item, 1, 1, 1, "mime_type", dest.getAbsolutePath(), "download_url", true, null, 0, 0);
    item.setMedia(media);
    items.add(item);
    List<FeedItem> queue = new ArrayList<>();
    queue.add(item);
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.setQueue(queue);
    adapter.close();
    assertTrue(media.getId() != 0);
    assertTrue(item.getId() != 0);
    queue = DBReader.getQueue();
    assertTrue(queue.size() != 0);
    DBWriter.deleteFeedMediaOfItem(context, media.getId());
    Awaitility.await().timeout(2, TimeUnit.SECONDS).until(() -> !dest.exists());
    media = DBReader.getFeedMedia(media.getId());
    assertNotNull(media);
    assertFalse(dest.exists());
    assertFalse(media.isDownloaded());
    assertNull(media.getFile_url());
    Awaitility.await().timeout(2, TimeUnit.SECONDS).until(() -> DBReader.getQueue().isEmpty());
}
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 94 with Feed

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

the class DbWriterTest method testDeleteFeedWithQueueItems.

@Test
public void testDeleteFeedWithQueueItems() throws Exception {
    File destFolder = context.getExternalFilesDir(TEST_FOLDER);
    assertNotNull(destFolder);
    Feed feed = new Feed("url", null, "title");
    feed.setItems(new ArrayList<>());
    feed.setImageUrl("url");
    // create items with downloaded media files
    for (int i = 0; i < 10; i++) {
        FeedItem item = new FeedItem(0, "Item " + i, "Item" + i, "url", new Date(), FeedItem.PLAYED, feed);
        feed.getItems().add(item);
        File enc = new File(destFolder, "file " + i);
        FeedMedia media = new FeedMedia(0, item, 1, 1, 1, "mime_type", enc.getAbsolutePath(), "download_url", false, null, 0, 0);
        item.setMedia(media);
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    assertTrue(feed.getId() != 0);
    for (FeedItem item : feed.getItems()) {
        assertTrue(item.getId() != 0);
        assertTrue(item.getMedia().getId() != 0);
    }
    List<FeedItem> queue = new ArrayList<>(feed.getItems());
    adapter.open();
    adapter.setQueue(queue);
    Cursor queueCursor = adapter.getQueueIDCursor();
    assertEquals(queue.size(), queueCursor.getCount());
    queueCursor.close();
    adapter.close();
    DBWriter.deleteFeed(context, feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
    adapter.open();
    Cursor c = adapter.getFeedCursor(feed.getId());
    assertEquals(0, c.getCount());
    c.close();
    for (FeedItem item : feed.getItems()) {
        c = adapter.getFeedItemCursor(String.valueOf(item.getId()));
        assertEquals(0, c.getCount());
        c.close();
        c = adapter.getSingleFeedMediaCursor(item.getMedia().getId());
        assertEquals(0, c.getCount());
        c.close();
    }
    c = adapter.getQueueCursor();
    assertEquals(0, c.getCount());
    c.close();
    adapter.close();
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) FeedMedia(de.danoeh.antennapod.model.feed.FeedMedia) ArrayList(java.util.ArrayList) Cursor(android.database.Cursor) File(java.io.File) Date(java.util.Date) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 95 with Feed

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

the class DbWriterTest method testMoveQueueItem.

@Test
public void testMoveQueueItem() throws Exception {
    final int numItems = 10;
    Feed feed = new Feed("url", null, "title");
    feed.setItems(new ArrayList<>());
    for (int i = 0; i < numItems; i++) {
        FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), FeedItem.PLAYED, feed);
        feed.getItems().add(item);
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    for (FeedItem item : feed.getItems()) {
        assertTrue(item.getId() != 0);
    }
    for (int from = 0; from < numItems; from++) {
        for (int to = 0; to < numItems; to++) {
            if (from == to) {
                continue;
            }
            Log.d(TAG, String.format(Locale.US, "testMoveQueueItem: From=%d, To=%d", from, to));
            final long fromID = feed.getItems().get(from).getId();
            adapter = PodDBAdapter.getInstance();
            adapter.open();
            adapter.setQueue(feed.getItems());
            adapter.close();
            DBWriter.moveQueueItem(from, to, false).get(TIMEOUT, TimeUnit.SECONDS);
            adapter = PodDBAdapter.getInstance();
            adapter.open();
            Cursor queue = adapter.getQueueIDCursor();
            assertEquals(numItems, queue.getCount());
            assertTrue(queue.moveToPosition(from));
            assertNotEquals(fromID, queue.getLong(0));
            assertTrue(queue.moveToPosition(to));
            assertEquals(fromID, queue.getLong(0));
            queue.close();
            adapter.close();
        }
    }
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) Cursor(android.database.Cursor) Date(java.util.Date) 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