package com.moral.screen.activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.model.LatLng; import com.lzy.okgo.cache.CacheMode; import com.moral.andbrickslib.baseadapter.recyclerview.MultiItemTypeAdapter; import com.moral.andbrickslib.utils.FastJsonTools; import com.moral.screen.MainApp; import com.moral.screen.R; import com.moral.screen.adapter.DeviceDataAdapter; import com.moral.screen.base.BaseActivity; import com.moral.screen.common.API; import com.moral.screen.httputils.HttpCallBack; import com.moral.screen.model.DeviceBean; import com.moral.screen.model.DeviceDataBean; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.Timer; import java.util.TimerTask; /** * Created by hjzhang on 2018/7/4. */ public class DeviceDataActivity extends BaseActivity { private TextView tv_left; private RecyclerView rv_data; private DeviceDataAdapter adapter; private ArrayList dataList = new ArrayList<>(); private int deviceVersionId,deviceId; private String mac; private Timer timer; /** * 计时器 */ private boolean isFinish = false; private void getDataForTime() { timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if(!isFinish){ getData(false); } } },0,10*1000); } @Override protected void getBundleExtras(Bundle extras) { deviceVersionId = getIntent().getIntExtra("deviceVersionId",0); deviceId = getIntent().getIntExtra("deviceId",0); mac = getIntent().getStringExtra("mac"); } @Override protected int getLayoutId() { return R.layout.ac_device_data_layout; } @Override protected void initViews() { tv_left = findView(R.id.tv_left); rv_data = findView(R.id.rv_data); adapter = new DeviceDataAdapter(rv_data,R.layout.list_item_data,dataList); rv_data.setLayoutManager(new LinearLayoutManager(rv_data.getContext())); rv_data.setAdapter(adapter); adapter.setOnItemClickListener(new MultiItemTypeAdapter.OnItemClickListener() { @Override public void onItemClick(View view, RecyclerView.ViewHolder holder, int position) { DeviceDataBean data = dataList.get(position); Intent intent = new Intent(DeviceDataActivity.this,ChartActivity.class); intent.putExtra("sensorKey",data.getSensor_key()); intent.putExtra("name",data.getDescription()); intent.putExtra("mac",mac); intent.putExtra("maxValue",data.getUpper()); intent.putExtra("unit",data.getUnit()); startActivity(intent); } @Override public boolean onItemLongClick(View view, RecyclerView.ViewHolder holder, int position) { return false; } }); } @Override protected void initListener() { tv_left.setOnClickListener(this); } @Override protected void initData() { getData(true); getDataForTime(); } @Override protected void processClick(View view) { switch (view.getId()){ case R.id.tv_left: finish(); break; } } @Override protected void onErrorPageClick() { } private void getData(boolean show) { HashMap params = new HashMap<>(); params.put("deviceVersionId", deviceVersionId+""); params.put("deviceId", deviceId+""); params.put("mac", mac); mHttpUtils.doGet(API.SENSORS, params, CacheMode.DEFAULT, show, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { if (progressDialog.isShowing()) { progressDialog.dismiss(); } ArrayList temp = (ArrayList) FastJsonTools.getArrayJson(res,DeviceDataBean.class); if(temp!=null){ dataList.clear(); dataList.addAll(temp); } adapter.notifyDataSetChanged(); } @Override public void showLoadingDialog() { progressDialog.setTitleText("正在获取数据..."); progressDialog.show(); } @Override public void onFail(int errno, String s) { mToatUtils.showSingletonToast(s); if (progressDialog.isShowing()) { progressDialog.dismiss(); } } }); } }