From 4f64937643bdef55fcc0654ad19bde1f9136a40e Mon Sep 17 00:00:00 2001 From: Harold Date: Sat, 12 Nov 2022 18:48:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E9=80=9F=E6=90=9C=E7=B4=A2:=E5=8A=A0?= =?UTF-8?q?=E5=BC=BA=E5=88=86=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/ui/activity/DetailActivity.java | 8 ++++---- .../tvbox/osc/ui/activity/FastSearchActivity.java | 6 ++++-- .../com/github/tvbox/osc/util/SearchHelper.java | 13 +++++++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) 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 e0508f4c..53878e57 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; @@ -760,7 +761,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") @@ -777,7 +778,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()); @@ -785,8 +785,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; + } + }