| | |
| | | import android.view.LayoutInflater;
|
| | | import android.view.View;
|
| | | import android.view.ViewGroup;
|
| | | import android.widget.CompoundButton;
|
| | | import android.widget.Switch;
|
| | | import android.widget.TextView;
|
| | |
|
| | | import androidx.annotation.NonNull;
|
| | |
| | | import com.chad.library.adapter.base.viewholder.BaseViewHolder;
|
| | | import com.hdl.hdlsdk.DemoBean;
|
| | | import com.hdl.hdlsdk.R;
|
| | | import com.hdl.sdk.common.config.TopicConstant;
|
| | | import com.hdl.sdk.common.exception.HDLLinkException;
|
| | | import com.hdl.sdk.common.utils.IdUtils;
|
| | | import com.hdl.sdk.common.utils.LogUtils;
|
| | | import com.hdl.sdk.common.utils.gson.GsonConvert;
|
| | | import com.hdl.sdk.connect.HDLLink;
|
| | | import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
|
| | | import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
|
| | | import com.hdl.sdk.connect.callback.HDLLinkCallBack;
|
| | | import com.hdl.sdk.connect.config.HDLLinkConfig;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.util.List;
|
| | |
|
| | | public class DevicesListAdapter extends RecyclerView.Adapter<DevicesListAdapter.ViewHolder> {
|
| | |
| | | @Override
|
| | | public void onBindViewHolder(ViewHolder holder, int position) {
|
| | | holder.item_tv.setText(mList.get(position).getName());
|
| | | holder.device_on_off_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
| | | @Override
|
| | | public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
|
| | | propertyDown(mList.get(position), isChecked);
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | //自定义的ViewHolder,持有每个Item的的所有界面元素
|
| | | public static class ViewHolder extends RecyclerView.ViewHolder {
|
| | | public TextView item_tv;
|
| | | public Switch device_on_off_switch;
|
| | |
|
| | | public ViewHolder(View view) {
|
| | | super(view);
|
| | | item_tv = (TextView) view.findViewById(R.id.device_title_tv);
|
| | | device_on_off_switch = view.findViewById(R.id.device_on_off_switch);
|
| | | }
|
| | | }
|
| | |
|
| | | private void propertyDown(FunctionBean functionBean, Boolean isOn){
|
| | | List<DeviceControlRequest> requestList = new ArrayList<>();
|
| | | DeviceControlRequest request = new DeviceControlRequest();
|
| | | request.setSid(functionBean.getSid());
|
| | | List<DeviceControlRequest.StatusBean> statusBeanList= new ArrayList<>();
|
| | | DeviceControlRequest.StatusBean bean = new DeviceControlRequest.StatusBean();
|
| | | bean.setKey("on_off");
|
| | | bean.setValue(isOn ? "on" : "off");
|
| | | statusBeanList.add(bean);
|
| | | request.setStatus(statusBeanList);
|
| | | requestList.add(request);
|
| | | String time = String.valueOf(System.currentTimeMillis());
|
| | |
|
| | | final BaseLocalResponse<List<DeviceControlRequest>> data = new BaseLocalResponse<>();
|
| | | data.setId(IdUtils.getUUId());
|
| | | data.setTime_stamp(time);
|
| | | data.setObjects(requestList);
|
| | |
|
| | | String topic = String.format(TopicConstant.PROPERTY_DOWN, HDLLinkConfig.getInstance().getGatewayId());
|
| | |
|
| | | HDLLink.getInstance().tcpSendMsg(topic, GsonConvert.getGson().toJson(data));
|
| | | // HDLLink.getInstance().udpSendMsg(topic, GsonConvert.getGson().toJson(data));
|
| | | }
|
| | | } |