summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/AntennaPodTestRunner.java2
-rw-r--r--app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java15
-rw-r--r--app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java14
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java130
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java43
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java14
-rw-r--r--app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java133
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java8
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java245
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java18
-rw-r--r--app/src/main/java/de/danoeh/antennapod/PodcastApp.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/UpdateManager.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java49
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java7
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java52
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java8
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/asynctask/OpmlExportWorker.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java12
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java8
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java16
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java14
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java4
34 files changed, 479 insertions, 368 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/AntennaPodTestRunner.java b/app/src/androidTest/java/de/test/antennapod/AntennaPodTestRunner.java
index 24cd6e669..c321e6494 100644
--- a/app/src/androidTest/java/de/test/antennapod/AntennaPodTestRunner.java
+++ b/app/src/androidTest/java/de/test/antennapod/AntennaPodTestRunner.java
@@ -2,6 +2,7 @@ package de.test.antennapod;
import android.test.InstrumentationTestRunner;
import android.test.suitebuilder.TestSuiteBuilder;
+
import junit.framework.TestSuite;
public class AntennaPodTestRunner extends InstrumentationTestRunner {
@@ -13,4 +14,5 @@ public class AntennaPodTestRunner extends InstrumentationTestRunner {
.excludePackages("de.test.antennapod.gpodnet")
.build();
}
+
}
diff --git a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java
index 4ee372d68..133d4152a 100644
--- a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceMediaPlayerTest.java
@@ -1,7 +1,6 @@
package de.test.antennapod.service.playback;
import android.content.Context;
-import android.media.RemoteControlClient;
import android.test.InstrumentationTestCase;
import junit.framework.AssertionFailedError;
@@ -45,7 +44,7 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
@Override
protected void tearDown() throws Exception {
super.tearDown();
- PodDBAdapter.deleteDatabase(getInstrumentation().getTargetContext());
+ PodDBAdapter.deleteDatabase();
httpServer.stop();
}
@@ -54,16 +53,16 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
super.setUp();
assertionError = null;
- final Context context = getInstrumentation().getTargetContext();
- context.deleteDatabase(PodDBAdapter.DATABASE_NAME);
- // make sure database is created
- PodDBAdapter adapter = new PodDBAdapter(context);
+ // create new database
+ PodDBAdapter.deleteDatabase();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.close();
httpServer = new HTTPBin();
httpServer.start();
+ final Context context = getInstrumentation().getTargetContext();
File cacheDir = context.getExternalFilesDir("testFiles");
if (cacheDir == null)
cacheDir = context.getExternalFilesDir("testFiles");
@@ -119,12 +118,12 @@ public class PlaybackServiceMediaPlayerTest extends InstrumentationTestCase {
Feed f = new Feed(0, new Date(), "f", "l", "d", null, null, null, null, "i", null, null, "l", false);
FeedPreferences prefs = new FeedPreferences(f.getId(), false, FeedPreferences.AutoDeleteAction.NO, null, null);
f.setPreferences(prefs);
- f.setItems(new ArrayList<FeedItem>());
+ f.setItems(new ArrayList<>());
FeedItem i = new FeedItem(0, "t", "i", "l", new Date(), FeedItem.UNPLAYED, f);
f.getItems().add(i);
FeedMedia media = new FeedMedia(0, i, 0, 0, 0, "audio/wav", fileUrl, downloadUrl, fileUrl != null, null, 0);
i.setMedia(media);
- PodDBAdapter adapter = new PodDBAdapter(c);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(f);
assertTrue(media.getId() != 0);
diff --git a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java
index 385201f25..869a13127 100644
--- a/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/service/playback/PlaybackServiceTaskManagerTest.java
@@ -26,16 +26,16 @@ public class PlaybackServiceTaskManagerTest extends InstrumentationTestCase {
@Override
protected void tearDown() throws Exception {
super.tearDown();
- assertTrue(PodDBAdapter.deleteDatabase(getInstrumentation().getTargetContext()));
+ PodDBAdapter.deleteDatabase();
}
@Override
protected void setUp() throws Exception {
super.setUp();
- final Context context = getInstrumentation().getTargetContext();
- context.deleteDatabase(PodDBAdapter.DATABASE_NAME);
- // make sure database is created
- PodDBAdapter adapter = new PodDBAdapter(context);
+
+ // create new database
+ PodDBAdapter.deleteDatabase();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.close();
}
@@ -49,11 +49,11 @@ public class PlaybackServiceTaskManagerTest extends InstrumentationTestCase {
final Context c = getInstrumentation().getTargetContext();
final int NUM_ITEMS = 10;
Feed f = new Feed(0, new Date(), "title", "link", "d", null, null, null, null, "id", null, "null", "url", false);
- f.setItems(new ArrayList<FeedItem>());
+ f.setItems(new ArrayList<>());
for (int i = 0; i < NUM_ITEMS; i++) {
f.getItems().add(new FeedItem(0, pref + i, pref + i, "link", new Date(), FeedItem.PLAYED, f));
}
- PodDBAdapter adapter = new PodDBAdapter(c);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(f);
adapter.setQueue(f.getItems());
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java b/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java
index 11a34813a..6873cb9a6 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java
@@ -15,7 +15,6 @@ import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.FeedItemStatistics;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
import de.danoeh.antennapod.core.util.LongList;
-import de.danoeh.antennapod.core.util.flattr.FlattrStatus;
import static de.test.antennapod.storage.DBTestUtils.saveFeedlist;
@@ -27,25 +26,23 @@ public class DBReaderTest extends InstrumentationTestCase {
@Override
protected void tearDown() throws Exception {
super.tearDown();
- final Context context = getInstrumentation().getTargetContext();
- assertTrue(PodDBAdapter.deleteDatabase(context));
+ assertTrue(PodDBAdapter.deleteDatabase());
}
@Override
protected void setUp() throws Exception {
super.setUp();
- final Context context = getInstrumentation().getTargetContext();
- context.deleteDatabase(PodDBAdapter.DATABASE_NAME);
- // make sure database is created
- PodDBAdapter adapter = new PodDBAdapter(context);
+
+ // create new database
+ PodDBAdapter.deleteDatabase();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.close();
}
public void testGetFeedList() {
- final Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = saveFeedlist(context, 10, 0, false);
- List<Feed> savedFeeds = DBReader.getFeedList(context);
+ List<Feed> feeds = saveFeedlist(10, 0, false);
+ List<Feed> savedFeeds = DBReader.getFeedList();
assertNotNull(savedFeeds);
assertEquals(feeds.size(), savedFeeds.size());
for (int i = 0; i < feeds.size(); i++) {
@@ -54,8 +51,7 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetFeedListSortOrder() {
- final Context context = getInstrumentation().getTargetContext();
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
Feed feed1 = new Feed(0, new Date(), "A", "link", "d", null, null, null, "rss", "A", null, "", "", true);
@@ -73,7 +69,7 @@ public class DBReaderTest extends InstrumentationTestCase {
adapter.close();
- List<Feed> saved = DBReader.getFeedList(context);
+ List<Feed> saved = DBReader.getFeedList();
assertNotNull(saved);
assertEquals("Wrong size: ", 4, saved.size());
@@ -84,9 +80,8 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testFeedListDownloadUrls() {
- final Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = saveFeedlist(context, 10, 0, false);
- List<String> urls = DBReader.getFeedListDownloadUrls(context);
+ List<Feed> feeds = saveFeedlist(10, 0, false);
+ List<String> urls = DBReader.getFeedListDownloadUrls();
assertNotNull(urls);
assertTrue(urls.size() == feeds.size());
for (int i = 0; i < urls.size(); i++) {
@@ -98,8 +93,8 @@ public class DBReaderTest extends InstrumentationTestCase {
final Context context = getInstrumentation().getTargetContext();
final int numFeeds = 10;
final int numItems = 1;
- List<Feed> feeds = saveFeedlist(context, numFeeds, numItems, false);
- List<FeedItem> items = new ArrayList<FeedItem>();
+ List<Feed> feeds = saveFeedlist(numFeeds, numItems, false);
+ List<FeedItem> items = new ArrayList<>();
for (Feed f : feeds) {
for (FeedItem item : f.getItems()) {
item.setFeed(null);
@@ -107,7 +102,7 @@ public class DBReaderTest extends InstrumentationTestCase {
items.add(item);
}
}
- DBReader.loadFeedDataOfFeedItemlist(context, items);
+ DBReader.loadFeedDataOfFeedItemlist(items);
for (int i = 0; i < numFeeds; i++) {
for (int j = 0; j < numItems; j++) {
FeedItem item = feeds.get(i).getItems().get(j);
@@ -119,13 +114,12 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetFeedItemList() {
- final Context context = getInstrumentation().getTargetContext();
final int numFeeds = 1;
final int numItems = 10;
- Feed feed = saveFeedlist(context, numFeeds, numItems, false).get(0);
+ Feed feed = saveFeedlist(numFeeds, numItems, false).get(0);
List<FeedItem> items = feed.getItems();
feed.setItems(null);
- List<FeedItem> savedItems = DBReader.getFeedItemList(context, feed);
+ List<FeedItem> savedItems = DBReader.getFeedItemList(feed);
assertNotNull(savedItems);
assertTrue(savedItems.size() == items.size());
for (int i = 0; i < savedItems.size(); i++) {
@@ -137,22 +131,21 @@ public class DBReaderTest extends InstrumentationTestCase {
if (numItems <= 0) {
throw new IllegalArgumentException("numItems<=0");
}
- final Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = saveFeedlist(context, numItems, numItems, false);
- List<FeedItem> allItems = new ArrayList<FeedItem>();
+ List<Feed> feeds = saveFeedlist(numItems, numItems, false);
+ List<FeedItem> allItems = new ArrayList<>();
for (Feed f : feeds) {
allItems.addAll(f.getItems());
}
// take random items from every feed
Random random = new Random();
- List<FeedItem> queue = new ArrayList<FeedItem>();
+ List<FeedItem> queue = new ArrayList<>();
while (queue.size() < numItems) {
int index = random.nextInt(numItems);
if (!queue.contains(allItems.get(index))) {
queue.add(allItems.get(index));
}
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setQueue(queue);
adapter.close();
@@ -160,10 +153,9 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetQueueIDList() {
- final Context context = getInstrumentation().getTargetContext();
final int numItems = 10;
List<FeedItem> queue = saveQueue(numItems);
- LongList ids = DBReader.getQueueIDList(context);
+ LongList ids = DBReader.getQueueIDList();
assertNotNull(ids);
assertTrue(queue.size() == ids.size());
for (int i = 0; i < queue.size(); i++) {
@@ -173,10 +165,9 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetQueue() {
- final Context context = getInstrumentation().getTargetContext();
final int numItems = 10;
List<FeedItem> queue = saveQueue(numItems);
- List<FeedItem> savedQueue = DBReader.getQueue(context);
+ List<FeedItem> savedQueue = DBReader.getQueue();
assertNotNull(savedQueue);
assertTrue(queue.size() == savedQueue.size());
for (int i = 0; i < queue.size(); i++) {
@@ -189,13 +180,12 @@ public class DBReaderTest extends InstrumentationTestCase {
if (numItems <= 0) {
throw new IllegalArgumentException("numItems<=0");
}
- final Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = saveFeedlist(context, numItems, numItems, true);
- List<FeedItem> items = new ArrayList<FeedItem>();
+ List<Feed> feeds = saveFeedlist(numItems, numItems, true);
+ List<FeedItem> items = new ArrayList<>();
for (Feed f : feeds) {
items.addAll(f.getItems());
}
- List<FeedItem> downloaded = new ArrayList<FeedItem>();
+ List<FeedItem> downloaded = new ArrayList<>();
Random random = new Random();
while (downloaded.size() < numItems) {
@@ -207,7 +197,7 @@ public class DBReaderTest extends InstrumentationTestCase {
downloaded.add(item);
}
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setFeedItemlist(downloaded);
adapter.close();
@@ -215,10 +205,9 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetDownloadedItems() {
- final Context context = getInstrumentation().getTargetContext();
final int numItems = 10;
List<FeedItem> downloaded = saveDownloadedItems(numItems);
- List<FeedItem> downloaded_saved = DBReader.getDownloadedItems(context);
+ List<FeedItem> downloaded_saved = DBReader.getDownloadedItems();
assertNotNull(downloaded_saved);
assertTrue(downloaded_saved.size() == downloaded.size());
for (FeedItem item : downloaded_saved) {
@@ -232,13 +221,12 @@ public class DBReaderTest extends InstrumentationTestCase {
if (numItems <= 0) {
throw new IllegalArgumentException("numItems<=0");
}
- final Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = saveFeedlist(context, numItems, numItems, true);
- List<FeedItem> items = new ArrayList<FeedItem>();
+ List<Feed> feeds = saveFeedlist(numItems, numItems, true);
+ List<FeedItem> items = new ArrayList<>();
for (Feed f : feeds) {
items.addAll(f.getItems());
}
- List<FeedItem> unread = new ArrayList<FeedItem>();
+ List<FeedItem> unread = new ArrayList<>();
Random random = new Random();
while (unread.size() < numItems) {
@@ -249,7 +237,7 @@ public class DBReaderTest extends InstrumentationTestCase {
unread.add(item);
}
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setFeedItemlist(unread);
adapter.close();
@@ -257,11 +245,10 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetUnreadItemsList() {
- final Context context = getInstrumentation().getTargetContext();
final int numItems = 10;
List<FeedItem> unread = saveUnreadItems(numItems);
- List<FeedItem> unreadSaved = DBReader.getUnreadItemsList(context);
+ List<FeedItem> unreadSaved = DBReader.getUnreadItemsList();
assertNotNull(unreadSaved);
assertTrue(unread.size() == unreadSaved.size());
for (FeedItem item : unreadSaved) {
@@ -270,7 +257,6 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetNewItemIds() {
- final Context context = getInstrumentation().getTargetContext();
final int numItems = 10;
List<FeedItem> unread = saveUnreadItems(numItems);
@@ -278,7 +264,7 @@ public class DBReaderTest extends InstrumentationTestCase {
for (int i = 0; i < unread.size(); i++) {
unreadIds[i] = unread.get(i).getId();
}
- List<FeedItem> unreadSaved = DBReader.getUnreadItemsList(context);
+ List<FeedItem> unreadSaved = DBReader.getUnreadItemsList();
assertNotNull(unreadSaved);
assertTrue(unread.size() == unreadSaved.size());
for(int i=0; i < unreadSaved.size(); i++) {
@@ -295,16 +281,15 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetPlaybackHistory() {
- final Context context = getInstrumentation().getTargetContext();
final int numItems = (DBReader.PLAYBACK_HISTORY_SIZE + 1) * 2;
final int playedItems = DBReader.PLAYBACK_HISTORY_SIZE + 1;
final int numReturnedItems = Math.min(playedItems, DBReader.PLAYBACK_HISTORY_SIZE);
final int numFeeds = 1;
- Feed feed = DBTestUtils.saveFeedlist(context, numFeeds, numItems, true).get(0);
+ Feed feed = DBTestUtils.saveFeedlist(numFeeds, numItems, true).get(0);
long[] ids = new long[playedItems];
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
for (int i = 0; i < playedItems; i++) {
FeedMedia m = feed.getItems().get(i).getMedia();
@@ -314,7 +299,7 @@ public class DBReaderTest extends InstrumentationTestCase {
}
adapter.close();
- List<FeedItem> saved = DBReader.getPlaybackHistory(context);
+ List<FeedItem> saved = DBReader.getPlaybackHistory();
assertNotNull(saved);
assertEquals("Wrong size: ", numReturnedItems, saved.size());
for (int i = 0; i < numReturnedItems; i++) {
@@ -325,11 +310,10 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetFeedStatisticsCheckOrder() {
- final Context context = getInstrumentation().getTargetContext();
final int NUM_FEEDS = 10;
final int NUM_ITEMS = 10;
- List<Feed> feeds = DBTestUtils.saveFeedlist(context, NUM_FEEDS, NUM_ITEMS, false);
- List<FeedItemStatistics> statistics = DBReader.getFeedStatisticsList(context);
+ List<Feed> feeds = DBTestUtils.saveFeedlist(NUM_FEEDS, NUM_ITEMS, false);
+ List<FeedItemStatistics> statistics = DBReader.getFeedStatisticsList();
assertNotNull(statistics);
assertEquals(feeds.size(), statistics.size());
for (int i = 0; i < NUM_FEEDS; i++) {
@@ -338,31 +322,29 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetNavDrawerDataQueueEmptyNoUnreadItems() {
- final Context context = getInstrumentation().getTargetContext();
final int NUM_FEEDS = 10;
final int NUM_ITEMS = 10;
- List<Feed> feeds = DBTestUtils.saveFeedlist(context, NUM_FEEDS, NUM_ITEMS, true);
- DBReader.NavDrawerData navDrawerData = DBReader.getNavDrawerData(context);
+ List<Feed> feeds = DBTestUtils.saveFeedlist(NUM_FEEDS, NUM_ITEMS, true);
+ DBReader.NavDrawerData navDrawerData = DBReader.getNavDrawerData();
assertEquals(NUM_FEEDS, navDrawerData.feeds.size());
assertEquals(0, navDrawerData.numNewItems);
assertEquals(0, navDrawerData.queueSize);
}
public void testGetNavDrawerDataQueueNotEmptyWithUnreadItems() {
- final Context context = getInstrumentation().getTargetContext();
final int NUM_FEEDS = 10;
final int NUM_ITEMS = 10;
final int NUM_QUEUE = 1;
final int NUM_NEW = 2;
- List<Feed> feeds = DBTestUtils.saveFeedlist(context, NUM_FEEDS, NUM_ITEMS, true);
- PodDBAdapter adapter = new PodDBAdapter(context);
+ List<Feed> feeds = DBTestUtils.saveFeedlist(NUM_FEEDS, NUM_ITEMS, true);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
for (int i = 0; i < NUM_NEW; i++) {
FeedItem item = feeds.get(0).getItems().get(i);
item.setNew();
adapter.setSingleFeedItem(item);
}
- List<FeedItem> queue = new ArrayList<FeedItem>();
+ List<FeedItem> queue = new ArrayList<>();
for (int i = 0; i < NUM_QUEUE; i++) {
FeedItem item = feeds.get(1).getItems().get(i);
queue.add(item);
@@ -371,7 +353,7 @@ public class DBReaderTest extends InstrumentationTestCase {
adapter.close();
- DBReader.NavDrawerData navDrawerData = DBReader.getNavDrawerData(context);
+ DBReader.NavDrawerData navDrawerData = DBReader.getNavDrawerData();
assertEquals(NUM_FEEDS, navDrawerData.feeds.size());
assertEquals(NUM_NEW, navDrawerData.numNewItems);
assertEquals(NUM_QUEUE, navDrawerData.queueSize);
@@ -379,7 +361,7 @@ public class DBReaderTest extends InstrumentationTestCase {
public void testGetFeedItemlistCheckChaptersFalse() throws Exception {
Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = DBTestUtils.saveFeedlist(context, 10, 10, false, false, 0);
+ List<Feed> feeds = DBTestUtils.saveFeedlist(10, 10, false, false, 0);
for (Feed feed : feeds) {
for (FeedItem item : feed.getItems()) {
assertFalse(item.hasChapters());
@@ -388,8 +370,7 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetFeedItemlistCheckChaptersTrue() throws Exception {
- Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = saveFeedlist(context, 10, 10, false, true, 10);
+ List<Feed> feeds = saveFeedlist(10, 10, false, true, 10);
for (Feed feed : feeds) {
for (FeedItem item : feed.getItems()) {
assertTrue(item.hasChapters());
@@ -398,13 +379,12 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testLoadChaptersOfFeedItemNoChapters() throws Exception {
- Context context = getInstrumentation().getTargetContext();
- List<Feed> feeds = saveFeedlist(context, 1, 3, false, false, 0);
- saveFeedlist(context, 1, 3, false, true, 3);
+ List<Feed> feeds = saveFeedlist(1, 3, false, false, 0);
+ saveFeedlist(1, 3, false, true, 3);
for (Feed feed : feeds) {
for (FeedItem item : feed.getItems()) {
assertFalse(item.hasChapters());
- DBReader.loadChaptersOfFeedItem(context, item);
+ DBReader.loadChaptersOfFeedItem(item);
assertFalse(item.hasChapters());
assertNull(item.getChapters());
}
@@ -412,14 +392,13 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testLoadChaptersOfFeedItemWithChapters() throws Exception {
- Context context = getInstrumentation().getTargetContext();
final int NUM_CHAPTERS = 3;
- DBTestUtils.saveFeedlist(context, 1, 3, false, false, 0);
- List<Feed> feeds = saveFeedlist(context, 1, 3, false, true, NUM_CHAPTERS);
+ DBTestUtils.saveFeedlist(1, 3, false, false, 0);
+ List<Feed> feeds = saveFeedlist(1, 3, false, true, NUM_CHAPTERS);
for (Feed feed : feeds) {
for (FeedItem item : feed.getItems()) {
assertTrue(item.hasChapters());
- DBReader.loadChaptersOfFeedItem(context, item);
+ DBReader.loadChaptersOfFeedItem(item);
assertTrue(item.hasChapters());
assertNotNull(item.getChapters());
assertEquals(NUM_CHAPTERS, item.getChapters().size());
@@ -428,11 +407,10 @@ public class DBReaderTest extends InstrumentationTestCase {
}
public void testGetItemWithChapters() throws Exception {
- Context context = getInstrumentation().getTargetContext();
final int NUM_CHAPTERS = 3;
- List<Feed> feeds = saveFeedlist(context, 1, 1, false, true, NUM_CHAPTERS);
+ List<Feed> feeds = saveFeedlist(1, 1, false, true, NUM_CHAPTERS);
FeedItem item1 = feeds.get(0).getItems().get(0);
- FeedItem item2 = DBReader.getFeedItem(context, item1.getId());
+ FeedItem item2 = DBReader.getFeedItem(item1.getId());
assertTrue(item2.hasChapters());
assertEquals(item1.getChapters(), item2.getChapters());
}
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java b/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java
index 944fc7792..024b506d9 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBTasksTest.java
@@ -12,7 +12,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
-import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
@@ -21,7 +20,6 @@ import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
-import de.danoeh.antennapod.core.util.flattr.FlattrStatus;
import static de.test.antennapod.storage.DBTestUtils.saveFeedlist;
@@ -40,7 +38,8 @@ public class DBTasksTest extends InstrumentationTestCase {
@Override
protected void tearDown() throws Exception {
super.tearDown();
- assertTrue(PodDBAdapter.deleteDatabase(context));
+
+ assertTrue(PodDBAdapter.deleteDatabase());
for (File f : destFolder.listFiles()) {
assertTrue(f.delete());
@@ -58,9 +57,9 @@ public class DBTasksTest extends InstrumentationTestCase {
assertTrue(destFolder.exists());
assertTrue(destFolder.canWrite());
- context.deleteDatabase(PodDBAdapter.DATABASE_NAME);
- // make sure database is created
- PodDBAdapter adapter = new PodDBAdapter(context);
+ // create new database
+ PodDBAdapter.deleteDatabase();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.close();
@@ -76,9 +75,9 @@ public class DBTasksTest extends InstrumentationTestCase {
final int NUM_ITEMS = EPISODE_CACHE_SIZE * 2;
Feed feed = new Feed("url", new Date(), "title");
- List<FeedItem> items = new ArrayList<FeedItem>();
+ List<FeedItem> items = new ArrayList<>();
feed.setItems(items);
- List<File> files = new ArrayList<File>();
+ List<File> files = new ArrayList<>();
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed);
@@ -89,7 +88,7 @@ public class DBTasksTest extends InstrumentationTestCase {
items.add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -128,7 +127,7 @@ public class DBTasksTest extends InstrumentationTestCase {
items.add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -149,9 +148,9 @@ public class DBTasksTest extends InstrumentationTestCase {
final int NUM_ITEMS = EPISODE_CACHE_SIZE * 2;
Feed feed = new Feed("url", new Date(), "title");
- List<FeedItem> items = new ArrayList<FeedItem>();
+ List<FeedItem> items = new ArrayList<>();
feed.setItems(items);
- List<File> files = new ArrayList<File>();
+ List<File> files = new ArrayList<>();
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed);
@@ -163,7 +162,7 @@ public class DBTasksTest extends InstrumentationTestCase {
items.add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.setQueue(items);
@@ -188,14 +187,14 @@ public class DBTasksTest extends InstrumentationTestCase {
@FlakyTest(tolerance = 3)
public void testPerformAutoCleanupShouldNotDeleteBecauseInQueue_withFeedsWithNoMedia() throws IOException {
// add feed with no enclosures so that item ID != media ID
- saveFeedlist(context, 1, 10, false);
+ saveFeedlist(1, 10, false);
// add candidate for performAutoCleanup
- List<Feed> feeds = saveFeedlist(context, 1, 1, true);
+ List<Feed> feeds = saveFeedlist(1, 1, true);
FeedMedia m = feeds.get(0).getItems().get(0).getMedia();
m.setDownloaded(true);
m.setFile_url("file");
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setMedia(m);
adapter.close();
@@ -208,7 +207,7 @@ public class DBTasksTest extends InstrumentationTestCase {
final int NUM_ITEMS = 10;
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
for (int i = 0; i < NUM_ITEMS; i++) {
feed.getItems().add(new FeedItem(0, "item " + i, "id " + i, "link " + i, new Date(), FeedItem.UNPLAYED, feed));
}
@@ -228,8 +227,8 @@ public class DBTasksTest extends InstrumentationTestCase {
Feed feed1 = new Feed("url1", new Date(), "title");
Feed feed2 = new Feed("url2", new Date(), "title");
- feed1.setItems(new ArrayList<FeedItem>());
- feed2.setItems(new ArrayList<FeedItem>());
+ feed1.setItems(new ArrayList<>());
+ feed2.setItems(new ArrayList<>());
Feed savedFeed1 = DBTasks.updateFeed(context, feed1)[0];
Feed savedFeed2 = DBTasks.updateFeed(context, feed2)[0];
@@ -242,11 +241,11 @@ public class DBTasksTest extends InstrumentationTestCase {
final int NUM_ITEMS_NEW = 10;
final Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ 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 = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -271,7 +270,7 @@ public class DBTasksTest extends InstrumentationTestCase {
updatedFeedTest(newFeed, feedID, itemIDs, NUM_ITEMS_OLD, NUM_ITEMS_NEW);
- final Feed feedFromDB = DBReader.getFeed(context, newFeed.getId());
+ final Feed feedFromDB = DBReader.getFeed(newFeed.getId());
assertNotNull(feedFromDB);
assertTrue(feedFromDB.getId() == newFeed.getId());
updatedFeedTest(feedFromDB, feedID, itemIDs, NUM_ITEMS_OLD, NUM_ITEMS_NEW);
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java b/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java
index c6f702f3d..0af8afa83 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBTestUtils.java
@@ -1,7 +1,5 @@
package de.test.antennapod.storage;
-import android.content.Context;
-
import junit.framework.Assert;
import java.util.ArrayList;
@@ -26,14 +24,14 @@ public class DBTestUtils {
/**
* Use this method when tests don't involve chapters.
*/
- public static List<Feed> saveFeedlist(Context context, int numFeeds, int numItems, boolean withMedia) {
- return saveFeedlist(context, numFeeds, numItems, withMedia, false, 0);
+ public static List<Feed> saveFeedlist(int numFeeds, int numItems, boolean withMedia) {
+ return saveFeedlist(numFeeds, numItems, withMedia, false, 0);
}
/**
* Use this method when tests involve chapters.
*/
- public static List<Feed> saveFeedlist(Context context, int numFeeds, int numItems, boolean withMedia,
+ public static List<Feed> saveFeedlist(int numFeeds, int numItems, boolean withMedia,
boolean withChapters, int numChapters) {
if (numFeeds <= 0) {
throw new IllegalArgumentException("numFeeds<=0");
@@ -42,13 +40,13 @@ public class DBTestUtils {
throw new IllegalArgumentException("numItems<0");
}
- List<Feed> feeds = new ArrayList<Feed>();
- PodDBAdapter adapter = new PodDBAdapter(context);
+ List<Feed> feeds = new ArrayList<>();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
for (int i = 0; i < numFeeds; i++) {
Feed f = new Feed(0, new Date(), "feed " + i, "link" + i, "descr", null, null,
null, null, "id" + i, null, null, "url" + i, false, new FlattrStatus(), false, null, null, false);
- f.setItems(new ArrayList<FeedItem>());
+ 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);
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java b/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java
index c5fa2f131..2a63ef4b3 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java
@@ -29,6 +29,7 @@ import de.danoeh.antennapod.core.storage.PodDBAdapter;
* Test class for DBWriter
*/
public class DBWriterTest extends InstrumentationTestCase {
+
private static final String TAG = "DBWriterTest";
private static final String TEST_FOLDER = "testDBWriter";
private static final long TIMEOUT = 5L;
@@ -36,9 +37,10 @@ public class DBWriterTest extends InstrumentationTestCase {
@Override
protected void tearDown() throws Exception {
super.tearDown();
- final Context context = getInstrumentation().getTargetContext();
- assertTrue(PodDBAdapter.deleteDatabase(getInstrumentation().getTargetContext()));
+ assertTrue(PodDBAdapter.deleteDatabase());
+
+ final Context context = getInstrumentation().getTargetContext();
File testDir = context.getExternalFilesDir(TEST_FOLDER);
assertNotNull(testDir);
for (File f : testDir.listFiles()) {
@@ -49,10 +51,10 @@ public class DBWriterTest extends InstrumentationTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
- final Context context = getInstrumentation().getTargetContext();
- context.deleteDatabase(PodDBAdapter.DATABASE_NAME);
- // make sure database is created
- PodDBAdapter adapter = new PodDBAdapter(context);
+
+ // create new database
+ PodDBAdapter.deleteDatabase();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.close();
}
@@ -63,7 +65,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertTrue(dest.createNewFile());
Feed feed = new Feed("url", new Date(), "title");
- List<FeedItem> items = new ArrayList<FeedItem>();
+ List<FeedItem> items = new ArrayList<>();
feed.setItems(items);
FeedItem item = new FeedItem(0, "Item", "Item", "url", new Date(), FeedItem.PLAYED, feed);
@@ -72,7 +74,7 @@ public class DBWriterTest extends InstrumentationTestCase {
items.add(item);
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getTargetContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -80,7 +82,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertTrue(item.getId() != 0);
DBWriter.deleteFeedMediaOfItem(getInstrumentation().getTargetContext(), media.getId()).get();
- media = DBReader.getFeedMedia(getInstrumentation().getTargetContext(), media.getId());
+ media = DBReader.getFeedMedia(media.getId());
assertNotNull(media);
assertFalse(dest.exists());
assertFalse(media.isDownloaded());
@@ -92,7 +94,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertNotNull(destFolder);
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
// create Feed image
File imgFile = new File(destFolder, "image");
@@ -118,7 +120,7 @@ public class DBWriterTest extends InstrumentationTestCase {
item.getChapters().add(new SimpleChapter(0, "item " + i, item, "example.com"));
}
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -139,7 +141,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertFalse(f.exists());
}
- adapter = new PodDBAdapter(getInstrumentation().getContext());
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor c = adapter.getFeedCursor(feed.getId());
assertEquals(0, c.getCount());
@@ -164,7 +166,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertNotNull(destFolder);
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
feed.setImage(null);
@@ -182,7 +184,7 @@ public class DBWriterTest extends InstrumentationTestCase {
item.setMedia(media);
}
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -200,7 +202,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertFalse(f.exists());
}
- adapter = new PodDBAdapter(getInstrumentation().getContext());
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor c = adapter.getFeedCursor(feed.getId());
assertTrue(c.getCount() == 0);
@@ -229,7 +231,7 @@ public class DBWriterTest extends InstrumentationTestCase {
image.setOwner(feed);
feed.setImage(image);
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -242,7 +244,7 @@ public class DBWriterTest extends InstrumentationTestCase {
// check if files still exist
assertFalse(imgFile.exists());
- adapter = new PodDBAdapter(getInstrumentation().getContext());
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor c = adapter.getFeedCursor(feed.getId());
assertTrue(c.getCount() == 0);
@@ -257,7 +259,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertNotNull(destFolder);
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
// create Feed image
File imgFile = new File(destFolder, "image");
@@ -273,7 +275,7 @@ public class DBWriterTest extends InstrumentationTestCase {
}
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -289,7 +291,7 @@ public class DBWriterTest extends InstrumentationTestCase {
// check if files still exist
assertFalse(imgFile.exists());
- adapter = new PodDBAdapter(getInstrumentation().getContext());
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor c = adapter.getFeedCursor(feed.getId());
assertTrue(c.getCount() == 0);
@@ -309,7 +311,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertNotNull(destFolder);
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
// create Feed image
File imgFile = new File(destFolder, "image");
@@ -327,7 +329,7 @@ public class DBWriterTest extends InstrumentationTestCase {
item.setImage(itemImage);
}
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -344,7 +346,7 @@ public class DBWriterTest extends InstrumentationTestCase {
// check if files still exist
assertFalse(imgFile.exists());
- adapter = new PodDBAdapter(getInstrumentation().getContext());
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor c = adapter.getFeedCursor(feed.getId());
assertTrue(c.getCount() == 0);
@@ -367,7 +369,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertNotNull(destFolder);
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
// create Feed image
File imgFile = new File(destFolder, "image");
@@ -388,7 +390,7 @@ public class DBWriterTest extends InstrumentationTestCase {
item.setMedia(media);
}
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -460,7 +462,7 @@ public class DBWriterTest extends InstrumentationTestCase {
item.setMedia(media);
}
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getContext());
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -474,7 +476,7 @@ public class DBWriterTest extends InstrumentationTestCase {
DBWriter.deleteFeed(getInstrumentation().getTargetContext(), feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
- adapter = new PodDBAdapter(getInstrumentation().getContext());
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor c = adapter.getFeedCursor(feed.getId());
assertTrue(c.getCount() == 0);
@@ -500,7 +502,7 @@ public class DBWriterTest extends InstrumentationTestCase {
FeedMedia media = new FeedMedia(0, item, 10, 0, 1, "mime", null, "url", false, playbackCompletionDate, 0);
feed.getItems().add(item);
item.setMedia(media);
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -509,13 +511,11 @@ public class DBWriterTest extends InstrumentationTestCase {
}
public void testAddItemToPlaybackHistoryNotPlayedYet() throws ExecutionException, InterruptedException {
- final Context context = getInstrumentation().getTargetContext();
-
FeedMedia media = playbackHistorySetup(null);
- DBWriter.addItemToPlaybackHistory(context, media).get();
- PodDBAdapter adapter = new PodDBAdapter(context);
+ DBWriter.addItemToPlaybackHistory(media).get();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
- media = DBReader.getFeedMedia(context, media.getId());
+ media = DBReader.getFeedMedia(media.getId());
adapter.close();
assertNotNull(media);
@@ -524,13 +524,12 @@ public class DBWriterTest extends InstrumentationTestCase {
public void testAddItemToPlaybackHistoryAlreadyPlayed() throws ExecutionException, InterruptedException {
final long OLD_DATE = 0;
- final Context context = getInstrumentation().getTargetContext();
FeedMedia media = playbackHistorySetup(new Date(OLD_DATE));
- DBWriter.addItemToPlaybackHistory(getInstrumentation().getTargetContext(), media).get();
- PodDBAdapter adapter = new PodDBAdapter(context);
+ DBWriter.addItemToPlaybackHistory(media).get();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
- media = DBReader.getFeedMedia(context, media.getId());
+ media = DBReader.getFeedMedia(media.getId());
adapter.close();
assertNotNull(media);
@@ -541,13 +540,13 @@ public class DBWriterTest extends InstrumentationTestCase {
private Feed queueTestSetupMultipleItems(final int NUM_ITEMS) throws InterruptedException, ExecutionException, TimeoutException {
final Context context = getInstrumentation().getTargetContext();
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -568,11 +567,11 @@ public class DBWriterTest extends InstrumentationTestCase {
public void testAddQueueItemSingleItem() throws InterruptedException, ExecutionException, TimeoutException {
final Context context = getInstrumentation().getTargetContext();
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -580,7 +579,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertTrue(item.getId() != 0);
DBWriter.addQueueItem(context, item.getId()).get(TIMEOUT, TimeUnit.SECONDS);
- adapter = new PodDBAdapter(context);
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor cursor = adapter.getQueueIDCursor();
assertTrue(cursor.moveToFirst());
@@ -592,11 +591,11 @@ public class DBWriterTest extends InstrumentationTestCase {
public void testAddQueueItemSingleItemAlreadyInQueue() throws InterruptedException, ExecutionException, TimeoutException {
final Context context = getInstrumentation().getTargetContext();
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
FeedItem item = new FeedItem(0, "title", "id", "link", new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -604,7 +603,7 @@ public class DBWriterTest extends InstrumentationTestCase {
assertTrue(item.getId() != 0);
DBWriter.addQueueItem(context, item.getId()).get(TIMEOUT, TimeUnit.SECONDS);
- adapter = new PodDBAdapter(context);
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor cursor = adapter.getQueueIDCursor();
assertTrue(cursor.moveToFirst());
@@ -613,7 +612,7 @@ public class DBWriterTest extends InstrumentationTestCase {
adapter.close();
DBWriter.addQueueItem(context, item.getId()).get(TIMEOUT, TimeUnit.SECONDS);
- adapter = new PodDBAdapter(context);
+ adapter = PodDBAdapter.getInstance();
adapter.open();
cursor = adapter.getQueueIDCursor();
assertTrue(cursor.moveToFirst());
@@ -628,7 +627,7 @@ public class DBWriterTest extends InstrumentationTestCase {
final int NUM_ITEMS = 10;
Feed feed = queueTestSetupMultipleItems(NUM_ITEMS);
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor cursor = adapter.getQueueIDCursor();
assertTrue(cursor.moveToFirst());
@@ -642,12 +641,11 @@ public class DBWriterTest extends InstrumentationTestCase {
}
public void testClearQueue() throws InterruptedException, ExecutionException, TimeoutException {
- final Context context = getInstrumentation().getTargetContext();
final int NUM_ITEMS = 10;
Feed feed = queueTestSetupMultipleItems(NUM_ITEMS);
- DBWriter.clearQueue(context).get(TIMEOUT, TimeUnit.SECONDS);
- PodDBAdapter adapter = new PodDBAdapter(context);
+ DBWriter.clearQueue().get(TIMEOUT, TimeUnit.SECONDS);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor cursor = adapter.getQueueIDCursor();
assertFalse(cursor.moveToFirst());
@@ -659,13 +657,13 @@ public class DBWriterTest extends InstrumentationTestCase {
final int NUM_ITEMS = 10;
final Context context = getInstrumentation().getTargetContext();
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -675,13 +673,13 @@ public class DBWriterTest extends InstrumentationTestCase {
}
for (int removeIndex = 0; removeIndex < NUM_ITEMS; removeIndex++) {
final FeedItem item = feed.getItems().get(removeIndex);
- adapter = new PodDBAdapter(context);
+ adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setQueue(feed.getItems());
adapter.close();
DBWriter.removeQueueItem(context, item, false).get(TIMEOUT, TimeUnit.SECONDS);
- adapter = new PodDBAdapter(context);
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor queue = adapter.getQueueIDCursor();
assertTrue(queue.getCount() == NUM_ITEMS - 1);
@@ -703,15 +701,14 @@ public class DBWriterTest extends InstrumentationTestCase {
public void testMoveQueueItem() throws InterruptedException, ExecutionException, TimeoutException {
final int NUM_ITEMS = 10;
- final Context context = getInstrumentation().getTargetContext();
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), FeedItem.PLAYED, feed);
feed.getItems().add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -727,13 +724,13 @@ public class DBWriterTest extends InstrumentationTestCase {
Log.d(TAG, String.format("testMoveQueueItem: From=%d, To=%d", from, to));
final long fromID = feed.getItems().get(from).getId();
- adapter = new PodDBAdapter(context);
+ adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setQueue(feed.getItems());
adapter.close();
- DBWriter.moveQueueItem(context, from, to, false).get(TIMEOUT, TimeUnit.SECONDS);
- adapter = new PodDBAdapter(context);
+ DBWriter.moveQueueItem(from, to, false).get(TIMEOUT, TimeUnit.SECONDS);
+ adapter = PodDBAdapter.getInstance();
adapter.open();
Cursor queue = adapter.getQueueIDCursor();
assertTrue(queue.getCount() == NUM_ITEMS);
@@ -749,7 +746,6 @@ public class DBWriterTest extends InstrumentationTestCase {
}
public void testMarkFeedRead() throws InterruptedException, ExecutionException, TimeoutException {
- final Context context = getInstrumentation().getTargetContext();
final int NUM_ITEMS = 10;
Feed feed = new Feed("url", new Date(), "title");
feed.setItems(new ArrayList<FeedItem>());
@@ -758,7 +754,7 @@ public class DBWriterTest extends InstrumentationTestCase {
feed.getItems().add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -768,24 +764,23 @@ public class DBWriterTest extends InstrumentationTestCase {
assertTrue(item.getId() != 0);
}
- DBWriter.markFeedRead(context, feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
- List<FeedItem> loadedItems = DBReader.getFeedItemList(context, feed);
+ DBWriter.markFeedRead(feed.getId()).get(TIMEOUT, TimeUnit.SECONDS);
+ List<FeedItem> loadedItems = DBReader.getFeedItemList(feed);
for (FeedItem item : loadedItems) {
assertTrue(item.isPlayed());
}
}
public void testMarkAllItemsReadSameFeed() throws InterruptedException, ExecutionException, TimeoutException {
- final Context context = getInstrumentation().getTargetContext();
final int NUM_ITEMS = 10;
Feed feed = new Feed("url", new Date(), "title");
- feed.setItems(new ArrayList<FeedItem>());
+ feed.setItems(new ArrayList<>());
for (int i = 0; i < NUM_ITEMS; i++) {
FeedItem item = new FeedItem(0, "title " + i, "id " + i, "link " + i, new Date(), FeedItem.UNPLAYED, feed);
feed.getItems().add(item);
}
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.setCompleteFeed(feed);
adapter.close();
@@ -795,8 +790,8 @@ public class DBWriterTest extends InstrumentationTestCase {
assertTrue(item.getId() != 0);
}
- DBWriter.markAllItemsRead(context).get(TIMEOUT, TimeUnit.SECONDS);
- List<FeedItem> loadedItems = DBReader.getFeedItemList(context, feed);
+ DBWriter.markAllItemsRead().get(TIMEOUT, TimeUnit.SECONDS);
+ List<FeedItem> loadedItems = DBReader.getFeedItemList(feed);
for (FeedItem item : loadedItems) {
assertTrue(item.isPlayed());
}
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
index 4988d1020..f6c3d0e7d 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
@@ -44,8 +44,10 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
solo = new Solo(getInstrumentation(), getActivity());
uiTestUtils = new UITestUtils(getInstrumentation().getTargetContext());
uiTestUtils.setup();
- // create database
- PodDBAdapter adapter = new PodDBAdapter(getInstrumentation().getTargetContext());
+
+ // create new database
+ PodDBAdapter.deleteDatabase();
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.close();
@@ -59,7 +61,7 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv
uiTestUtils.tearDown();
solo.finishOpenedActivities();
- PodDBAdapter.deleteDatabase(getInstrumentation().getTargetContext());
+ PodDBAdapter.deleteDatabase();
// reset preferences
prefs.edit().clear().commit();
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java
index 8f32f86bb..b3c2ee2be 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java
@@ -1,12 +1,14 @@
package de.test.antennapod.ui;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.test.ActivityInstrumentationTestCase2;
+import android.test.FlakyTest;
+import android.widget.ImageButton;
-import com.robotium.solo.Condition;
import com.robotium.solo.Solo;
import com.robotium.solo.Timeout;
@@ -15,22 +17,120 @@ import java.util.List;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.playback.PlaybackService;
+import de.danoeh.antennapod.core.service.playback.PlayerStatus;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
+import de.danoeh.antennapod.core.util.playback.Playable;
+import de.danoeh.antennapod.core.util.playback.PlaybackController;
/**
- * Test cases for starting and ending playback from the MainActivity and AudioPlayerActivity
+ * test cases for starting and ending playback from the MainActivity and AudioPlayerActivity
*/
public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> {
+ private static final String TAG = PlaybackTest.class.getSimpleName();
+
private Solo solo;
private UITestUtils uiTestUtils;
private Context context;
+ private PlaybackController controller;
+ protected FeedMedia currentMedia;
+
+ private PlaybackController createController(Activity activity) {
+ return new PlaybackController(activity, false) {
+
+ @Override
+ public void setupGUI() {
+ }
+
+ @Override
+ public void onPositionObserverUpdate() {
+ }
+
+ @Override
+ public void onBufferStart() {
+ }
+
+ @Override
+ public void onBufferEnd() {
+ }
+
+ @Override
+ public void onBufferUpdate(float progress) {
+ }
+
+ @Override
+ public void handleError(int code) {
+ }
+
+ @Override
+ public void onReloadNotification(int code) {
+ }
+
+ @Override
+ public void onSleepTimerUpdate() {
+ }
+
+ @Override
+ public ImageButton getPlayButton() {
+ return null;
+ }
+
+ @Override
+ public void postStatusMsg(int msg) {
+ }
+
+ @Override
+ public void clearStatusMsg() {
+ }
+
+ @Override
+ public boolean loadMediaInfo() {
+ Playable playable = controller.getMedia();
+ if(playable == null) {
+ currentMedia = null;
+ return true;
+ } else if(playable instanceof FeedMedia) {
+ currentMedia = (FeedMedia) playable;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public void onAwaitingVideoSurface() {
+ }
+
+ @Override
+ public void onServiceQueried() {
+ }
+
+ @Override
+ public void onShutdownNotification() {
+ }
+
+ @Override
+ public void onPlaybackEnd() {
+ currentMedia = null;
+ }
+
+ @Override
+ public void onPlaybackSpeedChange() {
+ }
+
+ @Override
+ protected void setScreenOn(boolean enable) {
+ }
+ };
+ }
+
public PlaybackTest() {
super(MainActivity.class);
}
@@ -38,30 +138,36 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity>
@Override
public void setUp() throws Exception {
super.setUp();
+
+ PodDBAdapter.deleteDatabase();
+
+ controller = createController(getActivity());
+ controller.init();
+
solo = new Solo(getInstrumentation(), getActivity());
- context = getInstrumentation().getContext();
+ context = getInstrumentation().getTargetContext();
uiTestUtils = new UITestUtils(context);
uiTestUtils.setup();
// create database
- PodDBAdapter adapter = new PodDBAdapter(context);
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
adapter.close();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit()
+ .clear()
.putBoolean(UserPreferences.PREF_UNPAUSE_ON_HEADSET_RECONNECT, false)
.putBoolean(UserPreferences.PREF_PAUSE_ON_HEADSET_DISCONNECT, false)
- .putString(UserPreferences.PREF_HIDDEN_DRAWER_ITEMS, "")
.commit();
}
@Override
public void tearDown() throws Exception {
- uiTestUtils.tearDown();
+ controller.release();
solo.finishOpenedActivities();
- PodDBAdapter.deleteDatabase(context);
+ uiTestUtils.tearDown();
// shut down playback service
skipEpisode();
@@ -85,87 +191,106 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity>
}
private void startLocalPlayback() {
- openNavDrawer();
- solo.clickOnText(solo.getString(R.string.episodes_label));
- solo.clickOnText(solo.getString(R.string.all_episodes_short_label));
- final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(context, 10);
+ String allEpisodesLabel = solo.getString(R.string.all_episodes_label);
+ if(!getActivity().getSupportActionBar().getTitle().equals(allEpisodesLabel)) {
+ openNavDrawer();
+ solo.clickOnText(solo.getString(R.string.episodes_label));
+ solo.clickOnText(solo.getString(R.string.all_episodes_short_label));
+ }
+ final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(10);
assertTrue(solo.waitForView(solo.getView(R.id.butSecondaryAction)));
solo.clickOnView(solo.getView(R.id.butSecondaryAction));
- assertTrue(solo.waitForView(solo.getView(R.id.butPlay)));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return episodes.get(0).getMedia().isCurrentlyPlaying();
+ long mediaId = episodes.get(0).getMedia().getId();
+ boolean playing = solo.waitForCondition(() -> {
+ if (currentMedia != null) {
+ return currentMedia.getId() == mediaId;
+ } else {
+ return false;
}
- }, Timeout.getLargeTimeout());
+ }, Timeout.getSmallTimeout());
+ assertTrue(playing);
}
private void startLocalPlaybackFromQueue() {
+ openNavDrawer();
+
+ solo.clickOnText(solo.getString(R.string.queue_label));
+
assertTrue(solo.waitForView(solo.getView(R.id.butSecondaryAction)));
- final List<FeedItem> queue = DBReader.getQueue(context);
+ final List<FeedItem> queue = DBReader.getQueue();
solo.clickOnImageButton(1);
assertTrue(solo.waitForView(solo.getView(R.id.butPlay)));
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return queue.get(0).getMedia().isCurrentlyPlaying();
+ long mediaId = queue.get(0).getMedia().getId();
+ boolean playing = solo.waitForCondition(() -> {
+ if(currentMedia != null) {
+ return currentMedia.getId() == mediaId;
+ } else {
+ return false;
}
- }, Timeout.getLargeTimeout());
+ }, Timeout.getSmallTimeout());
+ assertTrue(playing);
}
public void testStartLocal() throws Exception {
uiTestUtils.addLocalFeedData(true);
- DBWriter.clearQueue(context).get();
+ DBWriter.clearQueue().get();
startLocalPlayback();
}
public void testContinousPlaybackOffSingleEpisode() throws Exception {
setContinuousPlaybackPreference(false);
uiTestUtils.addLocalFeedData(true);
- DBWriter.clearQueue(context).get();
+ DBWriter.clearQueue().get();
startLocalPlayback();
}
-
+ @FlakyTest(tolerance = 3)
public void testContinousPlaybackOffMultipleEpisodes() throws Exception {
setContinuousPlaybackPreference(false);
uiTestUtils.addLocalFeedData(true);
- List<FeedItem> queue = DBReader.getQueue(context);
+ List<FeedItem> queue = DBReader.getQueue();
final FeedItem first = queue.get(0);
- final FeedItem second = queue.get(1);
startLocalPlaybackFromQueue();
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return first.getMedia().isCurrentlyPlaying() == false;
+ boolean stopped = solo.waitForCondition(() -> {
+ if (currentMedia != null) {
+ return currentMedia.getId() != first.getMedia().getId();
+ } else {
+ return false;
}
- }, 10000);
+ }, Timeout.getSmallTimeout());
+ assertTrue(stopped);
Thread.sleep(1000);
- assertTrue(second.getMedia().isCurrentlyPlaying() == false);
+ PlayerStatus status = controller.getStatus();
+ assertFalse(status.equals(PlayerStatus.PLAYING));
}
+ @FlakyTest(tolerance = 3)
public void testContinuousPlaybackOnMultipleEpisodes() throws Exception {
setContinuousPlaybackPreference(true);
uiTestUtils.addLocalFeedData(true);
- List<FeedItem> queue = DBReader.getQueue(context);
+ List<FeedItem> queue = DBReader.getQueue();
final FeedItem first = queue.get(0);
final FeedItem second = queue.get(1);
startLocalPlaybackFromQueue();
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return first.getMedia().isCurrentlyPlaying() == false;
+ boolean firstPlaying = solo.waitForCondition(() -> {
+ if (currentMedia != null) {
+ return currentMedia.getId() == first.getMedia().getId();
+ } else {
+ return false;
}
- }, 10000);
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return second.getMedia().isCurrentlyPlaying() == true;
+ }, Timeout.getSmallTimeout());
+ assertTrue(firstPlaying);
+ boolean secondPlaying = solo.waitForCondition(() -> {
+ if (currentMedia != null) {
+ return currentMedia.getId() == second.getMedia().getId();
+ } else {
+ return false;
}
- }, 10000);
+ }, Timeout.getLargeTimeout());
+ assertTrue(secondPlaying);
}
/**
@@ -174,24 +299,34 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity>
private void replayEpisodeCheck(boolean followQueue) throws Exception {
setContinuousPlaybackPreference(followQueue);
uiTestUtils.addLocalFeedData(true);
- DBWriter.clearQueue(context).get();
- final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(context, 10);
+ DBWriter.clearQueue().get();
+ final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(10);
startLocalPlayback();
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return false == episodes.get(0).getMedia().isCurrentlyPlaying();
+ long mediaId = episodes.get(0).getMedia().getId();
+ boolean startedPlaying = solo.waitForCondition(() -> {
+ if (currentMedia != null) {
+ return currentMedia.getId() == mediaId;
+ } else {
+ return false;
}
+ }, Timeout.getSmallTimeout());
+ assertTrue(startedPlaying);
+
+ boolean stoppedPlaying = solo.waitForCondition(() -> {
+ return currentMedia == null || currentMedia.getId() != mediaId;
}, Timeout.getLargeTimeout());
+ assertTrue(stoppedPlaying);
startLocalPlayback();
- solo.waitForCondition(new Condition() {
- @Override
- public boolean isSatisfied() {
- return false == episodes.get(0).getMedia().isCurrentlyPlaying();
+ boolean startedReplay = solo.waitForCondition(() -> {
+ if(currentMedia != null) {
+ return currentMedia.getId() == mediaId;
+ } else {
+ return false;
}
}, Timeout.getLargeTimeout());
+ assertTrue(startedReplay);
}
public void testReplayEpisodeContinuousPlaybackOn() throws Exception {
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
index 7bbc6e462..9859e7534 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java
@@ -4,6 +4,7 @@ import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Build;
+import android.util.Log;
import junit.framework.Assert;
@@ -38,6 +39,8 @@ import de.test.antennapod.util.syndication.feedgenerator.RSS2Generator;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class UITestUtils {
+ private static final String TAG = UITestUtils.class.getSimpleName();
+
private static final String DATA_FOLDER = "test/UITestUtils";
public static final int NUM_FEEDS = 5;
@@ -79,7 +82,7 @@ public class UITestUtils {
server.stop();
if (localFeedDataAdded) {
- PodDBAdapter.deleteDatabase(context);
+ PodDBAdapter.deleteDatabase();
}
}
@@ -174,16 +177,15 @@ public class UITestUtils {
*/
public void addLocalFeedData(boolean downloadEpisodes) throws Exception {
if (localFeedDataAdded) {
- throw new IllegalStateException("addLocalFeedData was called twice on the same instance");
+ Log.w(TAG, "addLocalFeedData was called twice on the same instance");
+ // might be a flaky test, this is actually not that severe
+ return;
}
if (!feedDataHosted) {
addHostedFeedData();
}
- List<FeedItem> queue = new ArrayList<FeedItem>();
-
- PodDBAdapter adapter = new PodDBAdapter(context);
- adapter.open();
+ List<FeedItem> queue = new ArrayList<>();
for (Feed feed : hostedFeeds) {
feed.setDownloaded(true);
if (feed.getImage() != null) {
@@ -206,6 +208,10 @@ public class UITestUtils {
queue.add(feed.getItems().get(0));
feed.getItems().get(1).getMedia().setPlaybackCompletionDate(new Date());
}
+ localFeedDataAdded = true;
+
+ PodDBAdapter adapter = PodDBAdapter.getInstance();
+ adapter.open();
adapter.setCompleteFeed(hostedFeeds.toArray(new Feed[hostedFeeds.size()]));
adapter.setQueue(queue);
adapter.close();
diff --git a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java
index 5442c6988..66d7a25f0 100644
--- a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java
+++ b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java
@@ -9,6 +9,7 @@ import com.joanzapata.iconify.fonts.FontAwesomeModule;
import de.danoeh.antennapod.core.feed.EventDistributor;
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
import de.danoeh.antennapod.core.preferences.UserPreferences;
+import de.danoeh.antennapod.core.storage.PodDBAdapter;
import de.danoeh.antennapod.core.util.NetworkUtils;
import de.danoeh.antennapod.spa.SPAUtil;
@@ -40,6 +41,7 @@ public class PodcastApp extends Application {
singleton = this;
LOGICAL_DENSITY = getResources().getDisplayMetrics().density;
+ PodDBAdapter.init(this);
UpdateManager.init(this);
UserPreferences.init(this);
PlaybackPreferences.init(this);
diff --git a/app/src/main/java/de/danoeh/antennapod/UpdateManager.java b/app/src/main/java/de/danoeh/antennapod/UpdateManager.java
index 2f6bb1b50..b1d7fffc8 100644
--- a/app/src/main/java/de/danoeh/antennapod/UpdateManager.java
+++ b/app/src/main/java/de/danoeh/antennapod/UpdateManager.java
@@ -65,9 +65,9 @@ public class UpdateManager {
// from now on, Glide will handle caching images
new Thread() {
public void run() {
- List<Feed> feeds = DBReader.getFeedList(context);
+ List<Feed> feeds = DBReader.getFeedList();
for (Feed podcast : feeds) {
- List<FeedItem> episodes = DBReader.getFeedItemList(context, podcast);
+ List<FeedItem> episodes = DBReader.getFeedItemList(podcast);
for (FeedItem episode : episodes) {
FeedImage image = episode.getImage();
if (image != null && image.isDownloaded() && image.getFile_url() != null) {
@@ -76,7 +76,7 @@ public class UpdateManager {
imageFile.delete();
}
image.setFile_url(null); // calls setDownloaded(false)
- DBWriter.setFeedImage(context, image);
+ DBWriter.setFeedImage(image);
}
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
index c3d82c41d..417d49e83 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
@@ -6,7 +6,6 @@ import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.drawable.BitmapDrawable;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
@@ -60,6 +59,10 @@ import de.danoeh.antennapod.fragment.CoverFragment;
import de.danoeh.antennapod.fragment.ItemDescriptionFragment;
import de.danoeh.antennapod.menuhandler.NavDrawerActivity;
import de.danoeh.antennapod.preferences.PreferenceController;
+import rx.Observable;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
/**
* Activity for playing audio files.
@@ -104,6 +107,8 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
private ImageButton butNavChaptersShownotes;
private ImageButton butShowCover;
+ private Subscription subscription;
+
private PopupWindow popupWindow;
private void resetFragmentView() {
@@ -145,7 +150,9 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop()");
- cancelLoadTask();
+ if(subscription != null) {
+ subscription.unsubscribe();
+ }
EventDistributor.getInstance().unregister(contentUpdate);
}
@@ -716,10 +723,10 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset());
switch(item.getItemId()) {
case R.id.mark_all_seen_item:
- DBWriter.markFeedSeen(this, feed.getId());
+ DBWriter.markFeedSeen(feed.getId());
return true;
case R.id.mark_all_read_item:
- DBWriter.markFeedRead(this, feed.getId());
+ DBWriter.markFeedRead(feed.getId());
return true;
case R.id.remove_item:
final FeedRemover remover = new FeedRemover(this, feed) {
@@ -747,32 +754,22 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
private DBReader.NavDrawerData navDrawerData;
- private AsyncTask<Void, Void, DBReader.NavDrawerData> loadTask;
private void loadData() {
- loadTask = new AsyncTask<Void, Void, DBReader.NavDrawerData>() {
- @Override
- protected DBReader.NavDrawerData doInBackground(Void... params) {
- return DBReader.getNavDrawerData(AudioplayerActivity.this);
- }
-
- @Override
- protected void onPostExecute(DBReader.NavDrawerData result) {
- super.onPostExecute(result);
- navDrawerData = result;
- if (navAdapter != null) {
- navAdapter.notifyDataSetChanged();
- }
- }
- };
- loadTask.execute();
+ subscription = Observable.defer(() -> Observable.just(DBReader.getNavDrawerData()))
+ .subscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(result -> {
+ navDrawerData = result;
+ if (navAdapter != null) {
+ navAdapter.notifyDataSetChanged();
+ }
+ }, error -> {
+ Log.e(TAG, Log.getStackTraceString(error));
+ });
}
- private void cancelLoadTask() {
- if (loadTask != null) {
- loadTask.cancel(true);
- }
- }
+
private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java
index cc4d459c8..80883e4ae 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java
@@ -26,7 +26,6 @@ import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.joanzapata.iconify.Iconify;
import de.danoeh.antennapod.R;
@@ -111,7 +110,7 @@ public class FeedInfoActivity extends ActionBarActivity {
@Override
protected Feed doInBackground(Long... params) {
- return DBReader.getFeed(FeedInfoActivity.this, params[0]);
+ return DBReader.getFeed(params[0]);
}
@Override
@@ -239,7 +238,7 @@ public class FeedInfoActivity extends ActionBarActivity {
prefs.setPassword(etxtPassword.getText().toString());
}
if (authInfoChanged || autoDeleteChanged) {
- DBWriter.setFeedPreferences(this, prefs);
+ DBWriter.setFeedPreferences(prefs);
}
authInfoChanged = false;
autoDeleteChanged = false;
@@ -299,7 +298,7 @@ public class FeedInfoActivity extends ActionBarActivity {
@Override
public void onConfirmButtonPressed(DialogInterface dialog) {
- DBWriter.setFeedsItemsAutoDownload(context, feed, autoDownload);
+ DBWriter.setFeedsItemsAutoDownload(feed, autoDownload);
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index 9caa35b5b..76d657585 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -58,6 +58,10 @@ import de.danoeh.antennapod.fragment.QueueFragment;
import de.danoeh.antennapod.menuhandler.NavDrawerActivity;
import de.danoeh.antennapod.preferences.PreferenceController;
import de.greenrobot.event.EventBus;
+import rx.Observable;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
/**
* The activity that is shown when the user launches the app.
@@ -106,6 +110,8 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
private ProgressDialog pd;
+ private Subscription subscription;
+
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(UserPreferences.getNoTitleTheme());
@@ -478,9 +484,11 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
@Override
protected void onStop() {
super.onStop();
- cancelLoadTask();
EventDistributor.getInstance().unregister(contentUpdate);
EventBus.getDefault().unregister(this);
+ if(subscription != null) {
+ subscription.unsubscribe();
+ }
if(pd != null) {
pd.dismiss();
}
@@ -551,10 +559,10 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset());
switch(item.getItemId()) {
case R.id.mark_all_seen_item:
- DBWriter.markFeedSeen(this, feed.getId());
+ DBWriter.markFeedSeen(feed.getId());
return true;
case R.id.mark_all_read_item:
- DBWriter.markFeedRead(this, feed.getId());
+ DBWriter.markFeedRead(feed.getId());
return true;
case R.id.remove_item:
final FeedRemover remover = new FeedRemover(this, feed) {
@@ -629,33 +637,21 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
};
private void loadData() {
- cancelLoadTask();
- loadTask = new AsyncTask<Void, Void, DBReader.NavDrawerData>() {
- @Override
- protected DBReader.NavDrawerData doInBackground(Void... params) {
- return DBReader.getNavDrawerData(MainActivity.this);
- }
-
- @Override
- protected void onPostExecute(DBReader.NavDrawerData result) {
- super.onPostExecute(navDrawerData);
- boolean handleIntent = (navDrawerData == null);
+ subscription = Observable.defer(() -> Observable.just(DBReader.getNavDrawerData()))
+ .subscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(result -> {
+ boolean handleIntent = (navDrawerData == null);
- navDrawerData = result;
- navAdapter.notifyDataSetChanged();
+ navDrawerData = result;
+ navAdapter.notifyDataSetChanged();
- if (handleIntent) {
- handleNavIntent();
- }
- }
- };
- loadTask.execute();
- }
-
- private void cancelLoadTask() {
- if (loadTask != null) {
- loadTask.cancel(true);
- }
+ if (handleIntent) {
+ handleNavIntent();
+ }
+ }, error -> {
+ Log.e(TAG, Log.getStackTraceString(error));
+ });
}
public void onEvent(QueueEvent event) {
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
index 13d5e7acf..a629b8758 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
@@ -109,7 +109,7 @@ public class OnlineFeedViewActivity extends ActionBarActivity {
@Override
public void update(EventDistributor eventDistributor, Integer arg) {
if ((arg & EventDistributor.FEED_LIST_UPDATE) != 0) {
- updater = Observable.defer(() -> Observable.just(DBReader.getFeedList(OnlineFeedViewActivity.this)))
+ updater = Observable.defer(() -> Observable.just(DBReader.getFeedList()))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(feeds -> {
@@ -263,7 +263,7 @@ public class OnlineFeedViewActivity extends ActionBarActivity {
download = Observable.create(new Observable.OnSubscribe<DownloadStatus>() {
@Override
public void call(Subscriber<? super DownloadStatus> subscriber) {
- feeds = DBReader.getFeedList(OnlineFeedViewActivity.this);
+ feeds = DBReader.getFeedList();
downloader = new HttpDownloader(request);
downloader.call();
Log.d(TAG, "Download was completed");
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java
index aca2b359a..d60888a43 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/ActionButtonUtils.java
@@ -64,7 +64,7 @@ public class ActionButtonUtils {
butSecondary.setContentDescription(context.getString(labels[1]));
} else {
// item is not downloaded and not being downloaded
- LongList queueIds = DBReader.getQueueIDList(context);
+ LongList queueIds = DBReader.getQueueIDList();
if(DefaultActionButtonCallback.userAllowedMobileDownloads() ||
!DefaultActionButtonCallback.userChoseAddToQueue() || queueIds.contains(item.getId())) {
butSecondary.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java
index b9247e76b..f17f0ba0f 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java
@@ -57,7 +57,7 @@ public class DefaultActionButtonCallback implements ActionButtonCallback {
final FeedMedia media = item.getMedia();
boolean isDownloading = DownloadRequester.getInstance().isDownloadingFile(media);
if (!isDownloading && !media.isDownloaded()) {
- LongList queueIds = DBReader.getQueueIDList(context);
+ LongList queueIds = DBReader.getQueueIDList();
if (NetworkUtils.isDownloadAllowed() || userAllowedMobileDownloads()) {
try {
DBTasks.downloadFeedItems(context, item);
@@ -75,7 +75,7 @@ public class DefaultActionButtonCallback implements ActionButtonCallback {
} else if (isDownloading) {
DownloadRequester.getInstance().cancelDownload(context, media);
if(UserPreferences.isEnableAutodownload()) {
- DBWriter.setFeedItemAutoDownload(context, media.getItem(), false);
+ DBWriter.setFeedItemAutoDownload(media.getItem(), false);
Toast.makeText(context, R.string.download_canceled_autodownload_enabled_msg, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, R.string.download_canceled_msg, Toast.LENGTH_LONG).show();
@@ -93,7 +93,7 @@ public class DefaultActionButtonCallback implements ActionButtonCallback {
}
} else {
if (!item.isPlayed()) {
- DBWriter.markItemPlayed(context, item, FeedItem.PLAYED, true);
+ DBWriter.markItemPlayed(item, FeedItem.PLAYED, true);
}
}
}
@@ -117,7 +117,7 @@ public class DefaultActionButtonCallback implements ActionButtonCallback {
}
}
});
- LongList queueIds = DBReader.getQueueIDList(context);
+ LongList queueIds = DBReader.getQueueIDList();
if(!queueIds.contains(item.getId())) {
builder.setNeutralButton(context.getText(R.string.confirm_mobile_download_dialog_only_add_to_queue),
new DialogInterface.OnClickListener() {
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
index 6961cf5c1..4ccff39af 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
@@ -123,7 +123,7 @@ public class DownloadLogAdapter extends BaseAdapter {
public void onClick(View v) {
ButtonHolder holder = (ButtonHolder) v.getTag();
if(holder.typeId == Feed.FEEDFILETYPE_FEED) {
- Feed feed = DBReader.getFeed(context, holder.id);
+ Feed feed = DBReader.getFeed(holder.id);
if (feed != null) {
feed.setLastUpdate(new Date(0)); // force refresh
try {
@@ -135,7 +135,7 @@ public class DownloadLogAdapter extends BaseAdapter {
Log.wtf(TAG, "Could not find feed for feed id: " + holder.id);
}
} else if(holder.typeId == FeedMedia.FEEDFILETYPE_FEEDMEDIA) {
- FeedMedia media = DBReader.getFeedMedia(context, holder.id);
+ FeedMedia media = DBReader.getFeedMedia(holder.id);
try {
DBTasks.downloadFeedItems(context, media.getItem());
Toast.makeText(context, R.string.status_downloading_label, Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlExportWorker.java b/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlExportWorker.java
index f12b0fe3a..3656c3638 100644
--- a/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlExportWorker.java
+++ b/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlExportWorker.java
@@ -59,7 +59,7 @@ public class OpmlExportWorker extends AsyncTask<Void, Void, Void> {
OutputStreamWriter writer = null;
try {
writer = new OutputStreamWriter(new FileOutputStream(output), LangUtils.UTF_8);
- opmlWriter.writeDocument(DBReader.getFeedList(context), writer);
+ opmlWriter.writeDocument(DBReader.getFeedList(), writer);
} catch (IOException e) {
e.printStackTrace();
exception = e;
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
index dbc99b21a..37ca0ad26 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
@@ -372,12 +372,12 @@ public class EpisodesApplyActionFragment extends Fragment {
}
private void markedCheckedPlayed() {
- DBWriter.markItemPlayed(getActivity(), FeedItem.PLAYED, checkedIds.toArray());
+ DBWriter.markItemPlayed(FeedItem.PLAYED, checkedIds.toArray());
close();
}
private void markedCheckedUnplayed() {
- DBWriter.markItemPlayed(getActivity(), FeedItem.UNPLAYED, checkedIds.toArray());
+ DBWriter.markItemPlayed(FeedItem.UNPLAYED, checkedIds.toArray());
close();
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
index d55466b10..5d0edb638 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
@@ -38,6 +38,7 @@ import de.danoeh.antennapod.core.feed.EventDistributor;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.feed.QueueEvent;
import de.danoeh.antennapod.core.service.download.DownloadService;
import de.danoeh.antennapod.core.service.download.Downloader;
import de.danoeh.antennapod.core.storage.DBReader;
@@ -57,6 +58,7 @@ public class AllEpisodesFragment extends Fragment {
public static final String TAG = "AllEpisodesFragment";
private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED |
+ EventDistributor.FEED_LIST_UPDATE |
EventDistributor.DOWNLOAD_QUEUED |
EventDistributor.UNREAD_ITEMS_UPDATE |
EventDistributor.PLAYER_STATUS_UPDATE;
@@ -251,7 +253,7 @@ public class AllEpisodesFragment extends Fragment {
public void onConfirmButtonPressed(
DialogInterface dialog) {
dialog.dismiss();
- DBWriter.markAllItemsRead(getActivity());
+ DBWriter.markAllItemsRead();
Toast.makeText(getActivity(), R.string.mark_all_read_msg, Toast.LENGTH_SHORT).show();
}
};
@@ -485,14 +487,14 @@ public class AllEpisodesFragment extends Fragment {
if (context != null) {
if(showOnlyNewEpisodes) {
return new Object[] {
- DBReader.getNewItemsList(context),
- DBReader.getQueueIDList(context),
+ DBReader.getNewItemsList(),
+ DBReader.getQueueIDList(),
null // see ItemAccess.isNew
};
} else {
return new Object[]{
- DBReader.getRecentlyPublishedEpisodes(context, RECENT_EPISODES_LIMIT),
- DBReader.getQueueIDList(context)
+ DBReader.getRecentlyPublishedEpisodes(RECENT_EPISODES_LIMIT),
+ DBReader.getQueueIDList()
};
}
} else {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
index 3ca5b3c89..278928f3d 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
@@ -179,7 +179,7 @@ public class CompletedDownloadsFragment extends ListFragment {
protected List<FeedItem> doInBackground(Void... params) {
Context context = getActivity();
if (context != null) {
- return DBReader.getDownloadedItems(context);
+ return DBReader.getDownloadedItems();
}
return Collections.emptyList();
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
index 074a87ea0..da2c05a69 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
@@ -142,7 +142,7 @@ public class DownloadLogFragment extends ListFragment {
if (!super.onOptionsItemSelected(item)) {
switch (item.getItemId()) {
case R.id.clear_history_item:
- DBWriter.clearDownloadLog(getActivity());
+ DBWriter.clearDownloadLog();
return true;
default:
return false;
@@ -170,7 +170,7 @@ public class DownloadLogFragment extends ListFragment {
protected List<DownloadStatus> doInBackground(Void... params) {
Context context = getActivity();
if (context != null) {
- return DBReader.getDownloadLog(context);
+ return DBReader.getDownloadLog();
}
return null;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
index 9693e6886..faa4413bb 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
@@ -210,7 +210,7 @@ public class ItemDescriptionFragment extends Fragment {
@Override
protected FeedItem doInBackground(Void... voids) {
- return DBReader.getFeedItem(getActivity(), getArguments().getLong(ARG_FEEDITEM_ID));
+ return DBReader.getFeedItem(getArguments().getLong(ARG_FEEDITEM_ID));
}
@Override
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
index 4edb7f36f..353d8149c 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
@@ -36,7 +36,6 @@ import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
import java.util.List;
@@ -497,12 +496,12 @@ public class ItemFragment extends Fragment implements LoaderManager.LoaderCallba
return new DBTaskLoader<Pair<FeedItem,LongList>>(getActivity()) {
@Override
public Pair<FeedItem,LongList> loadInBackground() {
- FeedItem data1 = DBReader.getFeedItem(getContext(), itemID);
+ FeedItem data1 = DBReader.getFeedItem(itemID);
if (data1 != null) {
Timeline t = new Timeline(getActivity(), data1);
webviewData = t.processShownotes(false);
}
- LongList data2 = DBReader.getQueueIDList(getContext());
+ LongList data2 = DBReader.getQueueIDList();
return Pair.create(data1, data2);
}
};
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
index 18a9d09d6..38c9b645a 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java
@@ -630,12 +630,12 @@ public class ItemlistFragment extends ListFragment {
long feedID = params[0];
Context context = getActivity();
if (context != null) {
- Feed feed = DBReader.getFeed(context, feedID);
+ Feed feed = DBReader.getFeed(feedID);
if(feed != null && feed.getItemFilter() != null) {
FeedItemFilter filter = feed.getItemFilter();
feed.setItems(filter.filter(context, feed.getItems()));
}
- LongList queuedItemsIds = DBReader.getQueueIDList(context);
+ LongList queuedItemsIds = DBReader.getQueueIDList();
return new Object[] { feed, queuedItemsIds };
} else {
return null;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
index 6c2271d79..6177f2a50 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
@@ -73,7 +73,7 @@ public class NewEpisodesFragment extends AllEpisodesFragment {
FeedItem item = (FeedItem) listView.getAdapter().getItem(which);
// we're marking it as unplayed since the user didn't actually play it
// but they don't want it considered 'NEW' anymore
- DBWriter.markItemPlayed(getActivity(), FeedItem.UNPLAYED, item.getId());
+ DBWriter.markItemPlayed(FeedItem.UNPLAYED, item.getId());
undoBarController.showUndoBar(false,
getString(R.string.marked_as_read_label), new FeedItemUndoToken(item,
which)
@@ -89,14 +89,14 @@ public class NewEpisodesFragment extends AllEpisodesFragment {
public void onUndo(FeedItemUndoToken token) {
if (token != null) {
long itemId = token.getFeedItemId();
- DBWriter.markItemPlayed(context, FeedItem.NEW, itemId);
+ DBWriter.markItemPlayed(FeedItem.NEW, itemId);
}
}
@Override
public void onHide(FeedItemUndoToken token) {
if (token != null && context != null) {
long itemId = token.getFeedItemId();
- FeedItem item = DBReader.getFeedItem(context, itemId);
+ FeedItem item = DBReader.getFeedItem(itemId);
FeedMedia media = item.getMedia();
if(media != null && media.hasAlmostEnded() && item.getFeed().getPreferences().getCurrentAutoDelete()) {
DBWriter.deleteFeedMediaOfItem(context, media.getId());
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
index b094133d3..530883667 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
@@ -164,7 +164,7 @@ public class PlaybackHistoryFragment extends ListFragment {
if (!super.onOptionsItemSelected(item)) {
switch (item.getItemId()) {
case R.id.clear_history_item:
- DBWriter.clearPlaybackHistory(getActivity());
+ DBWriter.clearPlaybackHistory();
return true;
default:
return false;
@@ -267,9 +267,9 @@ public class PlaybackHistoryFragment extends ListFragment {
protected Pair<List<FeedItem>,LongList> doInBackground(Void... params) {
Context context = activity.get();
if (context != null) {
- List<FeedItem> history = DBReader.getPlaybackHistory(context);
- LongList queue = DBReader.getQueueIDList(context);
- DBReader.loadFeedDataOfFeedItemlist(context, history);
+ List<FeedItem> history = DBReader.getPlaybackHistory();
+ LongList queue = DBReader.getQueueIDList();
+ DBReader.loadFeedDataOfFeedItemlist(history);
return Pair.create(history, queue);
} else {
return null;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index 24c9fc425..63c319e03 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -269,7 +269,7 @@ public class QueueFragment extends Fragment {
public void onConfirmButtonPressed(
DialogInterface dialog) {
dialog.dismiss();
- DBWriter.clearQueue(getActivity());
+ DBWriter.clearQueue();
}
};
conDialog.createNewDialog().show();
@@ -402,7 +402,7 @@ public class QueueFragment extends Fragment {
final FeedItem item = queue.remove(from);
queue.add(to, item);
listAdapter.notifyDataSetChanged();
- DBWriter.moveQueueItem(getActivity(), from, to, true);
+ DBWriter.moveQueueItem(from, to, true);
}
@Override
@@ -432,10 +432,12 @@ public class QueueFragment extends Fragment {
public void onHide(FeedItemUndoToken token) {
if (token != null && context != null) {
long itemId = token.getFeedItemId();
- FeedItem item = DBReader.getFeedItem(context, itemId);
- FeedMedia media = item.getMedia();
- if(media != null && media.hasAlmostEnded() && item.getFeed().getPreferences().getCurrentAutoDelete()) {
- DBWriter.deleteFeedMediaOfItem(context, media.getId());
+ FeedItem item = DBReader.getFeedItem(itemId);
+ if(item != null) {
+ FeedMedia media = item.getMedia();
+ if (media != null && media.hasAlmostEnded() && item.getFeed().getPreferences().getCurrentAutoDelete()) {
+ DBWriter.deleteFeedMediaOfItem(context, media.getId());
+ }
}
}
}
@@ -608,7 +610,7 @@ public class QueueFragment extends Fragment {
protected List<FeedItem> doInBackground(Void... params) {
Context context = activity.get();
if (context != null) {
- return DBReader.getQueue(context);
+ return DBReader.getQueue();
}
return null;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
index eb4d18328..544bdfc43 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
@@ -81,8 +81,8 @@ public class RunningDownloadsFragment extends ListFragment {
if(downloadRequest.getFeedfileType() == FeedMedia.FEEDFILETYPE_FEEDMEDIA &&
UserPreferences.isEnableAutodownload()) {
- FeedMedia media = DBReader.getFeedMedia(getActivity(), downloadRequest.getFeedfileId());
- DBWriter.setFeedItemAutoDownload(getActivity(), media.getItem(), false);
+ FeedMedia media = DBReader.getFeedMedia(downloadRequest.getFeedfileId());
+ DBWriter.setFeedItemAutoDownload(media.getItem(), false);
Toast.makeText(getActivity(), R.string.download_canceled_autodownload_enabled_msg, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), R.string.download_canceled_msg, Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
index 014b44078..510ea2760 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
@@ -155,7 +155,7 @@ public class FeedItemMenuHandler {
break;
case R.id.mark_read_item:
selectedItem.setPlayed(true);
- DBWriter.markItemPlayed(context, selectedItem, FeedItem.PLAYED, false);
+ DBWriter.markItemPlayed(selectedItem, FeedItem.PLAYED, false);
if(GpodnetPreferences.loggedIn()) {
FeedMedia media = selectedItem.getMedia();
// not all items have media, Gpodder only cares about those that do
@@ -173,7 +173,7 @@ public class FeedItemMenuHandler {
break;
case R.id.mark_unread_item:
selectedItem.setPlayed(false);
- DBWriter.markItemPlayed(context, selectedItem, FeedItem.UNPLAYED, false);
+ DBWriter.markItemPlayed(selectedItem, FeedItem.UNPLAYED, false);
if(GpodnetPreferences.loggedIn()) {
GpodnetEpisodeAction actionNew = new GpodnetEpisodeAction.Builder(selectedItem, Action.NEW)
.currentDeviceId()
@@ -183,10 +183,10 @@ public class FeedItemMenuHandler {
}
break;
case R.id.move_to_top_item:
- DBWriter.moveQueueItemToTop(context, selectedItem.getId(), true);
+ DBWriter.moveQueueItemToTop(selectedItem.getId(), true);
return true;
case R.id.move_to_bottom_item:
- DBWriter.moveQueueItemToBottom(context, selectedItem.getId(), true);
+ DBWriter.moveQueueItemToBottom(selectedItem.getId(), true);
case R.id.add_to_queue_item:
DBWriter.addQueueItem(context, selectedItem.getId());
break;
@@ -195,15 +195,15 @@ public class FeedItemMenuHandler {
break;
case R.id.reset_position:
selectedItem.getMedia().setPosition(0);
- DBWriter.markItemPlayed(context, selectedItem, FeedItem.UNPLAYED, true);
+ DBWriter.markItemPlayed(selectedItem, FeedItem.UNPLAYED, true);
break;
case R.id.activate_auto_download:
selectedItem.setAutoDownload(true);
- DBWriter.setFeedItemAutoDownload(context, selectedItem, true);
+ DBWriter.setFeedItemAutoDownload(selectedItem, true);
break;
case R.id.deactivate_auto_download:
selectedItem.setAutoDownload(false);
- DBWriter.setFeedItemAutoDownload(context, selectedItem, false);
+ DBWriter.setFeedItemAutoDownload(selectedItem, false);
break;
case R.id.visit_website_item:
Uri uri = Uri.parse(selectedItem.getLink());
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
index 3df59724d..f32a1c2ee 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
@@ -78,7 +78,7 @@ public class FeedMenuHandler {
public void onConfirmButtonPressed(
DialogInterface dialog) {
dialog.dismiss();
- DBWriter.markFeedRead(context, selectedFeed.getId());
+ DBWriter.markFeedRead(selectedFeed.getId());
}
};
conDialog.createNewDialog().show();
@@ -138,7 +138,7 @@ public class FeedMenuHandler {
@Override
public void onClick(DialogInterface dialog, int which) {
feed.setHiddenItemProperties(hidden.toArray(new String[hidden.size()]));
- DBWriter.setFeedItemsFilter(context, feed.getId(), hidden);
+ DBWriter.setFeedItemsFilter(feed.getId(), hidden);
}
});
builder.setNegativeButton(R.string.cancel_label, null);
diff --git a/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java b/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java
index 0f726f214..d7a049a32 100644
--- a/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java
+++ b/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java
@@ -58,9 +58,9 @@ public class PlayerWidgetService extends Service {
if (media.hasAlmostEnded()) {
Log.d(TAG, "smart mark as read");
FeedItem item = media.getItem();
- DBWriter.markItemPlayed(this, item, FeedItem.PLAYED, false);
+ DBWriter.markItemPlayed(item, FeedItem.PLAYED, false);
DBWriter.removeQueueItem(this, item, false);
- DBWriter.addItemToPlaybackHistory(this, media);
+ DBWriter.addItemToPlaybackHistory(media);
if (item.getFeed().getPreferences().getCurrentAutoDelete()) {
Log.d(TAG, "Delete " + media.toString());
DBWriter.deleteFeedMediaOfItem(this, media.getId());