Search in sources :

Example 26 with Feed

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

the class QueueFragment method onOptionsItemSelected.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (!super.onOptionsItemSelected(item)) {
        switch(item.getItemId()) {
            case R.id.queue_lock:
                boolean newLockState = !UserPreferences.isQueueLocked();
                UserPreferences.setQueueLocked(newLockState);
                getActivity().supportInvalidateOptionsMenu();
                recyclerAdapter.setLocked(newLockState);
                if (newLockState) {
                    Snackbar.make(getActivity().findViewById(R.id.content), R.string.queue_locked, Snackbar.LENGTH_SHORT).show();
                } else {
                    Snackbar.make(getActivity().findViewById(R.id.content), R.string.queue_unlocked, Snackbar.LENGTH_SHORT).show();
                }
                return true;
            case R.id.refresh_item:
                List<Feed> feeds = ((MainActivity) getActivity()).getFeeds();
                if (feeds != null) {
                    DBTasks.refreshAllFeeds(getActivity(), feeds);
                }
                return true;
            case R.id.clear_queue:
                // make sure the user really wants to clear the queue
                ConfirmationDialog conDialog = new ConfirmationDialog(getActivity(), R.string.clear_queue_label, R.string.clear_queue_confirmation_msg) {

                    @Override
                    public void onConfirmButtonPressed(DialogInterface dialog) {
                        dialog.dismiss();
                        DBWriter.clearQueue();
                    }
                };
                conDialog.createNewDialog().show();
                return true;
            case R.id.queue_sort_episode_title_asc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.EPISODE_TITLE_ASC, true);
                return true;
            case R.id.queue_sort_episode_title_desc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.EPISODE_TITLE_DESC, true);
                return true;
            case R.id.queue_sort_date_asc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.DATE_ASC, true);
                return true;
            case R.id.queue_sort_date_desc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.DATE_DESC, true);
                return true;
            case R.id.queue_sort_duration_asc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.DURATION_ASC, true);
                return true;
            case R.id.queue_sort_duration_desc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.DURATION_DESC, true);
                return true;
            case R.id.queue_sort_feed_title_asc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.FEED_TITLE_ASC, true);
                return true;
            case R.id.queue_sort_feed_title_desc:
                QueueSorter.sort(getActivity(), QueueSorter.Rule.FEED_TITLE_DESC, true);
                return true;
            default:
                return false;
        }
    } else {
        return true;
    }
}
Also used : DialogInterface(android.content.DialogInterface) MainActivity(de.danoeh.antennapod.activity.MainActivity) Feed(de.danoeh.antennapod.core.feed.Feed) ConfirmationDialog(de.danoeh.antennapod.core.dialog.ConfirmationDialog)

Example 27 with Feed

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

the class FeedHandlerTest method testAtomBasic.

public void testAtomBasic() throws IOException, UnsupportedFeedtypeException, SAXException, ParserConfigurationException {
    Feed f1 = createTestFeed(10, false, true, true);
    Feed f2 = runFeedTest(f1, new AtomGenerator(), "UTF-8", 0);
    feedValid(f1, f2, Feed.TYPE_ATOM1);
}
Also used : AtomGenerator(de.test.antennapod.util.syndication.feedgenerator.AtomGenerator) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 28 with Feed

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

the class FeedHandlerTest method runFeedTest.

private Feed runFeedTest(Feed feed, FeedGenerator g, String encoding, long flags) throws IOException, UnsupportedFeedtypeException, SAXException, ParserConfigurationException {
    g.writeFeed(feed, outputStream, encoding, flags);
    FeedHandler handler = new FeedHandler();
    Feed parsedFeed = new Feed(feed.getDownload_url(), feed.getLastUpdate());
    parsedFeed.setFile_url(file.getAbsolutePath());
    parsedFeed.setDownloaded(true);
    handler.parseFeed(parsedFeed);
    return parsedFeed;
}
Also used : FeedHandler(de.danoeh.antennapod.core.syndication.handler.FeedHandler) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 29 with Feed

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

