Search in sources :

Example 1 with Feed

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

the class SubscriptionFragment method onContextItemSelected.

@Override
public boolean onContextItemSelected(MenuItem item) {
    NavDrawerData.DrawerItem drawerItem = subscriptionAdapter.getSelectedItem();
    if (drawerItem == null) {
        return false;
    }
    int itemId = item.getItemId();
    if (drawerItem.type == NavDrawerData.DrawerItem.Type.TAG && itemId == R.id.rename_folder_item) {
        new RenameItemDialog(getActivity(), drawerItem).show();
        return true;
    }
    Feed feed = ((NavDrawerData.FeedDrawerItem) drawerItem).feed;
    if (itemId == R.id.remove_all_new_flags_item) {
        displayConfirmationDialog(R.string.remove_all_new_flags_label, R.string.remove_all_new_flags_confirmation_msg, () -> DBWriter.removeFeedNewFlag(feed.getId()));
        return true;
    } else if (itemId == R.id.edit_tags) {
        TagSettingsDialog.newInstance(Collections.singletonList(feed.getPreferences())).show(getChildFragmentManager(), TagSettingsDialog.TAG);
        return true;
    } else if (itemId == R.id.rename_item) {
        new RenameItemDialog(getActivity(), feed).show();
        return true;
    } else if (itemId == R.id.remove_feed) {
        RemoveFeedDialog.show(getContext(), feed);
        return true;
    } else if (itemId == R.id.multi_select) {
        speedDialView.setVisibility(View.VISIBLE);
        return subscriptionAdapter.onContextItemSelected(item);
    }
    return super.onContextItemSelected(item);
}
Also used : RenameItemDialog(de.danoeh.antennapod.dialog.RenameItemDialog) NavDrawerData(de.danoeh.antennapod.core.storage.NavDrawerData) SuppressLint(android.annotation.SuppressLint) Feed(de.danoeh.antennapod.model.feed.Feed)

Example 2 with Feed

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

the class FeedMultiSelectActionHandler method saveFeedPreferences.

private void saveFeedPreferences(Consumer<FeedPreferences> preferencesConsumer) {
    for (Feed feed : selectedItems) {
        preferencesConsumer.accept(feed.getPreferences());
        DBWriter.setFeedPreferences(feed.getPreferences());
    }
    showMessage(R.plurals.updated_feeds_batch_label, selectedItems.size());
}
Also used : Feed(de.danoeh.antennapod.model.feed.Feed)

Example 3 with Feed

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

the class RssParserTest method testMediaContentMime.

@Test
public void testMediaContentMime() throws Exception {
    File feedFile = FeedParserTestHelper.getFeedFile("feed-rss-testMediaContentMime.xml");
    Feed feed = FeedParserTestHelper.runFeedParser(feedFile);
    assertEquals("title", feed.getTitle());
    assertEquals("http://example.com", feed.getLink());
    assertEquals("This is the description", feed.getDescription());
    assertEquals("http://example.com/payment", feed.getPaymentLinks().get(0).url);
    assertNull(feed.getImageUrl());
    assertEquals(1, feed.getItems().size());
    FeedItem feedItem = feed.getItems().get(0);
    // noinspection ConstantConditions
    assertEquals(MediaType.VIDEO, feedItem.getMedia().getMediaType());
    assertEquals("https://www.example.com/file.mp4", feedItem.getMedia().getDownload_url());
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) File(java.io.File) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 4 with Feed

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

the class RssParserTest method testMultipleFundingTags.

@Test
public void testMultipleFundingTags() throws Exception {
    File feedFile = FeedParserTestHelper.getFeedFile("feed-rss-testMultipleFundingTags.xml");
    Feed feed = FeedParserTestHelper.runFeedParser(feedFile);
    assertEquals(3, feed.getPaymentLinks().size());
    assertEquals("Text 1", feed.getPaymentLinks().get(0).content);
    assertEquals("https://example.com/funding1", feed.getPaymentLinks().get(0).url);
    assertEquals("Text 2", feed.getPaymentLinks().get(1).content);
    assertEquals("https://example.com/funding2", feed.getPaymentLinks().get(1).url);
    assertTrue(TextUtils.isEmpty(feed.getPaymentLinks().get(2).content));
    assertEquals("https://example.com/funding3", feed.getPaymentLinks().get(2).url);
}
Also used : File(java.io.File) Feed(de.danoeh.antennapod.model.feed.Feed) Test(org.junit.Test)

Example 5 with Feed

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

the class AtomParserTest method testAtomBasic.

@Test
public void testAtomBasic() throws Exception {
    File feedFile = FeedParserTestHelper.getFeedFile("feed-atom-testAtomBasic.xml");
    Feed feed = FeedParserTestHelper.runFeedParser(feedFile);
    assertEquals(Feed.TYPE_ATOM1, feed.getType());
    assertEquals("title", feed.getTitle());
    assertEquals("http://example.com/feed", feed.getFeedIdentifier());
    assertEquals("http://example.com", feed.getLink());
    assertEquals("This is the description", feed.getDescription());
    assertEquals("http://example.com/payment", feed.getPaymentLinks().get(0).url);
    assertEquals("http://example.com/picture", feed.getImageUrl());
    assertEquals(10, feed.getItems().size());
    for (int i = 0; i < feed.getItems().size(); i++) {
        FeedItem item = feed.getItems().get(i);
        assertEquals("http://example.com/item-" + i, item.getItemIdentifier());
        assertEquals("item-" + i, item.getTitle());
        assertNull(item.getDescription());
        assertEquals("http://example.com/items/" + i, item.getLink());
        assertEquals(new Date(i * 60000), item.getPubDate());
        assertNull(item.getPaymentLink());
        assertEquals("http://example.com/picture", item.getImageLocation());
        // media
        assertTrue(item.hasMedia());
        FeedMedia media = item.getMedia();
        // noinspection ConstantConditions
        assertEquals("http://example.com/media-" + i, media.getDownload_url());
        assertEquals(1024 * 1024, media.getSize());
        assertEquals("audio/mp3", media.getMime_type());
        // chapters
        assertNull(item.getChapters());
    }
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) FeedMedia(de.danoeh.antennapod.model.feed.FeedMedia) File(java.io.File) 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