use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class NavigationDrawerTest method testClickNavDrawer.
@Test
public void testClickNavDrawer() throws Exception {
uiTestUtils.addLocalFeedData(false);
UserPreferences.setHiddenDrawerItems(new ArrayList<>());
activityRule.launchActivity(new Intent());
// queue
openNavDrawer();
onDrawerItem(withText(R.string.queue_label)).perform(click());
onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.toolbar)), withText(R.string.queue_label)), 1000));
// episodes
openNavDrawer();
onDrawerItem(withText(R.string.episodes_label)).perform(click());
onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.toolbar)), withText(R.string.episodes_label), isDisplayed()), 1000));
// Subscriptions
openNavDrawer();
onDrawerItem(withText(R.string.subscriptions_label)).perform(click());
onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.toolbar)), withText(R.string.subscriptions_label), isDisplayed()), 1000));
// downloads
openNavDrawer();
onDrawerItem(withText(R.string.downloads_label)).perform(click());
onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.toolbar)), withText(R.string.downloads_label), isDisplayed()), 1000));
// playback history
openNavDrawer();
onDrawerItem(withText(R.string.playback_history_label)).perform(click());
onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.toolbar)), withText(R.string.playback_history_label), isDisplayed()), 1000));
// add podcast
openNavDrawer();
onView(withId(R.id.nav_list)).perform(swipeUp());
onDrawerItem(withText(R.string.add_feed_label)).perform(click());
onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.toolbar)), withText(R.string.add_feed_label), isDisplayed()), 1000));
// podcasts
for (int i = 0; i < uiTestUtils.hostedFeeds.size(); i++) {
Feed f = uiTestUtils.hostedFeeds.get(i);
openNavDrawer();
onDrawerItem(withText(f.getTitle())).perform(click());
onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.appBar)), withText(f.getTitle()), isDisplayed()), 1000));
}
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DBReader method extractFeedFromCursorRow.
private static Feed extractFeedFromCursorRow(Cursor cursor) {
Feed feed = FeedCursorMapper.convert(cursor);
FeedPreferences preferences = FeedPreferencesCursorMapper.convert(cursor);
feed.setPreferences(preferences);
return feed;
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DBReader method getStatistics.
/**
* Searches the DB for statistics.
*
* @return The list of statistics objects
*/
@NonNull
public static List<StatisticsItem> getStatistics() {
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
List<StatisticsItem> feedTime = new ArrayList<>();
List<Feed> feeds = getFeedList();
for (Feed feed : feeds) {
long feedPlayedTimeCountAll = 0;
long feedPlayedTime = 0;
long feedTotalTime = 0;
long episodes = 0;
long episodesStarted = 0;
long episodesStartedIncludingMarked = 0;
long totalDownloadSize = 0;
long episodesDownloadCount = 0;
List<FeedItem> items = getFeed(feed.getId()).getItems();
for (FeedItem item : items) {
FeedMedia media = item.getMedia();
if (media == null) {
continue;
}
feedPlayedTime += media.getPlayedDuration() / 1000;
if (item.isPlayed()) {
feedPlayedTimeCountAll += media.getDuration() / 1000;
} else {
feedPlayedTimeCountAll += media.getPosition() / 1000;
}
if (media.getPlaybackCompletionDate() != null || media.getPlayedDuration() > 0) {
episodesStarted++;
}
if (item.isPlayed() || media.getPosition() != 0) {
episodesStartedIncludingMarked++;
}
feedTotalTime += media.getDuration() / 1000;
if (media.isDownloaded()) {
totalDownloadSize += new File(media.getFile_url()).length();
episodesDownloadCount++;
}
episodes++;
}
feedTime.add(new StatisticsItem(feed, feedTotalTime, feedPlayedTime, feedPlayedTimeCountAll, episodes, episodesStarted, episodesStartedIncludingMarked, totalDownloadSize, episodesDownloadCount));
}
adapter.close();
return feedTime;
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DBReader method loadFeedDataOfFeedItemList.
/**
* Takes a list of FeedItems and loads their corresponding Feed-objects from the database.
* The feedID-attribute of a FeedItem must be set to the ID of its feed or the method will
* not find the correct feed of an item.
*
* @param items The FeedItems whose Feed-objects should be loaded.
*/
private static void loadFeedDataOfFeedItemList(List<FeedItem> items) {
List<Feed> feeds = getFeedList();
Map<Long, Feed> feedIndex = new ArrayMap<>(feeds.size());
for (Feed feed : feeds) {
feedIndex.put(feed.getId(), feed);
}
for (FeedItem item : items) {
Feed feed = feedIndex.get(item.getFeedId());
if (feed == null) {
Log.w(TAG, "No match found for item with ID " + item.getId() + ". Feed ID was " + item.getFeedId());
feed = new Feed("", "", "Error: Item without feed");
}
item.setFeed(feed);
}
}
use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.
the class DBReader method getFeedList.
@NonNull
private static List<Feed> getFeedList(PodDBAdapter adapter) {
try (Cursor cursor = adapter.getAllFeedsCursor()) {
List<Feed> feeds = new ArrayList<>(cursor.getCount());
while (cursor.moveToNext()) {
Feed feed = extractFeedFromCursorRow(cursor);
feeds.add(feed);
}
return feeds;
}
}
Aggregations