From a3a2b87dc6be709360f848fd2dd352f295d74b2e Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Sat, 20 Sep 2025 04:14:07 +0800 Subject: [PATCH] Fix bug --- app/src/main/java/com/fongmi/android/tv/bean/Device.java | 8 +------- .../com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java | 2 +- .../com/fongmi/android/tv/ui/adapter/DeviceAdapter.java | 1 + .../java/com/fongmi/android/tv/ui/dialog/CastDialog.java | 4 ++-- .../java/com/fongmi/android/tv/ui/dialog/SyncDialog.java | 2 +- 5 files changed, 6 insertions(+), 11 deletions(-) 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 09ac98d76..16ab1ec90 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 @@ -20,7 +20,6 @@ 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 { @@ -164,16 +163,11 @@ public class Device implements Diffable { AppDatabase.get().getDeviceDao().delete(); } - @Override - public int hashCode() { - return Objects.hash(getUuid(), getName()); - } - @Override public boolean equals(@Nullable Object obj) { if (this == obj) return true; if (!(obj instanceof Device it)) return false; - return getUuid().equals(it.getUuid()) && getName().equals(it.getName()); + return getUuid().equals(it.getUuid()); } @NonNull diff --git a/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java b/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java index 2b2dd4208..b60b9b303 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java @@ -47,7 +47,7 @@ public abstract class BaseDiffAdapter, VH extends Recycler public void sort(Comparator comparator) { List current = new ArrayList<>(getItems()); - if (current.isEmpty()) return; + if (current.size() < 2) return; current.sort(comparator); setItems(current); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/DeviceAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/DeviceAdapter.java index dad8f4d9f..2342b0e1c 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/DeviceAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/DeviceAdapter.java @@ -36,6 +36,7 @@ public class DeviceAdapter extends BaseDiffAdapter items) { + if (items.isEmpty()) return; super.addItems(items); sort(new Device.Sorter()); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java index f3b5560e4..de3765cda 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java @@ -142,9 +142,9 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe } private void onRefresh() { - if (fm) scanTask.start(adapter.getIps()); - DLNACastManager.INSTANCE.search(null); adapter.clear(); + DLNACastManager.INSTANCE.search(null); + if (fm) scanTask.start(adapter.getIps()); } private void onCasted() { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java index d4d2a2ac9..ad1976198 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java @@ -137,8 +137,8 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe } private void onRefresh() { - scanTask.start(adapter.getIps()); adapter.clear(); + scanTask.start(adapter.getIps()); } private void onSuccess() {