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 f56bc8d8e..3bd5a7b4f 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 @@ -41,6 +41,14 @@ public class Device { return device; } + public static Device get(org.fourthline.cling.model.meta.Device item) { + Device device = new Device(); + device.setUuid(item.getIdentity().getUdn().getIdentifierString()); + device.setName(item.getDetails().getFriendlyName()); + device.setType(2); + return device; + } + public static Device objectFrom(String str) { return App.gson().fromJson(str, Device.class); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/cast/ScanEvent.java b/app/src/main/java/com/fongmi/android/tv/event/ScanEvent.java similarity index 90% rename from app/src/mobile/java/com/fongmi/android/tv/cast/ScanEvent.java rename to app/src/main/java/com/fongmi/android/tv/event/ScanEvent.java index 3a16ead01..511182412 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/cast/ScanEvent.java +++ b/app/src/main/java/com/fongmi/android/tv/event/ScanEvent.java @@ -1,4 +1,4 @@ -package com.fongmi.android.tv.cast; +package com.fongmi.android.tv.event; import org.greenrobot.eventbus.EventBus; diff --git a/app/src/mobile/java/com/fongmi/android/tv/cast/ScanTask.java b/app/src/main/java/com/fongmi/android/tv/utils/ScanTask.java similarity index 98% rename from app/src/mobile/java/com/fongmi/android/tv/cast/ScanTask.java rename to app/src/main/java/com/fongmi/android/tv/utils/ScanTask.java index 193a207cd..bc39c3394 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/cast/ScanTask.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ScanTask.java @@ -1,4 +1,4 @@ -package com.fongmi.android.tv.cast; +package com.fongmi.android.tv.utils; import com.fongmi.android.tv.App; import com.fongmi.android.tv.bean.Device; diff --git a/app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java b/app/src/mobile/java/com/fongmi/android/tv/bean/CastVideo.java similarity index 95% rename from app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java rename to app/src/mobile/java/com/fongmi/android/tv/bean/CastVideo.java index 40e3df806..9e0233b7a 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java +++ b/app/src/mobile/java/com/fongmi/android/tv/bean/CastVideo.java @@ -1,4 +1,4 @@ -package com.fongmi.android.tv.cast; +package com.fongmi.android.tv.bean; import com.fongmi.android.tv.server.Server; import com.github.catvod.utils.Path; diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 8a5af9d30..e3ee6dea9 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -27,6 +27,7 @@ import com.fongmi.android.tv.Constant; import com.fongmi.android.tv.R; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.api.config.LiveConfig; +import com.fongmi.android.tv.bean.CastVideo; import com.fongmi.android.tv.bean.Channel; import com.fongmi.android.tv.bean.Epg; import com.fongmi.android.tv.bean.EpgData; @@ -34,7 +35,6 @@ import com.fongmi.android.tv.bean.Group; import com.fongmi.android.tv.bean.Keep; import com.fongmi.android.tv.bean.Live; import com.fongmi.android.tv.bean.Track; -import com.fongmi.android.tv.cast.CastVideo; import com.fongmi.android.tv.databinding.ActivityLiveBinding; import com.fongmi.android.tv.event.ActionEvent; import com.fongmi.android.tv.event.ErrorEvent; diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/ScanActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/ScanActivity.java index 41c8ad425..5dfa7571b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/ScanActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/ScanActivity.java @@ -8,8 +8,8 @@ import android.os.Bundle; import androidx.annotation.NonNull; import androidx.viewbinding.ViewBinding; -import com.fongmi.android.tv.cast.ScanEvent; import com.fongmi.android.tv.databinding.ActivityScanBinding; +import com.fongmi.android.tv.event.ScanEvent; import com.fongmi.android.tv.ui.base.BaseActivity; import com.fongmi.android.tv.utils.Util; import com.google.zxing.BarcodeFormat; diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index a9180c3d5..59dc9e1be 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -43,6 +43,7 @@ import com.fongmi.android.tv.Constant; import com.fongmi.android.tv.R; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.api.config.VodConfig; +import com.fongmi.android.tv.bean.CastVideo; import com.fongmi.android.tv.bean.Episode; import com.fongmi.android.tv.bean.Flag; import com.fongmi.android.tv.bean.History; @@ -53,7 +54,6 @@ import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.bean.Sub; import com.fongmi.android.tv.bean.Track; import com.fongmi.android.tv.bean.Vod; -import com.fongmi.android.tv.cast.CastVideo; import com.fongmi.android.tv.databinding.ActivityVideoBinding; import com.fongmi.android.tv.db.AppDatabase; import com.fongmi.android.tv.event.ActionEvent; 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 b65ec3857..a67e59fb5 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 @@ -19,17 +19,17 @@ import com.fongmi.android.tv.App; import com.fongmi.android.tv.Constant; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.config.VodConfig; +import com.fongmi.android.tv.utils.DLNADevice; +import com.fongmi.android.tv.bean.CastVideo; import com.fongmi.android.tv.bean.Device; import com.fongmi.android.tv.bean.History; -import com.fongmi.android.tv.cast.CastDevice; -import com.fongmi.android.tv.cast.CastVideo; -import com.fongmi.android.tv.cast.ScanEvent; -import com.fongmi.android.tv.cast.ScanTask; import com.fongmi.android.tv.databinding.DialogDeviceBinding; +import com.fongmi.android.tv.event.ScanEvent; import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.ui.activity.ScanActivity; import com.fongmi.android.tv.ui.adapter.DeviceAdapter; import com.fongmi.android.tv.utils.Notify; +import com.fongmi.android.tv.utils.ScanTask; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Path; import com.github.catvod.utils.Util; @@ -67,9 +67,9 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe } public CastDialog() { - client = OkHttp.client(Constant.TIMEOUT_SYNC); body = new FormBody.Builder(); body.add("device", Device.get().toString()); + client = OkHttp.client(Constant.TIMEOUT_SYNC); if (VodConfig.getUrl() != null) body.add("url", VodConfig.getUrl()); } @@ -126,7 +126,7 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe private void getDevice() { if (fm) adapter.addAll(Device.getAll()); - adapter.addAll(CastDevice.get().getAll()); + adapter.addAll(DLNADevice.get().getAll()); } private void initDLNA() { @@ -161,12 +161,12 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe @Override public void onDeviceAdded(@NonNull org.fourthline.cling.model.meta.Device device) { - adapter.addAll(CastDevice.get().add(device)); + adapter.addAll(DLNADevice.get().add(device)); } @Override public void onDeviceRemoved(@NonNull org.fourthline.cling.model.meta.Device device) { - adapter.remove(CastDevice.get().remove(device)); + adapter.remove(DLNADevice.get().remove(device)); } @Override @@ -203,14 +203,14 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe @Override public void onItemClick(Device item) { - if (item.isDLNA()) control = DLNACastManager.INSTANCE.connectDevice(CastDevice.get().find(item), this); + if (item.isDLNA()) control = DLNACastManager.INSTANCE.connectDevice(DLNADevice.get().find(item), this); else OkHttp.newCall(client, item.getIp().concat("/action?do=cast"), body.build()).enqueue(this); } @Override public void onDestroyView() { super.onDestroyView(); - CastDevice.get().disconnect(); + DLNADevice.get().disconnect(); EventBus.getDefault().unregister(this); DLNACastManager.INSTANCE.unregisterListener(this); DLNACastManager.INSTANCE.unbindCastService(App.get()); 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 969c53b7a..302fa8ad5 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 @@ -16,13 +16,13 @@ import com.fongmi.android.tv.bean.Config; import com.fongmi.android.tv.bean.Device; import com.fongmi.android.tv.bean.History; import com.fongmi.android.tv.bean.Keep; -import com.fongmi.android.tv.cast.ScanEvent; -import com.fongmi.android.tv.cast.ScanTask; import com.fongmi.android.tv.databinding.DialogDeviceBinding; +import com.fongmi.android.tv.event.ScanEvent; import com.fongmi.android.tv.impl.Callback; import com.fongmi.android.tv.ui.activity.ScanActivity; import com.fongmi.android.tv.ui.adapter.DeviceAdapter; import com.fongmi.android.tv.utils.Notify; +import com.fongmi.android.tv.utils.ScanTask; import com.github.catvod.net.OkHttp; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; diff --git a/app/src/mobile/java/com/fongmi/android/tv/cast/CastDevice.java b/app/src/mobile/java/com/fongmi/android/tv/utils/DLNADevice.java similarity index 68% rename from app/src/mobile/java/com/fongmi/android/tv/cast/CastDevice.java rename to app/src/mobile/java/com/fongmi/android/tv/utils/DLNADevice.java index 0ea51b2c4..4594fc647 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/cast/CastDevice.java +++ b/app/src/mobile/java/com/fongmi/android/tv/utils/DLNADevice.java @@ -1,4 +1,4 @@ -package com.fongmi.android.tv.cast; +package com.fongmi.android.tv.utils; import com.android.cast.dlna.dmc.DLNACastManager; import com.fongmi.android.tv.bean.Device; @@ -6,37 +6,25 @@ import com.fongmi.android.tv.bean.Device; import java.util.ArrayList; import java.util.List; -public class CastDevice { +public class DLNADevice { private final List> devices; private static class Loader { - static volatile CastDevice INSTANCE = new CastDevice(); + static volatile DLNADevice INSTANCE = new DLNADevice(); } - public static CastDevice get() { + public static DLNADevice get() { return Loader.INSTANCE; } - public CastDevice() { + public DLNADevice() { this.devices = new ArrayList<>(); } - public boolean isEmpty() { - return devices.isEmpty(); - } - - private Device create(org.fourthline.cling.model.meta.Device item) { - Device device = new Device(); - device.setUuid(item.getIdentity().getUdn().getIdentifierString()); - device.setName(item.getDetails().getFriendlyName()); - device.setType(2); - return device; - } - public List getAll() { List items = new ArrayList<>(); - for (org.fourthline.cling.model.meta.Device item : devices) items.add(create(item)); + for (org.fourthline.cling.model.meta.Device item : devices) items.add(Device.get(item)); return items; } @@ -48,7 +36,7 @@ public class CastDevice { public Device remove(org.fourthline.cling.model.meta.Device device) { devices.remove(device); - return create(device); + return Device.get(device); } public void disconnect() {