From 64b8c46249c18e58ae2cc24803426949d0d6b2a2 Mon Sep 17 00:00:00 2001 From: okjackcaptain <378702538@qq.com> Date: Sun, 9 Oct 2022 14:39:29 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=BC=95=E8=B5=B7=E6=8C=87=E5=AE=9A=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E6=BA=90bug=E4=BF=AE=E5=A4=8D=20(by=20okjack)=20-=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=89=E6=8B=A9=E9=A6=96=E9=A1=B5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E6=BB=9A=E5=8A=A8=E5=88=B0=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=20(by=20okjack)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/ui/activity/DetailActivity.java | 2 +- .../osc/ui/activity/FastSearchActivity.java | 2 +- .../tvbox/osc/ui/activity/SearchActivity.java | 2 +- .../osc/ui/adapter/CheckboxSearchAdapter.java | 13 ++++---- .../osc/ui/dialog/SearchCheckboxDialog.java | 24 +++++++++++--- .../tvbox/osc/ui/dialog/SelectDialog.java | 2 +- .../github/tvbox/osc/util/SearchHelper.java | 33 ++++++++++++++++--- 7 files changed, 59 insertions(+), 19 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 01e22a01..8414e08f 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 @@ -124,7 +124,7 @@ public class DetailActivity extends BaseActivity { private String preFlag=""; private boolean firstReverse; private V7GridLayoutManager mGridViewLayoutMgr = null; - private HashMap mCheckSources = null; + private HashMap mCheckSources = null; @Override protected int getLayoutResID() { 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 7587cd33..d32c6e18 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 @@ -78,7 +78,7 @@ public class FastSearchActivity extends BaseActivity { private String searchFilterKey = ""; // 过滤的key private HashMap> resultVods; // 搜索结果 private List quickSearchWord = new ArrayList<>(); - private HashMap mCheckSources = null; + private HashMap mCheckSources = null; private View.OnFocusChangeListener focusChangeListener = new View.OnFocusChangeListener() { @Override diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java index 79232a0b..0012a87b 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java @@ -83,7 +83,7 @@ public class SearchActivity extends BaseActivity { private String searchTitle = ""; private TextView tvSearchCheckboxBtn; - private HashMap mCheckSources = null; + private HashMap mCheckSources = null; private SearchCheckboxDialog mSearchCheckboxDialog = null; @Override diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/CheckboxSearchAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/CheckboxSearchAdapter.java index dc9f9b73..489e8403 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/CheckboxSearchAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/CheckboxSearchAdapter.java @@ -15,8 +15,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.github.tvbox.osc.R; import com.github.tvbox.osc.bean.SourceBean; -import com.github.tvbox.osc.util.HawkConfig; -import com.orhanobut.hawk.Hawk; +import com.github.tvbox.osc.util.SearchHelper; import org.jetbrains.annotations.NotNull; @@ -36,14 +35,14 @@ public class CheckboxSearchAdapter extends ListAdapter checkedSources) { + private void setCheckedSource(HashMap checkedSources) { mCheckedSources = checkedSources; } private ArrayList data = new ArrayList<>(); - public HashMap mCheckedSources = new HashMap<>(); + public HashMap mCheckedSources = new HashMap<>(); - public void setData(List newData, HashMap checkedSources) { + public void setData(List newData, HashMap checkedSources) { data.clear(); data.addAll(newData); setCheckedSource(checkedSources); @@ -63,14 +62,14 @@ public class CheckboxSearchAdapter extends ListAdapter mSourceList; - public HashMap mCheckSourcees = new HashMap<>(); + public HashMap mCheckSourcees = new HashMap<>(); - public SearchCheckboxDialog(@NonNull @NotNull Context context, List sourceList, HashMap checkedSources) { + public SearchCheckboxDialog(@NonNull @NotNull Context context, List sourceList, HashMap checkedSources) { super(context); if (context instanceof Activity) { setOwnerActivity((Activity) context); @@ -63,7 +63,23 @@ public class SearchCheckboxDialog extends BaseDialog{ mGridView.setLayoutManager(new V7LinearLayoutManager(getContext(), 1, false)); mGridView.setAdapter(checkboxSearchAdapter); checkboxSearchAdapter.setData(mSourceList, mCheckSourcees); - + int pos = 0; + if (mSourceList != null && mCheckSourcees != null) { + for(int i=0; i extends BaseDialog { tvRecyclerView.post(new Runnable() { @Override public void run() { - tvRecyclerView.scrollToPosition(select); + tvRecyclerView.smoothScrollToPosition(select); } }); } 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 0fb85e83..09dde78d 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 @@ -8,18 +8,43 @@ import java.util.HashMap; public class SearchHelper { - public static HashMap getSourcesForSearch() { - HashMap mCheckSources = Hawk.get(HawkConfig.SOURCES_FOR_SEARCH, new HashMap<>()); + public static HashMap getSourcesForSearch() { + String api = Hawk.get(HawkConfig.API_URL, ""); + if (api.isEmpty()) { + return null; + } + HashMap mCheckSources = new HashMap<>(); + try { + HashMap> mCheckSourcesForApi = Hawk.get(HawkConfig.SOURCES_FOR_SEARCH, new HashMap>()); + mCheckSources = mCheckSourcesForApi.get(api); + } catch (Exception e) { + + } if (mCheckSources == null || mCheckSources.size() <= 0) { + if (mCheckSources == null) { + mCheckSources = new HashMap(); + } for (SourceBean bean : ApiConfig.get().getSourceBeanList()) { if (!bean.isSearchable()) { continue; } - mCheckSources.put(bean.getKey(), bean); + mCheckSources.put(bean.getKey(), "1"); } - Hawk.put(HawkConfig.SOURCES_FOR_SEARCH, mCheckSources); } return mCheckSources; } + public static void putCheckedSources(HashMap mCheckSources) { + String api = Hawk.get(HawkConfig.API_URL, ""); + if (api.isEmpty()) { + return; + } + HashMap> mCheckSourcesForApi = Hawk.get(HawkConfig.SOURCES_FOR_SEARCH, new HashMap>()); + if (mCheckSourcesForApi == null || mCheckSourcesForApi.isEmpty()) { + mCheckSourcesForApi = new HashMap>(); + } + mCheckSourcesForApi.put(api, mCheckSources); + Hawk.put(HawkConfig.SOURCES_FOR_SEARCH, mCheckSourcesForApi); + } + }