|
|
@@ -3,40 +3,50 @@ package com.silence.commonframe.activity;
|
|
|
import android.content.Intent;
|
|
|
import android.graphics.Color;
|
|
|
import android.os.Build;
|
|
|
-import android.os.Bundle;
|
|
|
+import android.support.annotation.NonNull;
|
|
|
import android.support.annotation.Nullable;
|
|
|
-import android.support.v7.app.AppCompatActivity;
|
|
|
import android.support.v7.widget.LinearLayoutManager;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
-import android.support.v7.widget.StaggeredGridLayoutManager;
|
|
|
import android.view.View;
|
|
|
import android.view.Window;
|
|
|
import android.view.WindowManager;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import com.google.gson.Gson;
|
|
|
+import com.google.gson.reflect.TypeToken;
|
|
|
+import com.lzy.okgo.OkGo;
|
|
|
+import com.lzy.okgo.cache.CacheMode;
|
|
|
+import com.lzy.okgo.callback.StringCallback;
|
|
|
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
|
|
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
|
|
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
|
|
|
import com.silence.commonframe.R;
|
|
|
-import com.silence.commonframe.activity.Interface.AirGuardWordTimeListener;
|
|
|
-import com.silence.commonframe.activity.presenter.AirGuardWordTimePresenter;
|
|
|
import com.silence.commonframe.adapter.AirGuardWorKTimeAdapter;
|
|
|
-import com.silence.commonframe.adapter.AirGuardWordTimeAdapter;
|
|
|
import com.silence.commonframe.base.basemvp.BaseActivity;
|
|
|
-import com.silence.commonframe.bean.AirGuardWordTimeBean;
|
|
|
-import com.silence.commonframe.utils.AtyContainer;
|
|
|
+import com.silence.commonframe.bean.AirGuardRunTimeListModel;
|
|
|
+import com.silence.commonframe.bean.BaseBean;
|
|
|
+import com.silence.commonframe.common.constant.UrlConstants;
|
|
|
+import com.silence.commonframe.utils.Data;
|
|
|
import com.silence.commonframe.utils.LinearItemDecoration;
|
|
|
+import com.silence.commonframe.utils.LoginIn;
|
|
|
+
|
|
|
+import org.json.JSONException;
|
|
|
+import org.json.JSONObject;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
|
|
|
import butterknife.BindView;
|
|
|
-import butterknife.ButterKnife;
|
|
|
+import okhttp3.Call;
|
|
|
+import okhttp3.Response;
|
|
|
|
|
|
/**
|
|
|
* 空气卫士-工作时间段
|
|
|
* @author 郑嘉明
|
|
|
*/
|
|
|
-public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWordTimeListener.View {
|
|
|
+public class AirGuardWordTimeActivity extends BaseActivity {
|
|
|
|
|
|
/**
|
|
|
* 导航栏信息
|
|
|
@@ -47,17 +57,20 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
@BindView(R.id.navi_head_text_right)
|
|
|
TextView navi_head_text_right; //右侧文字
|
|
|
|
|
|
- @BindView(R.id.rv_work_time)
|
|
|
- RecyclerView rvWorkTime; //时间列表
|
|
|
+ @BindView(R.id.worktime_recyclerview)
|
|
|
+ RecyclerView worktime_recyclerview; //时间列表
|
|
|
+
|
|
|
+ @BindView(R.id.srl_refresh)
|
|
|
+ SmartRefreshLayout srlRefresh;
|
|
|
|
|
|
AirGuardWorKTimeAdapter airGuardWorKTimeAdapter; //工作时间适配器
|
|
|
|
|
|
- List<HashMap<String,String>> listTime = new ArrayList<>();
|
|
|
+ List<AirGuardRunTimeListModel.DataBean> listTime = new ArrayList<>();
|
|
|
+
|
|
|
+ private String id;
|
|
|
+ private String deviceId = "";
|
|
|
|
|
|
- private AirGuardWordTimeAdapter timeAdapter;
|
|
|
- List<AirGuardWordTimeBean> airGuardWordTimeDatas=new ArrayList<>();
|
|
|
- AirGuardWordTimePresenter presenter;
|
|
|
- String airDevId="";
|
|
|
+ private List<AirGuardRunTimeListModel.DataBean> listRunTime=new ArrayList<>();
|
|
|
|
|
|
@Override
|
|
|
public int getLayoutId() {
|
|
|
@@ -66,24 +79,62 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
|
|
|
@Override
|
|
|
public void initPresenter() {
|
|
|
- presenter=new AirGuardWordTimePresenter(this,this);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void initView() {
|
|
|
- airDevId=getIntent().getStringExtra("airDevId");
|
|
|
navi_head_text.setText(R.string.airguard_worktime); //设置标题
|
|
|
navi_head_text_right.setText(R.string.add); //设置右侧文字
|
|
|
+ setTimeDate();
|
|
|
//设置全屏
|
|
|
initWindows();
|
|
|
- //设置工作时间数据
|
|
|
- setTimeDate();
|
|
|
+ getRunTime();
|
|
|
+
|
|
|
//导航栏添加按钮点击事件
|
|
|
addNewTimeListener();
|
|
|
- rvWorkTime.setLayoutManager(new StaggeredGridLayoutManager( 4, StaggeredGridLayoutManager.VERTICAL));
|
|
|
- timeAdapter=new AirGuardWordTimeAdapter(R.layout.item_airguard_worktime,airGuardWordTimeDatas);
|
|
|
- rvWorkTime.setAdapter(timeAdapter);
|
|
|
- presenter.getData();
|
|
|
+ srlRefresh.setEnableLoadMore(false);
|
|
|
+ srlRefresh.setOnRefreshListener(new OnRefreshListener() {
|
|
|
+ @Override
|
|
|
+ public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
|
|
+ getRunTime();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getRunTime() {
|
|
|
+ OkGo.get(UrlConstants.AIRGUARD_RUNTIMELIST)
|
|
|
+ .tag(this)
|
|
|
+ .params("deviceId",deviceId)
|
|
|
+ .cacheKey("cacheGetKey")
|
|
|
+ .cacheMode(CacheMode.DEFAULT)
|
|
|
+ .headers("token", Data.getToken())
|
|
|
+ .execute(new StringCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String s, Call call, Response response) {
|
|
|
+ AirGuardRunTimeListModel data = new Gson().fromJson(s,AirGuardRunTimeListModel.class);
|
|
|
+ System.out.println(data.getData());
|
|
|
+ if (data.getCode() == 0){
|
|
|
+ //设置工作时间数据
|
|
|
+ listTime.clear();
|
|
|
+ listTime.addAll(data.getData());
|
|
|
+ airGuardWorKTimeAdapter.notifyDataSetChanged();
|
|
|
+ }
|
|
|
+ if (srlRefresh!=null){
|
|
|
+ srlRefresh.finishLoadMore();
|
|
|
+ srlRefresh.finishRefresh();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Call call, Response response, Exception e) {
|
|
|
+ super.onError(call, response, e);
|
|
|
+ if (srlRefresh!=null){
|
|
|
+ srlRefresh.finishLoadMore();
|
|
|
+ srlRefresh.finishRefresh();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -104,8 +155,8 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
|
|
|
/**
|
|
|
* 获取添加和修改的时间,添加修改时间的接口在这加
|
|
|
- * @param requestCode 222
|
|
|
- * @param resultCode 222
|
|
|
+ * @param requestCode 222 333
|
|
|
+ * @param resultCode 222 333
|
|
|
* @param data worktime
|
|
|
*/
|
|
|
@Override
|
|
|
@@ -113,26 +164,22 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
if (requestCode == 222 && resultCode == 222){
|
|
|
assert data != null;
|
|
|
- String newtime = data.getStringExtra("worktime");
|
|
|
- int wind_speed = data.getIntExtra("wind_speed",0);
|
|
|
- HashMap<String,String> hashMap = new HashMap<>();
|
|
|
- hashMap.put("time",newtime);
|
|
|
- hashMap.put("wind_speed",String.valueOf(wind_speed));
|
|
|
- airGuardWorKTimeAdapter.addWorkTime(hashMap); //适配器增加数据刷新
|
|
|
- //这里加添加时间的接口方法。
|
|
|
+ //获取运行时间段
|
|
|
+ getRunTime();
|
|
|
|
|
|
}else if (requestCode == 333 && resultCode == 333){
|
|
|
assert data != null;
|
|
|
- String newtime = data.getStringExtra("worktime");
|
|
|
- int pos = data.getIntExtra("position",-1);
|
|
|
- int wind_speed = data.getIntExtra("wind_speed",0);
|
|
|
- HashMap<String,String> hashMap = new HashMap<>();
|
|
|
- hashMap.put("time",newtime);
|
|
|
- hashMap.put("wind_speed",String.valueOf(wind_speed));
|
|
|
- hashMap.put("switch_state","0"); //开关状态,0是关,1是开。有接口后要传值
|
|
|
- airGuardWorKTimeAdapter.updateWorkTime(hashMap,pos); //适配器修改数据刷新
|
|
|
- //这里加修改时间的接口方法。
|
|
|
+// String newtime = data.getStringExtra("worktime");
|
|
|
+// int pos = data.getIntExtra("position",-1);
|
|
|
+// int wind_speed = data.getIntExtra("wind_speed",0);
|
|
|
+// HashMap<String,String> hashMap = new HashMap<>();
|
|
|
+// hashMap.put("time",newtime);
|
|
|
+// hashMap.put("wind_speed",String.valueOf(wind_speed));
|
|
|
+// hashMap.put("switch_state","0"); //开关状态,0是关,1是开。有接口后要传值
|
|
|
+// airGuardWorKTimeAdapter.updateWorkTime(hashMap,pos); //适配器修改数据刷新
|
|
|
|
|
|
+ //这里加修改时间的接口方法。
|
|
|
+ getRunTime();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -140,10 +187,11 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
* 设置工作时间数据
|
|
|
*/
|
|
|
private void setTimeDate() {
|
|
|
- airGuardWorKTimeAdapter = new AirGuardWorKTimeAdapter(AirGuardWordTimeActivity.this,listTime);
|
|
|
- rvWorkTime.setLayoutManager(new LinearLayoutManager(AirGuardWordTimeActivity.this));
|
|
|
- rvWorkTime.addItemDecoration(new LinearItemDecoration(AirGuardWordTimeActivity.this,LinearLayoutManager.HORIZONTAL,R.drawable.decoration_item)); //设置分割线
|
|
|
- rvWorkTime.setAdapter(airGuardWorKTimeAdapter);
|
|
|
+
|
|
|
+ airGuardWorKTimeAdapter = new AirGuardWorKTimeAdapter(AirGuardWordTimeActivity.this,listRunTime);
|
|
|
+ worktime_recyclerview.setLayoutManager(new LinearLayoutManager(AirGuardWordTimeActivity.this));
|
|
|
+ worktime_recyclerview.addItemDecoration(new LinearItemDecoration(AirGuardWordTimeActivity.this,LinearLayoutManager.HORIZONTAL,R.drawable.decoration_item)); //设置分割线
|
|
|
+ worktime_recyclerview.setAdapter(airGuardWorKTimeAdapter);
|
|
|
|
|
|
airGuardWorKTimeAdapter.setOnItenClickListener(new AirGuardWorKTimeAdapter.OnItemClickLitener() {
|
|
|
@Override
|
|
|
@@ -157,7 +205,7 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
Toast.makeText(AirGuardWordTimeActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
|
|
|
airGuardWorKTimeAdapter.deleteWorkTime(position); //适配器删除数据刷新
|
|
|
//这里加删除时间的接口方法。
|
|
|
-
|
|
|
+ delRunTime(position);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -167,16 +215,17 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
intent.putExtra("wind_speed",wind);
|
|
|
intent.putExtra("type","update");
|
|
|
intent.putExtra("position",position);
|
|
|
+ intent.putExtra("id",listTime.get(position).getId());
|
|
|
startActivityForResult(intent,333);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onSwitchListener(Boolean isCheck, int position) {
|
|
|
- //蜂鸣器的开关
|
|
|
+ //开关
|
|
|
if (isCheck){
|
|
|
- Toast.makeText(AirGuardWordTimeActivity.this,"打开",Toast.LENGTH_SHORT).show();
|
|
|
+ openCloseRunTime(position);
|
|
|
}else {
|
|
|
- Toast.makeText(AirGuardWordTimeActivity.this,"关闭",Toast.LENGTH_SHORT).show();
|
|
|
+ openCloseRunTime(position);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -186,6 +235,66 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 删除运行时间间隔
|
|
|
+ */
|
|
|
+ private void delRunTime(int position) {
|
|
|
+ OkGo.get(UrlConstants.AIRGUARD_DEL_RUNTIME)
|
|
|
+ .tag(this)
|
|
|
+ .params("id",listTime.get(position).getId())
|
|
|
+ .cacheKey("cacheGetKey")
|
|
|
+ .cacheMode(CacheMode.DEFAULT)
|
|
|
+ .headers("token", Data.getToken())
|
|
|
+ .execute(new StringCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String s, Call call, Response response) {
|
|
|
+ try {
|
|
|
+ JSONObject jsonObject = new JSONObject(s);
|
|
|
+ int code = jsonObject.getInt("code");
|
|
|
+ String message = jsonObject.get("msg").toString();
|
|
|
+ if (code == 0){
|
|
|
+ Toast.makeText(AirGuardWordTimeActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
|
|
|
+ }else {
|
|
|
+ LoginIn.tokenOut(code+"",AirGuardWordTimeActivity.this);
|
|
|
+ Toast.makeText(AirGuardWordTimeActivity.this,""+message,Toast.LENGTH_SHORT).show();
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 打开或关闭运行时间间隔
|
|
|
+ */
|
|
|
+ private void openCloseRunTime(int position) {
|
|
|
+ OkGo.get(UrlConstants.AIRGUARD_OPEN_CLOSE_RUNTIME)
|
|
|
+ .tag(this)
|
|
|
+ .params("id",listTime.get(position).getId()) //
|
|
|
+ .cacheKey("cacheGetKey")
|
|
|
+ .cacheMode(CacheMode.DEFAULT)
|
|
|
+ .headers("token", Data.getToken())
|
|
|
+ .execute(new StringCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(String s, Call call, Response response) {
|
|
|
+ try {
|
|
|
+ JSONObject jsonObject = new JSONObject(s);
|
|
|
+ int code = jsonObject.getInt("code");
|
|
|
+ String message = jsonObject.get("msg").toString();
|
|
|
+ if (code == 0){
|
|
|
+ Toast.makeText(AirGuardWordTimeActivity.this,""+message,Toast.LENGTH_SHORT).show();
|
|
|
+ }else {
|
|
|
+ LoginIn.tokenOut(code+"",AirGuardWordTimeActivity.this);
|
|
|
+ Toast.makeText(AirGuardWordTimeActivity.this,""+message,Toast.LENGTH_SHORT).show();
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 页面全屏
|
|
|
*/
|
|
|
private void initWindows() {
|
|
|
@@ -208,18 +317,4 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
|
|
|
finish();
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public String getDevId() {
|
|
|
- return airDevId;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onSuccess(AirGuardWordTimeBean bean) {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onFile(String msg) {
|
|
|
- Toast.makeText(this,""+msg,Toast.LENGTH_SHORT).show();
|
|
|
- }
|
|
|
}
|