summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/de/test/antennapod/util/event
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2020-03-20 14:34:03 +0100
committerByteHamster <info@bytehamster.com>2020-03-20 15:55:26 +0100
commitc336ac24d4e7df9ac35e97fb3657155b0e0189d4 (patch)
treec7c75fccc3178d546e13bab208fa25ce35603760 /app/src/androidTest/java/de/test/antennapod/util/event
parent0d029438665d232dfe1a245cbe03bb51b76be2c6 (diff)
downloadAntennaPod-c336ac24d4e7df9ac35e97fb3657155b0e0189d4.zip
Give cancelling downloads more time
The first download installs the ssl security provider and might block around 1.2 seconds longer than in previous versions.
Diffstat (limited to 'app/src/androidTest/java/de/test/antennapod/util/event')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/util/event/DownloadEventListener.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/util/event/DownloadEventListener.java b/app/src/androidTest/java/de/test/antennapod/util/event/DownloadEventListener.java
new file mode 100644
index 000000000..d322c1cbf
--- /dev/null
+++ b/app/src/androidTest/java/de/test/antennapod/util/event/DownloadEventListener.java
@@ -0,0 +1,45 @@
+package de.test.antennapod.util.event;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import de.danoeh.antennapod.core.event.DownloadEvent;
+import io.reactivex.functions.Consumer;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Test helper to listen to {@link DownloadEvent} and handle them accordingly.
+ */
+public class DownloadEventListener {
+ private final List<DownloadEvent> events = new ArrayList<>();
+
+ /**
+ * Provides an listener subscribing to {@link DownloadEvent} that the callers can use.
+ * Note: it uses RxJava's version of {@link Consumer} because it allows exceptions to be thrown.
+ */
+ public static void withDownloadEventListener(@NonNull Consumer<DownloadEventListener> consumer) throws Exception {
+ DownloadEventListener feedItemEventListener = new DownloadEventListener();
+ try {
+ EventBus.getDefault().register(feedItemEventListener);
+ consumer.accept(feedItemEventListener);
+ } finally {
+ EventBus.getDefault().unregister(feedItemEventListener);
+ }
+ }
+
+ @Subscribe
+ public void onEvent(DownloadEvent event) {
+ events.add(event);
+ }
+
+ @Nullable
+ public DownloadEvent getLatestEvent() {
+ if (events.size() == 0) {
+ return null;
+ }
+ return events.get(events.size() - 1);
+ }
+}