From 67cc7c98857b3fa0897ab96b2b87f52d99e4de2f Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Sat, 28 Mar 2015 10:59:07 +0100 Subject: Sync episode actions with gpodder, smart mark as played * Create episode actions when episodes are downloaded, played, deleted and marked as read * Sync (download and upload) episode actions * MediaPlayerActivity deletes almost completely played episode on close * Improved parsing of datetime strings * Smart mark as played can be disabled or set in the preferences --- .../util/syndication/feedgenerator/AtomGenerator.java | 14 ++++++++------ .../util/syndication/feedgenerator/RSS2Generator.java | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'app/src/androidTest') diff --git a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java index 69cc827ec..bd3df0f9d 100644 --- a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java +++ b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/AtomGenerator.java @@ -1,15 +1,17 @@ package de.test.antennapod.util.syndication.feedgenerator; import android.util.Xml; -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.syndication.util.SyndDateUtils; + import org.xmlpull.v1.XmlSerializer; import java.io.IOException; import java.io.OutputStream; +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.util.DateUtils; + /** * Creates Atom feeds. See FeedGenerator for more information. */ @@ -83,9 +85,9 @@ public class AtomGenerator implements FeedGenerator{ if (item.getPubDate() != null) { xml.startTag(null, "published"); if ((flags & FEATURE_USE_RFC3339LOCAL) != 0) { - xml.text(SyndDateUtils.formatRFC3339Local(item.getPubDate())); + xml.text(DateUtils.formatRFC3339Local(item.getPubDate())); } else { - xml.text(SyndDateUtils.formatRFC3339UTC(item.getPubDate())); + xml.text(DateUtils.formatRFC3339UTC(item.getPubDate())); } xml.endTag(null, "published"); } diff --git a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java index d37434f06..27e89620d 100644 --- a/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java +++ b/app/src/androidTest/java/de/test/antennapod/util/syndication/feedgenerator/RSS2Generator.java @@ -3,7 +3,7 @@ package de.test.antennapod.util.syndication.feedgenerator; import android.util.Xml; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedItem; -import de.danoeh.antennapod.core.syndication.util.SyndDateUtils; +import de.danoeh.antennapod.core.util.DateUtils; import org.xmlpull.v1.XmlSerializer; import java.io.IOException; @@ -79,7 +79,7 @@ public class RSS2Generator implements FeedGenerator{ } if (item.getPubDate() != null) { xml.startTag(null, "pubDate"); - xml.text(SyndDateUtils.formatRFC822Date(item.getPubDate())); + xml.text(DateUtils.formatRFC822Date(item.getPubDate())); xml.endTag(null, "pubDate"); } if ((flags & FEATURE_WRITE_GUID) != 0) { -- cgit v1.2.3 From fbf1d8373c4e6bd38a73af7e8ff0abe932da0ad8 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Sun, 5 Apr 2015 19:48:57 +0200 Subject: Minor changes: Log, import order, small refactorings --- .../playback/PlaybackServiceTaskManagerTest.java | 15 ++++++----- .../de/test/antennapod/storage/DBReaderTest.java | 3 ++- .../de/test/antennapod/storage/DBWriterTest.java | 30 +++++++++++----------- .../java/de/test/antennapod/ui/UITestUtils.java | 2 ++ 4 files changed, 28 insertions(+), 22 deletions(-) (limited to 'app/src/androidTest') 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 81d684595..58c9801d8 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 @@ -2,12 +2,6 @@ package de.test.antennapod.service.playback; import android.content.Context; import android.test.InstrumentationTestCase; -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.service.playback.PlaybackServiceTaskManager; -import de.danoeh.antennapod.core.storage.PodDBAdapter; -import de.danoeh.antennapod.core.util.playback.Playable; import java.util.ArrayList; import java.util.Date; @@ -15,6 +9,15 @@ import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +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.QueueEvent; +import de.danoeh.antennapod.core.service.playback.PlaybackServiceTaskManager; +import de.danoeh.antennapod.core.storage.PodDBAdapter; +import de.danoeh.antennapod.core.util.playback.Playable; +import de.greenrobot.event.EventBus; + /** * Test class for PlaybackServiceTaskManager */ 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 1f6a907d4..dfb5fd381 100644 --- a/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java +++ b/app/src/androidTest/java/de/test/antennapod/storage/DBReaderTest.java @@ -14,6 +14,7 @@ import de.danoeh.antennapod.core.feed.FeedMedia; 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; @@ -194,7 +195,7 @@ public class DBReaderTest extends InstrumentationTestCase { final Context context = getInstrumentation().getTargetContext(); final int numItems = 10; List queue = saveQueue(numItems); - List ids = DBReader.getQueueIDList(context); + LongList ids = DBReader.getQueueIDList(context); assertNotNull(ids); assertTrue(queue.size() == ids.size()); for (int i = 0; i < queue.size(); i++) { 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 ec8e19e22..f3b0c9165 100644 --- a/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java +++ b/app/src/androidTest/java/de/test/antennapod/storage/DBWriterTest.java @@ -5,16 +5,6 @@ import android.database.Cursor; import android.test.InstrumentationTestCase; import android.util.Log; -import de.danoeh.antennapod.core.feed.Chapter; -import de.danoeh.antennapod.core.feed.Feed; -import de.danoeh.antennapod.core.feed.FeedImage; -import de.danoeh.antennapod.core.feed.FeedItem; -import de.danoeh.antennapod.core.feed.FeedMedia; -import de.danoeh.antennapod.core.feed.SimpleChapter; -import de.danoeh.antennapod.core.storage.DBReader; -import de.danoeh.antennapod.core.storage.DBWriter; -import de.danoeh.antennapod.core.storage.PodDBAdapter; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -25,6 +15,16 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import de.danoeh.antennapod.core.feed.Chapter; +import de.danoeh.antennapod.core.feed.Feed; +import de.danoeh.antennapod.core.feed.FeedImage; +import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.feed.FeedMedia; +import de.danoeh.antennapod.core.feed.SimpleChapter; +import de.danoeh.antennapod.core.storage.DBReader; +import de.danoeh.antennapod.core.storage.DBWriter; +import de.danoeh.antennapod.core.storage.PodDBAdapter; + /** * Test class for DBWriter */ @@ -674,13 +674,13 @@ public class DBWriterTest extends InstrumentationTestCase { assertTrue(item.getId() != 0); } for (int removeIndex = 0; removeIndex < NUM_ITEMS; removeIndex++) { - final long id = feed.getItems().get(removeIndex).getId(); + final FeedItem item = feed.getItems().get(removeIndex); adapter = new PodDBAdapter(context); adapter.open(); adapter.setQueue(feed.getItems()); adapter.close(); - DBWriter.removeQueueItem(context, id, false).get(TIMEOUT, TimeUnit.SECONDS); + DBWriter.removeQueueItem(context, item, false).get(TIMEOUT, TimeUnit.SECONDS); adapter = new PodDBAdapter(context); adapter.open(); Cursor queue = adapter.getQueueIDCursor(); @@ -688,10 +688,10 @@ public class DBWriterTest extends InstrumentationTestCase { for (int i = 0; i < queue.getCount(); i++) { assertTrue(queue.moveToPosition(i)); final long queueID = queue.getLong(0); - assertTrue(queueID != id); // removed item is no longer in queue + assertTrue(queueID != item.getId()); // removed item is no longer in queue boolean idFound = false; - for (FeedItem item : feed.getItems()) { // items that were not removed are still in the queue - idFound = idFound | (item.getId() == queueID); + for (FeedItem other : feed.getItems()) { // items that were not removed are still in the queue + idFound = idFound | (other.getId() == queueID); } assertTrue(idFound); } 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 249cb0dd6..6f1e854b6 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java @@ -25,7 +25,9 @@ import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedImage; 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.storage.PodDBAdapter; +import de.greenrobot.event.EventBus; import de.test.antennapod.util.service.download.HTTPBin; import de.test.antennapod.util.syndication.feedgenerator.RSS2Generator; -- cgit v1.2.3 From 8850c09920723559895062050163817979bcd8d2 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Sun, 5 Apr 2015 20:49:11 +0200 Subject: QueueEvents, Queue shows undobar on removal of an item --- .../antennapod/service/playback/PlaybackServiceTaskManagerTest.java | 2 +- app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app/src/androidTest') 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 58c9801d8..d74128c2f 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 @@ -97,7 +97,7 @@ public class PlaybackServiceTaskManagerTest extends InstrumentationTestCase { }; EventDistributor.getInstance().register(queueListener); List queue = writeTestQueue("a"); - EventDistributor.getInstance().sendQueueUpdateBroadcast(); + EventBus.getDefault().post(new QueueEvent(QueueEvent.Action.ADDED_ITEMS, queue)); countDownLatch.await(5000, TimeUnit.MILLISECONDS); assertNotNull(queue); 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 6f1e854b6..85923d40f 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtils.java @@ -204,6 +204,6 @@ public class UITestUtils { adapter.setQueue(queue); adapter.close(); EventDistributor.getInstance().sendFeedUpdateBroadcast(); - EventDistributor.getInstance().sendQueueUpdateBroadcast(); + EventBus.getDefault().post(new QueueEvent(QueueEvent.Action.ADDED_ITEMS, queue)); } } -- cgit v1.2.3