Search in sources :

Example 1 with FlattrStatus

use of de.danoeh.antennapod.core.util.flattr.FlattrStatus in project AntennaPod by AntennaPod.

the class DBWriter method setFlattredStatus.

/**
     * Set flattr status of the feeds/feeditems in flattrList to flattred at the given timestamp,
     * where the information has been retrieved from the flattr API
     */
public static Future<?> setFlattredStatus(final List<Flattr> flattrList) {
    Log.d(TAG, "setFlattredStatus to status retrieved from flattr api running with " + flattrList.size() + " items");
    // clear flattr status in db
    clearAllFlattrStatus();
    // submit list with flattred things having normalized URLs to db
    return dbExec.submit(() -> {
        PodDBAdapter adapter = PodDBAdapter.getInstance();
        adapter.open();
        for (Flattr flattr : flattrList) {
            adapter.setItemFlattrStatus(formatURIForQuery(flattr.getThing().getUrl()), new FlattrStatus(flattr.getCreated().getTime()));
        }
        adapter.close();
    });
}
Also used : Flattr(org.shredzone.flattr4j.model.Flattr) FlattrStatus(de.danoeh.antennapod.core.util.flattr.FlattrStatus)

Example 2 with FlattrStatus

use of de.danoeh.antennapod.core.util.flattr.FlattrStatus in project AntennaPod by AntennaPod.

the class DBTestUtils method saveFeedlist.

/**
     * Use this method when tests involve chapters.
     */
public static List<Feed> saveFeedlist(int numFeeds, int numItems, boolean withMedia, boolean withChapters, int numChapters) {
    if (numFeeds <= 0) {
        throw new IllegalArgumentException("numFeeds<=0");
    }
    if (numItems < 0) {
        throw new IllegalArgumentException("numItems<0");
    }
    List<Feed> feeds = new ArrayList<>();
    PodDBAdapter adapter = PodDBAdapter.getInstance();
    adapter.open();
    for (int i = 0; i < numFeeds; i++) {
        Feed f = new Feed(0, null, "feed " + i, null, "link" + i, "descr", null, null, null, null, "id" + i, null, null, "url" + i, false, new FlattrStatus(), false, null, null, false);
        f.setItems(new ArrayList<>());
        for (int j = 0; j < numItems; j++) {
            FeedItem item = new FeedItem(0, "item " + j, "id" + j, "link" + j, new Date(), FeedItem.PLAYED, f, withChapters);
            if (withMedia) {
                FeedMedia media = new FeedMedia(item, "url" + j, 1, "audio/mp3");
                item.setMedia(media);
            }
            if (withChapters) {
                List<Chapter> chapters = new ArrayList<>();
                item.setChapters(chapters);
                for (int k = 0; k < numChapters; k++) {
                    chapters.add(new SimpleChapter(k, "item " + j + " chapter " + k, item, "http://example.com"));
                }
            }
            f.getItems().add(item);
        }
        Collections.sort(f.getItems(), new FeedItemPubdateComparator());
        adapter.setCompleteFeed(f);
        Assert.assertTrue(f.getId() != 0);
        for (FeedItem item : f.getItems()) {
            Assert.assertTrue(item.getId() != 0);
        }
        feeds.add(f);
    }
    adapter.close();
    return feeds;
}
Also used : ArrayList(java.util.ArrayList) SimpleChapter(de.danoeh.antennapod.core.feed.SimpleChapter) Chapter(de.danoeh.antennapod.core.feed.Chapter) Date(java.util.Date) FlattrStatus(de.danoeh.antennapod.core.util.flattr.FlattrStatus) SimpleChapter(de.danoeh.antennapod.core.feed.SimpleChapter) PodDBAdapter(de.danoeh.antennapod.core.storage.PodDBAdapter) FeedItemPubdateComparator(de.danoeh.antennapod.core.util.comparator.FeedItemPubdateComparator) FeedItem(de.danoeh.antennapod.core.feed.FeedItem) FeedMedia(de.danoeh.antennapod.core.feed.FeedMedia) Feed(de.danoeh.antennapod.core.feed.Feed)

Example 3 with FlattrStatus

use of de.danoeh.antennapod.core.util.flattr.FlattrStatus in project AntennaPod by AntennaPod.

the class Feed method fromCursor.

