diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index 6958d6d1..1e7e4e2a 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -73,6 +73,7 @@ import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -763,7 +764,7 @@ public class DetailActivity extends BaseActivity { quickSearchWord.clear(); searchTitle = mVideo.name; quickSearchData.clear(); - quickSearchWord.add(searchTitle); + quickSearchWord.addAll(SearchHelper.splitWords(searchTitle)); // 分词 OkGo.get("http://api.pullword.com/get.php?source=" + URLEncoder.encode(searchTitle) + "¶m1=0¶m2=0&json=1") .tag("fenci") @@ -780,7 +781,6 @@ public class DetailActivity extends BaseActivity { @Override public void onSuccess(Response response) { String json = response.body(); - quickSearchWord.clear(); try { for (JsonElement je : new Gson().fromJson(json, JsonArray.class)) { quickSearchWord.add(je.getAsJsonObject().get("t").getAsString()); @@ -788,8 +788,8 @@ public class DetailActivity extends BaseActivity { } catch (Throwable th) { th.printStackTrace(); } - quickSearchWord.add(searchTitle); - EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, quickSearchWord)); + List words = new ArrayList<>(new HashSet<>(quickSearchWord)); + EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, words)); } @Override diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java index d32c6e18..e5538e9c 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/FastSearchActivity.java @@ -44,6 +44,7 @@ import org.greenrobot.eventbus.ThreadMode; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -299,8 +300,9 @@ public class FastSearchActivity extends BaseActivity { } catch (Throwable th) { th.printStackTrace(); } - quickSearchWord.add(searchTitle); - EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, quickSearchWord)); + quickSearchWord.addAll(SearchHelper.splitWords(searchTitle)); + List words = new ArrayList<>(new HashSet<>(quickSearchWord)); + EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_QUICK_SEARCH_WORD, words)); } @Override diff --git a/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java b/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java index 83eda62b..57c9c8c8 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java +++ b/app/src/main/java/com/github/tvbox/osc/util/SearchHelper.java @@ -5,7 +5,10 @@ import com.github.tvbox.osc.bean.SourceBean; import com.github.tvbox.osc.ui.activity.SearchActivity; import com.orhanobut.hawk.Hawk; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; public class SearchHelper { @@ -52,4 +55,14 @@ public class SearchHelper { return mCheckSources; } + public static List splitWords(String text) { + List result = new ArrayList<>(); + result.add(text); + String[] parts = text.split("\\W+"); + if (parts.length > 1) { + result.addAll(Arrays.asList(parts)); + } + return result; + } + }