the class DBTasksTest method testUpdateFeedSameTitle.

/** Two feeds with the same title, but different download URLs should be treated as different feeds. */
public void testUpdateFeedSameTitle() {
    Feed feed1 = new Feed("url1", null, "title");
    Feed feed2 = new Feed("url2", null, "title");
    feed1.setItems(new ArrayList<>());
    feed2.setItems(new ArrayList<>());
    Feed savedFeed1 = DBTasks.updateFeed(context, feed1)[0];
    Feed savedFeed2 = DBTasks.updateFeed(context, feed2)[0];
    assertTrue(savedFeed1.getId() != savedFeed2.getId());
}
Also used : Feed(de.danoeh.antennapod.core.feed.Feed)

Example 30 with Feed

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

the class DBTasksTest method testUpdateFeedUpdatedFeed.

public void testUpdateFeedUpdatedFeed() {
    final int NUM_ITEMS_OLD = 10;
    final int NUM_ITEMS_NEW = 10;
    final Feed feed = new Feed("url", null, "title");
    feed.setItems(new ArrayList<>());
    for (int i = 0; i < NUM_ITEMS_OLD; i++) {
        feed.getItems().add(new FeedItem(0, "item " + i, "id " + i, "link " + i, new Date(i), FeedItem.PLAYED, feed));
    }
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    adapter.setCompleteFeed(feed);
    adapter.close();
    // ensure that objects have been saved in db, then reset
    assertTrue(feed.getId() != 0);
    final long feedID = feed.getId();
    feed.setId(0);
    List<Long> itemIDs = new ArrayList<Long>();
    for (FeedItem item : feed.getItems()) {
        assertTrue(item.getId() != 0);
        itemIDs.add(item.getId());
        item.setId(0);
    }
    for (int i = NUM_ITEMS_OLD; i < NUM_ITEMS_NEW + NUM_ITEMS_OLD; i++) {
        feed.getItems().add(0, new FeedItem(0, "item " + i, "id " + i, "link " + i, new Date(i), FeedItem.UNPLAYED, feed));
    }
    final Feed newFeed = DBTasks.updateFeed(context, feed)[0];
    assertTrue(feed != newFeed);
    updatedFeedTest(newFeed, feedID, itemIDs, NUM_ITEMS_OLD, NUM_ITEMS_NEW);
    final Feed feedFromDB = DBReader.getFeed(newFeed.getId());
    assertNotNull(feedFromDB);
    assertTrue(feedFromDB.getId() == newFeed.getId());
    updatedFeedTest(feedFromDB, feedID, itemIDs, NUM_ITEMS_OLD, NUM_ITEMS_NEW);
}
Also used : PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) ArrayList(java.util.ArrayList) Date(java.util.Date) Feed(de.danoeh.antennapod.core.feed.Feed)

Aggregations

Feed (de.danoeh.antennapod.core.feed.Feed)95 FeedItem (de.danoeh.antennapod.core.feed.FeedItem)55 PodDBAdapter (de.danoeh.antennapod.core.storage.PodDBAdapter)32 ArrayList (java.util.ArrayList)30 Date (java.util.Date)30 FeedMedia (de.danoeh.antennapod.core.feed.FeedMedia)21 File (java.io.File)20 Cursor (android.database.Cursor)16 FeedImage (de.danoeh.antennapod.core.feed.FeedImage)14 Context (android.content.Context)13 FlakyTest (android.test.FlakyTest)9 DialogInterface (android.content.DialogInterface)8 Intent (android.content.Intent)8 LayoutInflater (android.view.LayoutInflater)7 AdapterView (android.widget.AdapterView)7 ConfirmationDialog (de.danoeh.antennapod.core.dialog.ConfirmationDialog)6 FeedPreferences (de.danoeh.antennapod.core.feed.FeedPreferences)6 DownloadRequestException (de.danoeh.antennapod.core.storage.DownloadRequestException)6 Log (android.util.Log)4 View (android.view.View)4