pull/594/head
jhengazuki 7 months ago
parent a3a2b87dc6
commit 12eac5a965
  1. 6
      app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java
  2. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java
  3. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java
  4. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java
  5. 36
      app/src/mobile/java/com/fongmi/android/tv/utils/DLNADevice.java

@ -29,8 +29,12 @@ public abstract class BaseDiffAdapter<T extends Diffable<T>, VH extends Recycler
return differ.getCurrentList();
}
public void setItems(List<T> items, Runnable commitCallback) {
differ.submitList(items, commitCallback);
}
public void setItems(List<T> items) {
differ.submitList(items);
setItems(items, null);
}
public void addItem(T item) {

@ -60,8 +60,7 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
}
private void getHistory() {
mAdapter.setItems(History.get());
mBinding.progressLayout.showContent(true, mAdapter.getItemCount());
mAdapter.setItems(History.get(), () -> mBinding.progressLayout.showContent(true, mAdapter.getItemCount()));
}
private void onSync() {

@ -64,8 +64,7 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
}
private void getKeep() {
mAdapter.setItems(Keep.getVod());
mBinding.progressLayout.showContent(true, mAdapter.getItemCount());
mAdapter.setItems(Keep.getVod(), () -> mBinding.progressLayout.showContent(true, mAdapter.getItemCount()));
}
private void onSync() {

@ -164,12 +164,12 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe
@Override
public void onDeviceAdded(@NonNull org.fourthline.cling.model.meta.Device<?, ?, ?> device) {
adapter.addItems(DLNADevice.get().add(device));
adapter.addItem(DLNADevice.get().add(device));
}
@Override
public void onDeviceRemoved(@NonNull org.fourthline.cling.model.meta.Device<?, ?, ?> device) {
adapter.remove(DLNADevice.get().remove(device));
DLNADevice.get().remove(device);
}
@Override

@ -3,48 +3,46 @@ package com.fongmi.android.tv.utils;
import com.android.cast.dlna.dmc.DLNACastManager;
import com.fongmi.android.tv.bean.Device;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class DLNADevice {
private final List<org.fourthline.cling.model.meta.Device<?, ?, ?>> devices;
private final Set<org.fourthline.cling.model.meta.Device<?, ?, ?>> devices;
private static class Loader {
static volatile DLNADevice INSTANCE = new DLNADevice();
static final DLNADevice INSTANCE = new DLNADevice();
}
public static DLNADevice get() {
return Loader.INSTANCE;
}
public DLNADevice() {
this.devices = new ArrayList<>();
private DLNADevice() {
this.devices = new LinkedHashSet<>();
}
public List<com.fongmi.android.tv.bean.Device> getAll() {
List<com.fongmi.android.tv.bean.Device> items = new ArrayList<>();
for (org.fourthline.cling.model.meta.Device<?, ?, ?> item : devices) items.add(Device.get(item));
return items;
public List<Device> getAll() {
return devices.stream().map(Device::get).collect(Collectors.toList());
}
public List<com.fongmi.android.tv.bean.Device> add(org.fourthline.cling.model.meta.Device<?, ?, ?> item) {
devices.remove(item);
public Device add(org.fourthline.cling.model.meta.Device<?, ?, ?> item) {
devices.add(item);
return getAll();
return Device.get(item);
}
public Device remove(org.fourthline.cling.model.meta.Device<?, ?, ?> device) {
devices.remove(device);
return Device.get(device);
public Device remove(org.fourthline.cling.model.meta.Device<?, ?, ?> item) {
devices.remove(item);
return Device.get(item);
}
public void disconnect() {
for (org.fourthline.cling.model.meta.Device<?, ?, ?> device : devices) DLNACastManager.INSTANCE.disconnectDevice(device);
devices.forEach(DLNACastManager.INSTANCE::disconnectDevice);
}
public org.fourthline.cling.model.meta.Device<?, ?, ?> find(com.fongmi.android.tv.bean.Device item) {
for (org.fourthline.cling.model.meta.Device<?, ?, ?> device : devices) if (device.getIdentity().getUdn().getIdentifierString().equals(item.getUuid())) return device;
return null;
public org.fourthline.cling.model.meta.Device<?, ?, ?> find(Device item) {
return devices.stream().filter(d -> d.getIdentity().getUdn().getIdentifierString().equals(item.getUuid())).findFirst().orElse(null);
}
}

Loading…
Cancel
Save