From 2d912929372eed3fa290e5e778028d9d3b046969 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Wed, 26 Jun 2019 08:27:19 +0200 Subject: Combined podcast search --- .../discovery/GpodnetPodcastSearcher.java | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java (limited to 'app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java') diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java new file mode 100644 index 000000000..530f234fd --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java @@ -0,0 +1,47 @@ +package de.danoeh.antennapod.discovery; + +import de.danoeh.antennapod.core.gpoddernet.GpodnetService; +import de.danoeh.antennapod.core.gpoddernet.GpodnetServiceException; +import de.danoeh.antennapod.core.gpoddernet.model.GpodnetPodcast; +import io.reactivex.Single; +import io.reactivex.SingleOnSubscribe; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.functions.Consumer; +import io.reactivex.schedulers.Schedulers; + +import java.util.ArrayList; +import java.util.List; + +public class GpodnetPodcastSearcher implements PodcastSearcher { + private final String query; + + public GpodnetPodcastSearcher(String query) { + this.query = query; + } + + public Disposable search(Consumer> successHandler, Consumer errorHandler) { + return Single.create((SingleOnSubscribe>) subscriber -> { + GpodnetService service = null; + try { + service = new GpodnetService(); + List gpodnetPodcasts = service.searchPodcasts(query, 0); + List results = new ArrayList<>(); + for (GpodnetPodcast podcast : gpodnetPodcasts) { + results.add(PodcastSearchResult.fromGpodder(podcast)); + } + subscriber.onSuccess(results); + } catch (GpodnetServiceException e) { + e.printStackTrace(); + subscriber.onError(e); + } finally { + if (service != null) { + service.shutdown(); + } + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(successHandler, errorHandler); + } +} -- cgit v1.2.3 From 3962fdd6f8b757e02507383de34fe32eb05cff86 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 12 Jul 2019 15:24:06 +0200 Subject: Added CombinedSearcher for podcasts --- .../danoeh/antennapod/discovery/GpodnetPodcastSearcher.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java') diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java index 530f234fd..6e5debb38 100644 --- a/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java +++ b/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java @@ -6,21 +6,13 @@ import de.danoeh.antennapod.core.gpoddernet.model.GpodnetPodcast; import io.reactivex.Single; import io.reactivex.SingleOnSubscribe; import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; import java.util.ArrayList; import java.util.List; public class GpodnetPodcastSearcher implements PodcastSearcher { - private final String query; - - public GpodnetPodcastSearcher(String query) { - this.query = query; - } - - public Disposable search(Consumer> successHandler, Consumer errorHandler) { + public Single> search(String query) { return Single.create((SingleOnSubscribe>) subscriber -> { GpodnetService service = null; try { @@ -41,7 +33,6 @@ public class GpodnetPodcastSearcher implements PodcastSearcher { } }) .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(successHandler, errorHandler); + .observeOn(AndroidSchedulers.mainThread()); } } -- cgit v1.2.3