pull/586/head
FongMi 2 years ago
parent f5b52acfd5
commit 2ea6f2431b
  1. 8
      app/src/main/java/com/fongmi/android/tv/bean/Device.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/event/ScanEvent.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/utils/ScanTask.java
  4. 2
      app/src/mobile/java/com/fongmi/android/tv/bean/CastVideo.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  6. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/ScanActivity.java
  7. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  8. 20
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/CastDialog.java
  9. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java
  10. 26
      app/src/mobile/java/com/fongmi/android/tv/utils/DLNADevice.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);
}

@ -1,4 +1,4 @@
package com.fongmi.android.tv.cast;
package com.fongmi.android.tv.event;
import org.greenrobot.eventbus.EventBus;

@ -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;

@ -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;

@ -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;

@ -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;

@ -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;

@ -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());

@ -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;

@ -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<org.fourthline.cling.model.meta.Device<?, ?, ?>> 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<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(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() {
Loading…
Cancel
Save