From eb5d47d5e21852459105e3c4eb2327d9bbf547fd Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Sun, 19 Oct 2025 00:26:09 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/adapter/BaseDiffAdapter.java | 6 +++--- .../fongmi/android/tv/ui/adapter/DeviceAdapter.java | 13 ------------- .../com/fongmi/android/tv/ui/dialog/CastDialog.java | 6 ++++-- .../com/fongmi/android/tv/ui/dialog/SyncDialog.java | 5 ++++- 4 files changed, 11 insertions(+), 19 deletions(-) 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 eb648ced8..37c04362b 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 @@ -52,10 +52,10 @@ public abstract class BaseDiffAdapter, VH extends Recycler setItems(current); } - public void sort(Comparator comparator) { + public void addItemSort(T item, Comparator comparator) { List current = new ArrayList<>(getItems()); - if (current.size() < 2) return; - current.sort(comparator); + current.add(item); + if (current.size() >= 2) 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 8cfc0f4ab..9b7bcb7cb 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 @@ -28,19 +28,6 @@ public class DeviceAdapter extends BaseDiffAdapter items) { - if (items.isEmpty()) return; - super.addItems(items); - sort(new Device.Sorter()); - } - @Override public void clear() { super.clear(); 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 05b4e1b12..6f13abf18 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 @@ -52,6 +52,7 @@ import okhttp3.Response; public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListener, ScanTask.Listener, OnDeviceRegistryListener, OnDeviceControlListener, ServiceActionCallback, okhttp3.Callback { private final FormBody.Builder body; + private final Device.Sorter sorter; private final OkHttpClient client; private final ScanTask scanTask; @@ -67,6 +68,7 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe } public CastDialog() { + sorter = new Device.Sorter(); scanTask = new ScanTask(this); body = new FormBody.Builder(); body.add("device", Device.get().toString()); @@ -159,12 +161,12 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe @Override public void onFind(Device device) { - adapter.addItem(device); + adapter.addItemSort(device, sorter); } @Override public void onDeviceAdded(@NonNull org.fourthline.cling.model.meta.Device device) { - adapter.addItem(DLNADevice.get().add(device)); + adapter.addItemSort(DLNADevice.get().add(device), sorter); } @Override 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 9806905fb..ea1899f81 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 @@ -46,9 +46,11 @@ import okhttp3.Response; public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListener, ScanTask.Listener { private final FormBody.Builder body; + private final Device.Sorter sorter; private final OkHttpClient client; private final ScanTask scanTask; private final TypedArray mode; + private DialogDeviceBinding binding; private DeviceAdapter adapter; private String type; @@ -58,6 +60,7 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe } public SyncDialog() { + sorter = new Device.Sorter(); body = new FormBody.Builder(); scanTask = new ScanTask(this); client = OkHttp.client(Constant.TIMEOUT_SYNC); @@ -153,7 +156,7 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe @Override public void onFind(Device device) { - adapter.addItem(device); + adapter.addItemSort(device, sorter); } @Override