package com.utils; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; import com.common.openapi.ClassInstanceManager; import com.common.openapi.DeviceSubAccountListService; import com.common.openapi.IGetDeviceInfoCallBack; import com.common.openapi.MethodConst; import com.common.openapi.entity.DeviceDetailListData; import com.lechange.demo.ui.DeviceDetailActivity; import com.lechange.demo.ui.DeviceListActivity; import com.lechange.demo.ui.DeviceOnlineMediaPlayActivity; import com.mm.android.deviceaddmodule.openapi.HDLMD5Utils; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * Created by hxb on 2022/11/22. */ public class DeviceUtils implements IGetDeviceInfoCallBack.ISubAccountDevice< DeviceDetailListData.Response> { private String deviceId; public DeviceUtils(String deviceId){ this.deviceId=deviceId; } private static List datas = new ArrayList<>(); private void getDeviceList() { DeviceSubAccountListService deviceSubAccountListService = ClassInstanceManager.newInstance().getDeviceSubAccountListService(); deviceSubAccountListService.getSubAccountDeviceList(1,this); } public void play() { for (DeviceDetailListData.ResponseData.DeviceListBean deviceListBean : datas) { if (deviceListBean.deviceId.equals(deviceId)) { if (!deviceListBean.status.equals("online")) { return; } Bundle bundle = new Bundle(); bundle.putSerializable(MethodConst.ParamConst.deviceDetail, deviceListBean); Intent intent = new Intent(HdlToLcUtils.getInstance().getActivity(), DeviceOnlineMediaPlayActivity.class); intent.putExtras(bundle); HdlToLcUtils.getInstance().getActivity().startActivity(intent); return; } } getDeviceList(); } @Override public void DeviceList(DeviceDetailListData.Response responseData) { if (responseData.data != null && responseData.data.deviceList != null && responseData.data.deviceList.size() != 0) { Iterator iterator = responseData.data.deviceList.iterator(); while (iterator.hasNext()) { DeviceDetailListData.ResponseData.DeviceListBean next = iterator.next(); if (next.channels != null && next.channels.size() == 0 && !next.catalog.contains("NVR")) { // 使用迭代器中的remove()方法,可以删除元素. iterator.remove(); } } } if ((responseData.data == null || responseData.data.deviceList == null || responseData.data.deviceList.size() == 0)) { return; } datas.addAll(responseData.data.deviceList); for (DeviceDetailListData.ResponseData.DeviceListBean deviceListBean : datas) { if (deviceListBean.deviceId.equals(deviceId)) { if (!deviceListBean.status.equals("online")) { return; } Bundle bundle = new Bundle(); bundle.putSerializable(MethodConst.ParamConst.deviceDetail, deviceListBean); Intent intent = new Intent(HdlToLcUtils.getInstance().getActivity(), DeviceOnlineMediaPlayActivity.class); intent.putExtras(bundle); HdlToLcUtils.getInstance().getActivity().startActivity(intent); return; } } } @Override public void onError(Throwable throwable) { Toast.makeText(HdlToLcUtils.getInstance().getActivity(), throwable.getMessage(), Toast.LENGTH_SHORT).show(); } }