From 9f9643d257f226c1c19d643aff61149af3e77a1f Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 20 Oct 2023 16:57:07 +0800 Subject: [PATCH] filter support reverse --- .../java/com/fongmi/android/tv/ui/fragment/VodFragment.java | 3 ++- app/src/main/java/com/fongmi/android/tv/bean/Value.java | 4 +++- .../java/com/fongmi/android/tv/impl/FilterCallback.java | 4 +++- .../java/com/fongmi/android/tv/ui/adapter/ValueAdapter.java | 2 +- .../com/fongmi/android/tv/ui/fragment/TypeFragment.java | 6 ++++-- .../java/com/fongmi/android/tv/ui/fragment/VodFragment.java | 3 ++- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index 4ac34fcca..c8005627e 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -150,7 +150,8 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback private void setClick(ArrayObjectAdapter adapter, String key, Value item) { for (int i = 0; i < adapter.size(); i++) ((Value) adapter.get(i)).setActivated(item); adapter.notifyArrayItemRangeChanged(0, adapter.size()); - mExtends.put(key, item.getV()); + if (item.isActivated()) mExtends.put(key, item.getV()); + else mExtends.remove(key); onRefresh(); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Value.java b/app/src/main/java/com/fongmi/android/tv/bean/Value.java index b36481e51..efcf909eb 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Value.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Value.java @@ -49,7 +49,9 @@ public class Value implements Parcelable { } public void setActivated(Value item) { - this.activated = item.equals(this); + boolean equal = item.equals(this); + if (activated && equal) activated = false; + else activated = equal; } public void trans() { diff --git a/app/src/main/java/com/fongmi/android/tv/impl/FilterCallback.java b/app/src/main/java/com/fongmi/android/tv/impl/FilterCallback.java index 84412368c..bb3e56dc6 100644 --- a/app/src/main/java/com/fongmi/android/tv/impl/FilterCallback.java +++ b/app/src/main/java/com/fongmi/android/tv/impl/FilterCallback.java @@ -1,6 +1,8 @@ package com.fongmi.android.tv.impl; +import com.fongmi.android.tv.bean.Value; + public interface FilterCallback { - void setFilter(String key, String value); + void setFilter(String key, Value value); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ValueAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ValueAdapter.java index 1370ec756..c33bccb85 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ValueAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ValueAdapter.java @@ -47,7 +47,7 @@ public class ValueAdapter extends RecyclerView.Adapter private void onItemClick(Value value) { for (Value item : mItems) item.setActivated(value); notifyItemRangeChanged(0, getItemCount()); - mListener.setFilter(mKey, value.getV()); + mListener.setFilter(mKey, value); } static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java index c4c9d9da8..335524a9a 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java @@ -18,6 +18,7 @@ import com.fongmi.android.tv.bean.Page; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.bean.Style; +import com.fongmi.android.tv.bean.Value; import com.fongmi.android.tv.bean.Vod; import com.fongmi.android.tv.databinding.FragmentTypeBinding; import com.fongmi.android.tv.model.SiteViewModel; @@ -191,8 +192,9 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac } } - public void setFilter(String key, String value) { - mExtends.put(key, value); + public void setFilter(String key, Value value) { + if (value.isActivated()) mExtends.put(key, value.getV()); + else mExtends.remove(key); onRefresh(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index 751016f29..c9ff6d572 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -22,6 +22,7 @@ import com.fongmi.android.tv.bean.Class; import com.fongmi.android.tv.bean.Hot; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Site; +import com.fongmi.android.tv.bean.Value; import com.fongmi.android.tv.databinding.FragmentVodBinding; import com.fongmi.android.tv.event.CastEvent; import com.fongmi.android.tv.event.RefreshEvent; @@ -266,7 +267,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal } @Override - public void setFilter(String key, String value) { + public void setFilter(String key, Value value) { ((TypeFragment) getFragment()).setFilter(key, value); }