diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2019-08-11 14:57:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-11 14:57:44 +0200 |
commit | 1315c9e20b30e62b8022f831a0bcf5779b5bb2cb (patch) | |
tree | 65dd884ea83389d366d971ca5635e6e9f6c95dc4 /app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java | |
parent | ab864cd171a563177a8f565fc2744e88ba669516 (diff) | |
parent | ce64c412ac02041d877e4770381f29710a06ba17 (diff) | |
download | AntennaPod-1315c9e20b30e62b8022f831a0bcf5779b5bb2cb.zip |
Merge branch 'develop' into make_multidex_on_debug_build_only
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java | 38 |
1 files changed, 38 insertions, 0 deletions
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..6e5debb38 --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java @@ -0,0 +1,38 @@ +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.schedulers.Schedulers; + +import java.util.ArrayList; +import java.util.List; + +public class GpodnetPodcastSearcher implements PodcastSearcher { + public Single<List<PodcastSearchResult>> search(String query) { + return Single.create((SingleOnSubscribe<List<PodcastSearchResult>>) subscriber -> { + GpodnetService service = null; + try { + service = new GpodnetService(); + List<GpodnetPodcast> gpodnetPodcasts = service.searchPodcasts(query, 0); + List<PodcastSearchResult> 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()); + } +} |