summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java41
1 files changed, 17 insertions, 24 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java
index af0597a07..529a9e3d5 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java
@@ -4,42 +4,35 @@ import de.danoeh.antennapod.core.service.download.AntennapodHttpClient;
import de.mfietz.fyydlin.FyydClient;
import de.mfietz.fyydlin.FyydResponse;
import de.mfietz.fyydlin.SearchHit;
+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 FyydPodcastSearcher implements PodcastSearcher {
- private final String query;
private final FyydClient client = new FyydClient(AntennapodHttpClient.getHttpClient());
- public FyydPodcastSearcher(String query) {
- this.query = query;
- }
+ public Single<List<PodcastSearchResult>> search(String query) {
+ return Single.create((SingleOnSubscribe<List<PodcastSearchResult>>) subscriber -> {
+ FyydResponse response = client.searchPodcasts(query, 10)
+ .subscribeOn(Schedulers.io())
+ .blockingGet();
- public Disposable search(Consumer<? super List<PodcastSearchResult>> successHandler, Consumer<? super Throwable> errorHandler) {
- return client.searchPodcasts(query, 10)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(result -> {
- ArrayList<PodcastSearchResult> results = processSearchResult(result);
- successHandler.accept(results);
- }, errorHandler);
- }
+ ArrayList<PodcastSearchResult> searchResults = new ArrayList<>();
- private ArrayList<PodcastSearchResult> processSearchResult(FyydResponse response) {
- ArrayList<PodcastSearchResult> searchResults = new ArrayList<>();
-
- if (!response.getData().isEmpty()) {
- for (SearchHit searchHit : response.getData()) {
- PodcastSearchResult podcast = PodcastSearchResult.fromFyyd(searchHit);
- searchResults.add(podcast);
+ if (!response.getData().isEmpty()) {
+ for (SearchHit searchHit : response.getData()) {
+ PodcastSearchResult podcast = PodcastSearchResult.fromFyyd(searchHit);
+ searchResults.add(podcast);
+ }
}
- }
- return searchResults;
+ subscriber.onSuccess(searchResults);
+ })
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread());
}
}