diff options
author | ByteHamster <info@bytehamster.com> | 2020-03-20 14:34:03 +0100 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-03-20 15:55:26 +0100 |
commit | c336ac24d4e7df9ac35e97fb3657155b0e0189d4 (patch) | |
tree | c7c75fccc3178d546e13bab208fa25ce35603760 /app/src/androidTest/java/de/test/antennapod/util/event | |
parent | 0d029438665d232dfe1a245cbe03bb51b76be2c6 (diff) | |
download | AntennaPod-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.java | 45 |
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); + } +} |