public static Feed fromCursor(Cursor cursor) {
    int indexId = cursor.getColumnIndex(PodDBAdapter.KEY_ID);
    int indexLastUpdate = cursor.getColumnIndex(PodDBAdapter.KEY_LASTUPDATE);
    int indexTitle = cursor.getColumnIndex(PodDBAdapter.KEY_TITLE);
    int indexCustomTitle = cursor.getColumnIndex(PodDBAdapter.KEY_CUSTOM_TITLE);
    int indexLink = cursor.getColumnIndex(PodDBAdapter.KEY_LINK);
    int indexDescription = cursor.getColumnIndex(PodDBAdapter.KEY_DESCRIPTION);
    int indexPaymentLink = cursor.getColumnIndex(PodDBAdapter.KEY_PAYMENT_LINK);
    int indexAuthor = cursor.getColumnIndex(PodDBAdapter.KEY_AUTHOR);
    int indexLanguage = cursor.getColumnIndex(PodDBAdapter.KEY_LANGUAGE);
    int indexType = cursor.getColumnIndex(PodDBAdapter.KEY_TYPE);
    int indexFeedIdentifier = cursor.getColumnIndex(PodDBAdapter.KEY_FEED_IDENTIFIER);
    int indexFileUrl = cursor.getColumnIndex(PodDBAdapter.KEY_FILE_URL);
    int indexDownloadUrl = cursor.getColumnIndex(PodDBAdapter.KEY_DOWNLOAD_URL);
    int indexDownloaded = cursor.getColumnIndex(PodDBAdapter.KEY_DOWNLOADED);
    int indexFlattrStatus = cursor.getColumnIndex(PodDBAdapter.KEY_FLATTR_STATUS);
    int indexIsPaged = cursor.getColumnIndex(PodDBAdapter.KEY_IS_PAGED);
    int indexNextPageLink = cursor.getColumnIndex(PodDBAdapter.KEY_NEXT_PAGE_LINK);
    int indexHide = cursor.getColumnIndex(PodDBAdapter.KEY_HIDE);
    int indexLastUpdateFailed = cursor.getColumnIndex(PodDBAdapter.KEY_LAST_UPDATE_FAILED);
    Feed feed = new Feed(cursor.getLong(indexId), cursor.getString(indexLastUpdate), cursor.getString(indexTitle), cursor.getString(indexCustomTitle), cursor.getString(indexLink), cursor.getString(indexDescription), cursor.getString(indexPaymentLink), cursor.getString(indexAuthor), cursor.getString(indexLanguage), cursor.getString(indexType), cursor.getString(indexFeedIdentifier), null, cursor.getString(indexFileUrl), cursor.getString(indexDownloadUrl), cursor.getInt(indexDownloaded) > 0, new FlattrStatus(cursor.getLong(indexFlattrStatus)), cursor.getInt(indexIsPaged) > 0, cursor.getString(indexNextPageLink), cursor.getString(indexHide), cursor.getInt(indexLastUpdateFailed) > 0);
    FeedPreferences preferences = FeedPreferences.fromCursor(cursor);
    feed.setPreferences(preferences);
    return feed;
}
Also used : FlattrStatus(de.danoeh.antennapod.core.util.flattr.FlattrStatus)

Example 4 with FlattrStatus

use of de.danoeh.antennapod.core.util.flattr.FlattrStatus in project AntennaPod by AntennaPod.

the class FeedItem method fromCursor.

public static FeedItem fromCursor(Cursor cursor) {
    int indexId = cursor.getColumnIndex(PodDBAdapter.KEY_ID);
    int indexTitle = cursor.getColumnIndex(PodDBAdapter.KEY_TITLE);
    int indexLink = cursor.getColumnIndex(PodDBAdapter.KEY_LINK);
    int indexPubDate = cursor.getColumnIndex(PodDBAdapter.KEY_PUBDATE);
    int indexPaymentLink = cursor.getColumnIndex(PodDBAdapter.KEY_PAYMENT_LINK);
    int indexFeedId = cursor.getColumnIndex(PodDBAdapter.KEY_FEED);
    int indexFlattrStatus = cursor.getColumnIndex(PodDBAdapter.KEY_FLATTR_STATUS);
    int indexHasChapters = cursor.getColumnIndex(PodDBAdapter.KEY_HAS_CHAPTERS);
    int indexRead = cursor.getColumnIndex(PodDBAdapter.KEY_READ);
    int indexItemIdentifier = cursor.getColumnIndex(PodDBAdapter.KEY_ITEM_IDENTIFIER);
    int indexAutoDownload = cursor.getColumnIndex(PodDBAdapter.KEY_AUTO_DOWNLOAD);
    long id = cursor.getInt(indexId);
    assert (id > 0);
    String title = cursor.getString(indexTitle);
    String link = cursor.getString(indexLink);
    Date pubDate = new Date(cursor.getLong(indexPubDate));
    String paymentLink = cursor.getString(indexPaymentLink);
    long feedId = cursor.getLong(indexFeedId);
    boolean hasChapters = cursor.getInt(indexHasChapters) > 0;
    FlattrStatus flattrStatus = new FlattrStatus(cursor.getLong(indexFlattrStatus));
    int state = cursor.getInt(indexRead);
    String itemIdentifier = cursor.getString(indexItemIdentifier);
    long autoDownload = cursor.getLong(indexAutoDownload);
    return new FeedItem(id, title, link, pubDate, paymentLink, feedId, flattrStatus, hasChapters, null, state, itemIdentifier, autoDownload);
}
Also used : Date(java.util.Date) FlattrStatus(de.danoeh.antennapod.core.util.flattr.FlattrStatus)

Aggregations

FlattrStatus (de.danoeh.antennapod.core.util.flattr.FlattrStatus)4 Date (java.util.Date)2 Chapter (de.danoeh.antennapod.core.feed.Chapter)1 Feed (de.danoeh.antennapod.core.feed.Feed)1 FeedItem (de.danoeh.antennapod.core.feed.FeedItem)1 FeedMedia (de.danoeh.antennapod.core.feed.FeedMedia)1 SimpleChapter (de.danoeh.antennapod.core.feed.SimpleChapter)1 PodDBAdapter (de.danoeh.antennapod.core.storage.PodDBAdapter)1 FeedItemPubdateComparator (de.danoeh.antennapod.core.util.comparator.FeedItemPubdateComparator)1 ArrayList (java.util.ArrayList)1 Flattr (org.shredzone.flattr4j.model.Flattr)1