diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java index 43d8457c1..8cd2e9f42 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java @@ -150,17 +150,13 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac } private void getVideo() { + mLast = null; + checkFilter(); mScroller.reset(); getVideo(getTypeId(), "1"); } private void getVideo(String typeId, String page) { - boolean first = "1".equals(page); - if (first) mLast = null; - int filterSize = filterVisible ? mFilters.size() : 0; - boolean clear = first && mAdapter.size() > filterSize; - if (first && mAdapter.size() == filterSize) showProgress(); - if (clear) mAdapter.removeItems(filterSize, mAdapter.size() - filterSize); mViewModel.categoryContent(getKey(), typeId, page, true, mExtends); } @@ -235,6 +231,12 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac else hideFilter(); } + private void checkFilter() { + int filterCount = filterVisible ? mFilters.size() : 0; + if (mAdapter.size() == filterCount) showProgress(); + else mAdapter.removeItems(filterCount, mAdapter.size() - filterCount); + } + public void onRefresh() { getVideo(); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index d6106776f..478b0786a 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -20,7 +20,6 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Objects; public class Channel { @@ -394,13 +393,18 @@ public class Channel { public boolean equals(@Nullable Object obj) { if (this == obj) return true; if (!(obj instanceof Channel it)) return false; - if (!getName().isEmpty()) return getName().equals(it.getName()); - if (!getNumber().isEmpty()) return getNumber().equals(it.getNumber()); - return getName().equals(it.getName()) && getNumber().equals(it.getNumber()); + String name1 = getName(), name2 = it.getName(); + String number1 = getNumber(), number2 = it.getNumber(); + if (!name1.isEmpty() && !name2.isEmpty()) return name1.equals(name2); + if (!number1.isEmpty() && !number2.isEmpty()) return number1.equals(number2); + return false; } @Override public int hashCode() { - return Objects.hash(getName(), getNumber()); + String name = getName(), number = getNumber(); + if (!name.isEmpty()) return name.hashCode(); + if (!number.isEmpty()) return number.hashCode(); + return 0; } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Class.java b/app/src/main/java/com/fongmi/android/tv/bean/Class.java index 823334d95..172c66b5d 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Class.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Class.java @@ -152,7 +152,7 @@ public class Class implements Parcelable, Diffable { @Override public int hashCode() { - return Objects.hashCode(getTypeId()); + return getTypeId().hashCode(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Device.java b/app/src/main/java/com/fongmi/android/tv/bean/Device.java index 8378f030f..769f85a50 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Device.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Device.java @@ -173,7 +173,7 @@ public class Device implements Diffable { @Override public int hashCode() { - return Objects.hashCode(getUuid()); + return getUuid().hashCode(); } @NonNull diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Episode.java b/app/src/main/java/com/fongmi/android/tv/bean/Episode.java index 5f19c44a8..f8a56d221 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Episode.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Episode.java @@ -123,7 +123,7 @@ public class Episode implements Parcelable, Diffable { @Override public int hashCode() { - return Objects.hashCode(getName()); + return getName().hashCode(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Flag.java b/app/src/main/java/com/fongmi/android/tv/bean/Flag.java index e0dd05dcd..736fdc69e 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Flag.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Flag.java @@ -138,7 +138,7 @@ public class Flag implements Parcelable, Diffable { @Override public int hashCode() { - return Objects.hashCode(getFlag()); + return getFlag().hashCode(); } @NonNull diff --git a/app/src/main/java/com/fongmi/android/tv/bean/History.java b/app/src/main/java/com/fongmi/android/tv/bean/History.java index 3bd82f607..163f304c0 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/History.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/History.java @@ -366,7 +366,7 @@ public class History implements Diffable { @Override public int hashCode() { - return Objects.hashCode(getKey()); + return getKey().hashCode(); } @NonNull diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Keep.java b/app/src/main/java/com/fongmi/android/tv/bean/Keep.java index 24f2764ef..be62df841 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Keep.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Keep.java @@ -181,7 +181,7 @@ public class Keep implements Diffable { @Override public int hashCode() { - return Objects.hashCode(getKey()); + return getKey().hashCode(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java index 468bfa7d9..c65548a1d 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Parse.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Parse.java @@ -142,7 +142,7 @@ public class Parse implements Diffable { @Override public int hashCode() { - return Objects.hashCode(getName()); + return getName().hashCode(); } @Override 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 d874f83cb..b2b2904ed 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 @@ -72,7 +72,7 @@ public class Value implements Parcelable, Diffable { @Override public int hashCode() { - return Objects.hashCode(getV()); + return getV().hashCode(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java index 18a3b5435..452d7d1eb 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java @@ -307,12 +307,12 @@ public class Vod implements Parcelable, Diffable { public boolean equals(@Nullable Object obj) { if (this == obj) return true; if (!(obj instanceof Vod it)) return false; - return getVodId().equals(it.getVodId()); + return !getVodId().isEmpty() && !it.getVodId().isEmpty() ? getVodId().equals(it.getVodId()) : getVodName().equals(it.getVodName()); } @Override public int hashCode() { - return Objects.hash(getVodId()); + return !getVodId().isEmpty() ? getVodId().hashCode() : getVodName().hashCode(); } @Override 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 932d21589..72fd40da5 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 @@ -136,13 +136,15 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac private void getVideo() { mScroller.reset(); - mAdapter.clear(() -> getVideo(getTypeId(), "1")); + mAdapter.clear(() -> { + if (!mBinding.swipeLayout.isRefreshing()) mBinding.progressLayout.showProgress(); + if (isHome()) setAdapter(getParent().getResult()); + else getVideo(getTypeId(), "1"); + }); } private void getVideo(String typeId, String page) { - if ("1".equals(page) && !mBinding.swipeLayout.isRefreshing()) mBinding.progressLayout.showProgress(); - if (isHome() && "1".equals(page)) setAdapter(getParent().getResult()); - else mViewModel.categoryContent(getKey(), typeId, page, true, mExtends); + mViewModel.categoryContent(getKey(), typeId, page, true, mExtends); } private void setAdapter(Result result) {