Add hash code

pull/605/head
jhengazuki 5 months ago
parent 0e9015772f
commit 9e598cf345
  1. 6
      app/src/main/java/com/fongmi/android/tv/bean/Class.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/bean/Collect.java
  3. 6
      app/src/main/java/com/fongmi/android/tv/bean/Device.java
  4. 7
      app/src/main/java/com/fongmi/android/tv/bean/Episode.java
  5. 6
      app/src/main/java/com/fongmi/android/tv/bean/Flag.java
  6. 6
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  7. 6
      app/src/main/java/com/fongmi/android/tv/bean/Keep.java
  8. 20
      app/src/main/java/com/fongmi/android/tv/bean/Parse.java
  9. 7
      app/src/main/java/com/fongmi/android/tv/bean/Value.java
  10. 18
      app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java
  11. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java
  12. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java
  13. 6
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java
  14. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java

@ -19,6 +19,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
@Root(strict = false)
public class Class implements Parcelable, Diffable<Class> {
@ -149,6 +150,11 @@ public class Class implements Parcelable, Diffable<Class> {
return getTypeId().equals(it.getTypeId());
}
@Override
public int hashCode() {
return Objects.hashCode(getTypeId());
}
@Override
public int describeContents() {
return 0;

@ -11,6 +11,7 @@ import com.fongmi.android.tv.utils.ResUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class Collect implements Parcelable, Diffable<Collect> {
@ -68,6 +69,11 @@ public class Collect implements Parcelable, Diffable<Collect> {
return getSite().equals(it.getSite());
}
@Override
public int hashCode() {
return Objects.hashCode(getSite());
}
@Override
public int describeContents() {
return 0;

@ -20,6 +20,7 @@ import com.google.gson.annotations.SerializedName;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
@Entity(indices = @Index(value = {"uuid", "name"}, unique = true))
public class Device implements Diffable<Device> {
@ -170,6 +171,11 @@ public class Device implements Diffable<Device> {
return getUuid().equals(it.getUuid());
}
@Override
public int hashCode() {
return Objects.hashCode(getUuid());
}
@NonNull
@Override
public String toString() {

@ -11,6 +11,8 @@ import com.fongmi.android.tv.utils.Util;
import com.github.catvod.utils.Trans;
import com.google.gson.annotations.SerializedName;
import java.util.Objects;
public class Episode implements Parcelable, Diffable<Episode> {
@SerializedName("name")
@ -119,6 +121,11 @@ public class Episode implements Parcelable, Diffable<Episode> {
return getName().equals(it.getName());
}
@Override
public int hashCode() {
return Objects.hashCode(getName());
}
@Override
public int describeContents() {
return 0;

@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
public class Flag implements Parcelable, Diffable<Flag> {
@ -135,6 +136,11 @@ public class Flag implements Parcelable, Diffable<Flag> {
return getFlag().equals(it.getFlag());
}
@Override
public int hashCode() {
return Objects.hashCode(getFlag());
}
@NonNull
@Override
public String toString() {

@ -22,6 +22,7 @@ import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
@Entity
@ -363,6 +364,11 @@ public class History implements Diffable<History> {
return getKey().equals(it.getKey());
}
@Override
public int hashCode() {
return Objects.hashCode(getKey());
}
@NonNull
@Override
public String toString() {

@ -16,6 +16,7 @@ import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@Entity
public class Keep implements Diffable<Keep> {
@ -178,6 +179,11 @@ public class Keep implements Diffable<Keep> {
return getKey().equals(it.getKey());
}
@Override
public int hashCode() {
return Objects.hashCode(getKey());
}
@Override
public boolean isSameItem(Keep other) {
return equals(other);

@ -19,6 +19,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public class Parse implements Diffable<Parse> {
@ -118,13 +119,6 @@ public class Parse implements Diffable<Parse> {
return getType() == 0 && getUrl().isEmpty();
}
@Override
public boolean equals(@Nullable Object obj) {
if (this == obj) return true;
if (!(obj instanceof Parse it)) return false;
return getName().equals(it.getName());
}
public String extUrl() {
int index = getUrl().indexOf("?");
if (getExt().isEmpty() || index == -1) return getUrl();
@ -139,6 +133,18 @@ public class Parse implements Diffable<Parse> {
return map;
}
@Override
public boolean equals(@Nullable Object obj) {
if (this == obj) return true;
if (!(obj instanceof Parse it)) return false;
return getName().equals(it.getName());
}
@Override
public int hashCode() {
return Objects.hashCode(getName());
}
@Override
public boolean isSameItem(Parse other) {
return equals(other);

@ -10,6 +10,8 @@ import com.fongmi.android.tv.impl.Diffable;
import com.github.catvod.utils.Trans;
import com.google.gson.annotations.SerializedName;
import java.util.Objects;
public class Value implements Parcelable, Diffable<Value> {
@SerializedName("n")
@ -68,6 +70,11 @@ public class Value implements Parcelable, Diffable<Value> {
return getV().equals(it.getV());
}
@Override
public int hashCode() {
return Objects.hashCode(getV());
}
@Override
public int describeContents() {
return 0;

@ -10,7 +10,9 @@ import com.fongmi.android.tv.impl.Diffable;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Objects;
public abstract class BaseDiffAdapter<T extends Diffable<T>, VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
@ -33,26 +35,22 @@ public abstract class BaseDiffAdapter<T extends Diffable<T>, VH extends Recycler
}
public void setItems(List<T> items, Runnable runnable) {
if (items == null || items.isEmpty()) {
differ.submitList(new ArrayList<>(), runnable);
} else {
differ.submitList(items, runnable);
}
differ.submitList(Objects.requireNonNullElseGet(items, ArrayList::new), runnable);
}
public void addItem(T item, Runnable runnable) {
public void add(T item, Runnable runnable) {
List<T> current = new ArrayList<>(getItems());
current.add(item);
setItems(current, runnable);
}
public void addItems(List<T> items) {
List<T> current = new ArrayList<>(getItems());
public void addAll(List<T> items) {
LinkedHashSet<T> current = new LinkedHashSet<>(getItems());
current.addAll(items);
setItems(current);
setItems(new ArrayList<>(current));
}
public void addItemSort(T item, Comparator<T> comparator) {
public void sort(T item, Comparator<T> comparator) {
List<T> current = new ArrayList<>(getItems());
current.add(item);
if (current.size() >= 2) current.sort(comparator);

@ -163,12 +163,12 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe
@Override
public void onFind(Device device) {
adapter.addItemSort(device, sorter);
adapter.sort(device, sorter);
}
@Override
public void onDeviceAdded(@NonNull org.fourthline.cling.model.meta.Device<?, ?, ?> device) {
adapter.addItemSort(DLNADevice.get().add(device), sorter);
adapter.sort(DLNADevice.get().add(device), sorter);
}
@Override

@ -158,7 +158,7 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe
@Override
public void onFind(Device device) {
adapter.addItemSort(device, sorter);
adapter.sort(device, sorter);
}
@Override

@ -140,8 +140,8 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
private void setCollect(Result result) {
if (result == null) return;
if (mCollectAdapter.getPosition() == 0) mSearchAdapter.addItems(result.getList());
mCollectAdapter.addItem(Collect.create(result.getList()), this::setWidth);
if (mCollectAdapter.getPosition() == 0) mSearchAdapter.addAll(result.getList());
mCollectAdapter.add(Collect.create(result.getList()), this::setWidth);
mCollectAdapter.add(result.getList());
}
@ -164,7 +164,7 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
if (result == null) return;
boolean same = !result.getList().isEmpty() && mCollectAdapter.getActivated().getSite().equals(result.getList().get(0).getSite());
if (same) mCollectAdapter.getActivated().getList().addAll(result.getList());
if (same) mSearchAdapter.addItems(result.getList());
if (same) mSearchAdapter.addAll(result.getList());
mScroller.endLoading(result);
}

@ -158,7 +158,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
private void addVideo(Result result) {
Style style = result.getList().get(0).getStyle(getStyle());
if (!style.equals(mAdapter.getStyle())) setStyle(style);
mAdapter.addItems(result.getList());
mAdapter.addAll(result.getList());
}
private void checkMore(int count) {

Loading…
Cancel
Save