summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/discovery
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/discovery')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/CombinedSearcher.java21
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java13
6 files changed, 42 insertions, 9 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/CombinedSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/CombinedSearcher.java
index 287e20964..6c2a87c12 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/CombinedSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/CombinedSearcher.java
@@ -1,8 +1,7 @@
package de.danoeh.antennapod.discovery;
-import android.content.Context;
+import android.text.TextUtils;
import android.util.Log;
-import android.util.Pair;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -19,7 +18,7 @@ import java.util.concurrent.CountDownLatch;
public class CombinedSearcher implements PodcastSearcher {
private static final String TAG = "CombinedSearcher";
- public CombinedSearcher(Context context) {
+ public CombinedSearcher() {
}
public Single<List<PodcastSearchResult>> search(String query) {
@@ -31,7 +30,7 @@ public class CombinedSearcher implements PodcastSearcher {
PodcastSearcherRegistry.SearcherInfo searchProviderInfo
= PodcastSearcherRegistry.getSearchProviders().get(i);
PodcastSearcher searcher = searchProviderInfo.searcher;
- if (searchProviderInfo.weight <= 0.00001f) {
+ if (searchProviderInfo.weight <= 0.00001f || searcher.getClass() == CombinedSearcher.class) {
latch.countDown();
continue;
}
@@ -102,4 +101,18 @@ public class CombinedSearcher implements PodcastSearcher {
public boolean urlNeedsLookup(String url) {
return PodcastSearcherRegistry.urlNeedsLookup(url);
}
+
+ @Override
+ public String getName() {
+ ArrayList<String> names = new ArrayList<>();
+ for (int i = 0; i < PodcastSearcherRegistry.getSearchProviders().size(); i++) {
+ PodcastSearcherRegistry.SearcherInfo searchProviderInfo
+ = PodcastSearcherRegistry.getSearchProviders().get(i);
+ PodcastSearcher searcher = searchProviderInfo.searcher;
+ if (searchProviderInfo.weight > 0.00001f && searcher.getClass() != CombinedSearcher.class) {
+ names.add(searcher.getName());
+ }
+ }
+ return TextUtils.join(", ", names);
+ }
}
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 856ca8569..5a93e6530 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/FyydPodcastSearcher.java
@@ -45,4 +45,9 @@ public class FyydPodcastSearcher implements PodcastSearcher {
public boolean urlNeedsLookup(String url) {
return false;
}
+
+ @Override
+ public String getName() {
+ return "Fyyd";
+ }
}
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 46b3e5775..53237579f 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/GpodnetPodcastSearcher.java
@@ -43,4 +43,9 @@ public class GpodnetPodcastSearcher implements PodcastSearcher {
public boolean urlNeedsLookup(String url) {
return false;
}
+
+ @Override
+ public String getName() {
+ return "Gpodder.net";
+ }
}
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java
index ed1efaf73..796ec556f 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java
@@ -96,4 +96,9 @@ public class ItunesPodcastSearcher implements PodcastSearcher {
public boolean urlNeedsLookup(String url) {
return url.contains("itunes.apple.com");
}
+
+ @Override
+ public String getName() {
+ return "iTunes";
+ }
}
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java
index 3312e0d57..eeebd2ebf 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java
@@ -11,4 +11,6 @@ public interface PodcastSearcher {
Single<String> lookupUrl(String resultUrl);
boolean urlNeedsLookup(String resultUrl);
+
+ String getName();
}
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java
index 32fa96d5d..3f738424b 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java
@@ -15,8 +15,9 @@ public class PodcastSearcherRegistry {
public static List<SearcherInfo> getSearchProviders() {
if (searchProviders == null) {
searchProviders = new ArrayList<>();
- searchProviders.add(new SearcherInfo(new FyydPodcastSearcher(), 1.f));
+ searchProviders.add(new SearcherInfo(new CombinedSearcher(), 1.f));
searchProviders.add(new SearcherInfo(new ItunesPodcastSearcher(), 1.f));
+ searchProviders.add(new SearcherInfo(new FyydPodcastSearcher(), 1.f));
searchProviders.add(new SearcherInfo(new GpodnetPodcastSearcher(), 0.0f));
}
return searchProviders;
@@ -24,7 +25,8 @@ public class PodcastSearcherRegistry {
public static Single<String> lookupUrl(String url) {
for (PodcastSearcherRegistry.SearcherInfo searchProviderInfo : getSearchProviders()) {
- if (searchProviderInfo.searcher.urlNeedsLookup(url)) {
+ if (searchProviderInfo.searcher.getClass() != CombinedSearcher.class
+ && searchProviderInfo.searcher.urlNeedsLookup(url)) {
return searchProviderInfo.searcher.lookupUrl(url);
}
}
@@ -33,7 +35,8 @@ public class PodcastSearcherRegistry {
public static boolean urlNeedsLookup(String url) {
for (PodcastSearcherRegistry.SearcherInfo searchProviderInfo : getSearchProviders()) {
- if (searchProviderInfo.searcher.urlNeedsLookup(url)) {
+ if (searchProviderInfo.searcher.getClass() != CombinedSearcher.class
+ && searchProviderInfo.searcher.urlNeedsLookup(url)) {
return true;
}
}
@@ -41,8 +44,8 @@ public class PodcastSearcherRegistry {
}
public static class SearcherInfo {
- final PodcastSearcher searcher;
- final float weight;
+ public final PodcastSearcher searcher;
+ public final float weight;
public SearcherInfo(PodcastSearcher searcher, float weight) {
this.searcher = searcher;