Moon 6 years ago
parent
commit
bb128bb234

+ 98 - 44
app/src/main/java/com/silence/commonframe/activity/AirGuardActivity.java

@@ -3,8 +3,7 @@ package com.silence.commonframe.activity;
 import android.content.Intent;
 import android.graphics.Color;
 import android.os.Build;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import android.support.annotation.Nullable;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
@@ -16,20 +15,22 @@ import android.widget.Switch;
 import android.widget.TextView;
 import android.widget.Toast;
 
-import com.orhanobut.hawk.Hawk;
 import com.silence.commonframe.R;
-import com.silence.commonframe.utils.AtyContainer;
+import com.silence.commonframe.activity.Interface.AirGuardListener;
+import com.silence.commonframe.activity.presenter.AirGuardPresenter;
+import com.silence.commonframe.base.basemvp.BaseActivity;
+import com.silence.commonframe.bean.AirGuardDetailBean;
 import com.silence.commonframe.utils.TitlePopupMenu;
 
 import butterknife.BindView;
-import butterknife.ButterKnife;
+import butterknife.OnClick;
 
 /**
  * 空气卫士界面
  * @author 郑嘉明
  * id: airguard_pic_top(顶部图片)、airguard_timeclock(实时时钟)、airguard_worktime(工作时间段)、airguard_buzzer(蜂鸣器)、buzzer_switch(蜂鸣器开关)、airguard_power(电源开关)、img_power(电源开关标志)
  */
-public class AirGuardActivity extends AppCompatActivity implements View.OnClickListener {
+public class AirGuardActivity extends BaseActivity implements AirGuardListener.View {
 
     /**
      * 导航栏信息
@@ -54,31 +55,39 @@ public class AirGuardActivity extends AppCompatActivity implements View.OnClickL
     ImageView img_power;                //电源开关标志
 
     private TitlePopupMenu titlePopupMenu;
+    String airDevId="";
+    String airDevName="";
+    AirGuardPresenter presenter;
+    String isOpen="0";//是否打开
+    String isInit="";
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_air_guard);
-        ButterKnife.bind(this);
-        AtyContainer.getInstance().addActivity(this);
+    public int getLayoutId() {
+        return R.layout.activity_air_guard;
+    }
+
+    @Override
+    public void initPresenter() {
+        presenter=new AirGuardPresenter(this,this);
+    }
+
+    @Override
+    public void initView() {
         navi_head_text.setText(R.string.device_airguard);       //设置标题
         navi_head_text_right.setText(R.string.more);            //设置右侧文字
+        airDevId=getIntent().getStringExtra("airDevId");
+
         //设置全屏
         initWindows();
-
         //设置
         init();
+        presenter.getData();
     }
 
     /**
      * 基本的设置
      */
     private void init() {
-        airguard_timeclock.setOnClickListener(this);
-        airguard_worktime.setOnClickListener(this);
-        airguard_buzzer.setOnClickListener(this);
-        airguard_power.setOnClickListener(this);
-
         //蜂鸣器开关监听
         buzzerCheckedChangeListener();
 
@@ -108,7 +117,9 @@ public class AirGuardActivity extends AppCompatActivity implements View.OnClickL
         if (msg.equals("设备详情")) {
                 Intent intent = new Intent(AirGuardActivity.this,AirGuardDetailActivity.class);
                 //应该要传ID和名称
-                startActivity(intent);
+                intent.putExtra("airDevId",airDevId);
+                intent.putExtra("airDevName",airDevName);
+                startActivityForResult(intent,555);
         }
     }
 
@@ -119,11 +130,8 @@ public class AirGuardActivity extends AppCompatActivity implements View.OnClickL
         buzzer_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                if (isChecked){
-                    Toast.makeText(AirGuardActivity.this,"蜂鸣器开",Toast.LENGTH_SHORT).show();
-                }else {
-                    Toast.makeText(AirGuardActivity.this,"蜂鸣器关",Toast.LENGTH_SHORT).show();
-                }
+                if(!"true".equals(isInit))
+                    presenter.setBuzzer();
             }
         });
     }
@@ -131,37 +139,30 @@ public class AirGuardActivity extends AppCompatActivity implements View.OnClickL
     /**
      * 点击事件
      */
-    @Override
+    @OnClick({R.id.airguard_timeclock,R.id.airguard_worktime,R.id.airguard_buzzer,R.id.airguard_power})
     public void onClick(View v) {
         switch (v.getId()){
-            case R.id.airguard_timeclock:{
-                Intent intent = new Intent(AirGuardActivity.this, AirGuardTimeClockActivity.class);
-                startActivity(intent);
-            }
+            case R.id.airguard_timeclock:
+                startActivity(new Intent().putExtra("airDevId",airDevId).setClass(AirGuardActivity.this, AirGuardTimeClockActivity.class));
                 break;
-            case R.id.airguard_worktime:{
-                Intent intent = new Intent(AirGuardActivity.this, AirGuardWordTimeActivity.class);
-                startActivity(intent);
-            }
+            case R.id.airguard_worktime:
+                startActivity(new Intent().putExtra("airDevId",airDevId).setClass(AirGuardActivity.this, AirGuardWordTimeActivity.class));
             break;
-            case R.id.airguard_buzzer:{
+            case R.id.airguard_buzzer:
                 buzzerSwitch();
-            }
             break;
-            case R.id.airguard_power:{
-                powerSwitch();
-            }
+            case R.id.airguard_power:
+               presenter.setIsOpen(isOpen);
             break;
         }
     }
 
-    /**
-     * 电源的开关事件
-     */
-    private void powerSwitch() {
-        //要判断是否开了
-        Toast.makeText(AirGuardActivity.this,"电源开关",Toast.LENGTH_SHORT).show();
-        img_power.setImageResource(R.mipmap.power_on);
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == 555 && resultCode == 555){
+            presenter.getData();
+        }
     }
 
     /**
@@ -198,4 +199,57 @@ public class AirGuardActivity extends AppCompatActivity implements View.OnClickL
         finish();
     }
 
+    @Override
+    public String getDevId() {
+        return airDevId;
+    }
+
+    //空气卫士详情
+    @Override
+    public void onSuccess(AirGuardDetailBean data) {
+        if ("0".equals(data.getBuzzerState())){
+            buzzer_switch.setChecked(false);
+        }else {
+            buzzer_switch.setChecked(true);
+        }
+        isInit="true";//蜂鸣器初始化判断,以免触发Switch改变箭头
+
+
+        if ("0".equals(data.getIfOpen())){
+            img_power.setImageResource(R.mipmap.power_off);
+        }else {
+            img_power.setImageResource(R.mipmap.power_on);
+        }
+        isOpen=data.getIfOpen();
+
+        airDevName = data.getDeviceName();
+    }
+
+    //蜂鸣器开关
+    @Override
+    public void onSuccess() {
+        if (buzzer_switch.isChecked()){
+            Toast.makeText(AirGuardActivity.this,"蜂鸣器开",Toast.LENGTH_SHORT).show();
+        }else {
+            Toast.makeText(AirGuardActivity.this,"蜂鸣器关",Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    //电源开关
+    @Override
+    public void onSuccess(String isOpen) {
+        this.isOpen=isOpen;
+        if ("0".equals(isOpen)){
+            img_power.setImageResource(R.mipmap.power_off);
+            Toast.makeText(AirGuardActivity.this,"电源关",Toast.LENGTH_SHORT).show();
+        }else {
+            img_power.setImageResource(R.mipmap.power_on);
+            Toast.makeText(AirGuardActivity.this,"电源开",Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    @Override
+    public void onFile(String msg) {
+        Toast.makeText(this,""+msg,Toast.LENGTH_SHORT).show();
+    }
 }

+ 14 - 3
app/src/main/java/com/silence/commonframe/activity/AirGuardDetailActivity.java

@@ -1,6 +1,7 @@
 package com.silence.commonframe.activity;
 
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.graphics.Color;
 import android.os.Build;
 import android.os.Bundle;
@@ -55,7 +56,8 @@ public class AirGuardDetailActivity extends BaseActivity {
     @BindView(R.id.airguard_update_name)
     ImageView airguard_update_name;     //(笔)修改名称
 
-    private String deviceId = "000";
+    private String deviceId;
+    private String deviceName;
 
     @Override
     public int getLayoutId() {
@@ -73,10 +75,20 @@ public class AirGuardDetailActivity extends BaseActivity {
         //设置全屏
         initWindows();
 
+        getAirMsg();
+
         //修改名字事件
         updateAirName();
     }
 
+    private void getAirMsg() {
+        Intent intent = getIntent();
+        deviceId = intent.getStringExtra("airDevId");
+        deviceName = intent.getStringExtra("airDevName");
+        tv_airguard_id.setText(deviceId);
+        et_airguard_name.setText(deviceName);
+    }
+
     /**
      * 修改名字操作
      */
@@ -108,8 +120,6 @@ public class AirGuardDetailActivity extends BaseActivity {
         builder.setMessage(getResources().getString(R.string.dialog_update_name));
         builder.setPositiveButton(getResources().getString(R.string.sure), (dialog, which) -> {
             //确定修改后的操作
-            Toast.makeText(AirGuardDetailActivity.this,"确定修改",Toast.LENGTH_SHORT).show();
-            //这里修改名称的接口
             updateDeviceName();
         });
         builder.setNegativeButton(getResources().getString(R.string.cancle), (dialog, which) -> dialog.dismiss());
@@ -164,6 +174,7 @@ public class AirGuardDetailActivity extends BaseActivity {
      * 返回按钮
      */
     public void click_back(View view) {
+        setResult(555);
         finish();
     }
 

+ 7 - 5
app/src/main/java/com/silence/commonframe/activity/AirGuardNewTimeActivity.java

@@ -80,7 +80,7 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
 
     private Intent intent;
 
-    private String deviceId = "000";
+    private String deviceId = "";
     private String id;
     private String startTime;
     private String endTime;
@@ -106,9 +106,10 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
         initTimeWheel();
 
         intent = getIntent();
+        id = intent.getStringExtra("id");
         wind_speed = intent.getIntExtra("wind_speed",0);
         wind_speed_level.setText(String.valueOf(wind_speed));
-
+        deviceId = intent.getStringExtra("deviceId");
         type = intent.getStringExtra("type");
 
         wind_speed_increase.setOnClickListener(new View.OnClickListener() {
@@ -177,10 +178,7 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
                         addTime();
                         finish();
                     }else if ("update".equals(type)){
-                        intent_result.putExtra("position",intent.getIntExtra("position",-1));
                         updateTime();
-                        setResult(333,intent_result);
-                        finish();
                     }
                 }
             }
@@ -202,6 +200,10 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
                         BaseBean data = new Gson().fromJson(s,BaseBean.class);
                         if (data.code == 0){
                             Toast.makeText(AirGuardNewTimeActivity.this,"修改成功",Toast.LENGTH_SHORT).show();
+                            Intent intent_result=new Intent();
+                            intent_result.putExtra("position",intent.getIntExtra("position",-1));
+                            setResult(333,intent_result);
+                            finish();
                         }else {
                             LoginIn.tokenOut(data.code,AirGuardNewTimeActivity.this);
                             Toast.makeText(AirGuardNewTimeActivity.this,""+data.msg,Toast.LENGTH_SHORT).show();

+ 5 - 5
app/src/main/java/com/silence/commonframe/activity/AirGuardTimeClockActivity.java

@@ -2,8 +2,6 @@ package com.silence.commonframe.activity;
 
 import android.graphics.Color;
 import android.os.Build;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import android.view.Window;
 import android.view.WindowManager;
@@ -17,7 +15,7 @@ import com.lzy.okgo.callback.StringCallback;
 import com.silence.commonframe.R;
 import com.silence.commonframe.base.basemvp.BaseActivity;
 import com.silence.commonframe.common.constant.UrlConstants;
-import com.silence.commonframe.utils.AtyContainer;
+
 import com.silence.commonframe.utils.Data;
 import com.silence.commonframe.utils.LoginIn;
 
@@ -27,7 +25,7 @@ import org.json.JSONObject;
 import java.util.Calendar;
 
 import butterknife.BindView;
-import butterknife.ButterKnife;
+
 import okhttp3.Call;
 import okhttp3.Response;
 
@@ -54,7 +52,7 @@ public class AirGuardTimeClockActivity extends BaseActivity {
     private String currentMinute;
     private String currentTime;
 
-    private String deviceId = "000";
+    private String deviceId = "";
 
     @Override
     public int getLayoutId() {
@@ -72,6 +70,8 @@ public class AirGuardTimeClockActivity extends BaseActivity {
         //设置全屏
         initWindows();
 
+        deviceId = getIntent().getStringExtra("airDevId");
+
         getCurrentTime();
 
         //同步网络时间

+ 133 - 54
app/src/main/java/com/silence/commonframe/activity/AirGuardWordTimeActivity.java

@@ -13,14 +13,15 @@ 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.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.base.basemvp.BaseActivity;
-import com.silence.commonframe.bean.BaseBean;
+import com.silence.commonframe.bean.AirGuardWordTimeBean;
 import com.silence.commonframe.common.constant.UrlConstants;
 import com.silence.commonframe.model.AirGuardRunTimeListModel;
 import com.silence.commonframe.utils.Data;
@@ -31,7 +32,6 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 
 import butterknife.BindView;
@@ -42,7 +42,7 @@ import okhttp3.Response;
  * 空气卫士-工作时间段
  * @author 郑嘉明
  */
-public class AirGuardWordTimeActivity extends BaseActivity {
+public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWordTimeListener.View {
 
     /**
      * 导航栏信息
@@ -58,10 +58,11 @@ public class AirGuardWordTimeActivity extends BaseActivity {
 
     AirGuardWorKTimeAdapter airGuardWorKTimeAdapter;    //工作时间适配器
 
-    List<AirGuardRunTimeListModel> listTime = new ArrayList<>();
+    List<AirGuardRunTimeListModel.DataBean> listTime = new ArrayList<>();
 
-    private String id;
-    private String deviceId = "000";
+    private String deviceId = "";
+
+    AirGuardWordTimePresenter presenter;
 
     @Override
     public int getLayoutId() {
@@ -70,7 +71,7 @@ public class AirGuardWordTimeActivity extends BaseActivity {
 
     @Override
     public void initPresenter() {
-
+        presenter = new AirGuardWordTimePresenter(this,this);
     }
 
     @Override
@@ -80,23 +81,11 @@ public class AirGuardWordTimeActivity extends BaseActivity {
         //设置全屏
         initWindows();
 
-        /**
-         * 这里获取接口数据给listTime
-         */
-//        //测试数据
-//        HashMap<String, String> hashMap = new HashMap<>();
-//        hashMap.put("time","00:18-18:30");
-//        hashMap.put("switch","0");
-//        listTime.add(hashMap);
-//        HashMap<String, String> hashMap2 = new HashMap<>();
-//        hashMap2.put("time","12:22-22:21");
-//        hashMap2.put("switch_state","1");
-//        listTime.add(hashMap2);
-//        //测试数据
-
-        getRunTime();
+        deviceId = getIntent().getStringExtra("airDevId");
 
+        presenter.getData();
 
+        setTimeDate();
 
         //导航栏添加按钮点击事件
         addNewTimeListener();
@@ -116,7 +105,65 @@ public class AirGuardWordTimeActivity extends BaseActivity {
                         System.out.println(data.getData());
                         if (data.getCode() == 0){
                             //设置工作时间数据
-                            setTimeDate(data.getData());
+                            listTime.clear();
+                            listTime.addAll(data.getData());
+                            airGuardWorKTimeAdapter.notifyDataSetChanged();
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+
+                    }
+                });
+    }
+
+    private void updateRunTime() {
+        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.addWorkTime(listTime);
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+
+                    }
+                });
+    }
+
+    private void updateRunTime(int pos) {
+        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.updateWorkTime(listTime.get(pos),pos);
                         }
                     }
 
@@ -139,6 +186,7 @@ public class AirGuardWordTimeActivity extends BaseActivity {
                 Intent intent = new Intent(AirGuardWordTimeActivity.this,AirGuardNewTimeActivity.class);
                 intent.putExtra("wind_speed",0);
                 intent.putExtra("type","add");
+                intent.putExtra("deviceId",deviceId);
                 startActivityForResult(intent,222);
             }
         });
@@ -153,33 +201,24 @@ public class AirGuardWordTimeActivity extends BaseActivity {
     @Override
     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        if (requestCode == 222 && resultCode == 222){
-            assert data != null;
-            //获取运行时间段
-            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);           //适配器修改数据刷新
-
-            //这里加修改时间的接口方法。
-            getRunTime();
+        if (data!=null){
+            if (requestCode == 222 && resultCode == 222){
+                //获取运行时间段
+                presenter.updateRunTime();
+            }else if (requestCode == 333 && resultCode == 333){
+                int pos = data.getIntExtra("position",-1);
+                //这里加修改时间的接口方法。
+                presenter.updateRunTime(pos);
+            }
         }
     }
 
     /**
      * 设置工作时间数据
      */
-    private void setTimeDate(List<AirGuardRunTimeListModel.DataBean> listRunTime) {
+    private void setTimeDate() {
 
-        airGuardWorKTimeAdapter = new AirGuardWorKTimeAdapter(AirGuardWordTimeActivity.this,listRunTime);
+        airGuardWorKTimeAdapter = new AirGuardWorKTimeAdapter(AirGuardWordTimeActivity.this,listTime);
         worktime_recyclerview.setLayoutManager(new LinearLayoutManager(AirGuardWordTimeActivity.this));
         worktime_recyclerview.addItemDecoration(new LinearItemDecoration(AirGuardWordTimeActivity.this,LinearLayoutManager.HORIZONTAL,R.drawable.decoration_item));     //设置分割线
         worktime_recyclerview.setAdapter(airGuardWorKTimeAdapter);
@@ -194,9 +233,11 @@ public class AirGuardWordTimeActivity extends BaseActivity {
             public void onDeleteClick(int position) {
                 //删除操作,删除的接口在这写
                 Toast.makeText(AirGuardWordTimeActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
-                airGuardWorKTimeAdapter.deleteWorkTime(position);           //适配器删除数据刷新
+
                 //这里加删除时间的接口方法。
-                delRunTime();
+//                delRunTime(position);
+                presenter.delRunTime(position);
+                airGuardWorKTimeAdapter.deleteWorkTime(position);           //适配器删除数据刷新
             }
 
             @Override
@@ -206,7 +247,7 @@ public class AirGuardWordTimeActivity extends BaseActivity {
                 intent.putExtra("wind_speed",wind);
                 intent.putExtra("type","update");
                 intent.putExtra("position",position);
-                intent.putExtra("id","");
+                intent.putExtra("id",listTime.get(position).getId());
                 startActivityForResult(intent,333);
             }
 
@@ -215,10 +256,10 @@ public class AirGuardWordTimeActivity extends BaseActivity {
                 //开关
                 if (isCheck){
 //                    Toast.makeText(AirGuardWordTimeActivity.this,"打开",Toast.LENGTH_SHORT).show();
-                    openCloseRunTime();
+                    presenter.openCloseRunTime(position);
                 }else {
 //                    Toast.makeText(AirGuardWordTimeActivity.this,"关闭",Toast.LENGTH_SHORT).show();
-                    openCloseRunTime();
+                    presenter.openCloseRunTime(position);
                 }
             }
 
@@ -230,10 +271,10 @@ public class AirGuardWordTimeActivity extends BaseActivity {
     /**
      * 删除运行时间间隔
      */
-    private void delRunTime() {
+    private void delRunTime(int position) {
         OkGo.get(UrlConstants.AIRGUARD_DEL_RUNTIME)
                 .tag(this)
-                .params("id",id)
+                .params("id",listTime.get(position).getId())
                 .cacheKey("cacheGetKey")
                 .cacheMode(CacheMode.DEFAULT)
                 .headers("token", Data.getToken())
@@ -260,10 +301,10 @@ public class AirGuardWordTimeActivity extends BaseActivity {
     /**
      * 打开或关闭运行时间间隔
      */
-    private void openCloseRunTime() {
+    private void openCloseRunTime(int position) {
         OkGo.get(UrlConstants.AIRGUARD_OPEN_CLOSE_RUNTIME)
                 .tag(this)
-                .params("id",id)        //
+                .params("id",listTime.get(position).getId())        //
                 .cacheKey("cacheGetKey")
                 .cacheMode(CacheMode.DEFAULT)
                 .headers("token", Data.getToken())
@@ -275,7 +316,7 @@ public class AirGuardWordTimeActivity extends BaseActivity {
                             int code = jsonObject.getInt("code");
                             String message = jsonObject.get("msg").toString();
                             if (code == 0){
-                                Toast.makeText(AirGuardWordTimeActivity.this,"0",Toast.LENGTH_SHORT).show();
+                                Toast.makeText(AirGuardWordTimeActivity.this,""+message,Toast.LENGTH_SHORT).show();
                             }else {
                                 LoginIn.tokenOut(code,AirGuardWordTimeActivity.this);
                                 Toast.makeText(AirGuardWordTimeActivity.this,""+message,Toast.LENGTH_SHORT).show();
@@ -310,4 +351,42 @@ public class AirGuardWordTimeActivity extends BaseActivity {
         finish();
     }
 
+    @Override
+    public String getDevId() {
+        return deviceId;
+    }
+
+    @Override
+    public List<AirGuardRunTimeListModel.DataBean> getListTime() {
+        return listTime;
+    }
+
+    @Override
+    public void onSuccess(List<AirGuardRunTimeListModel.DataBean> bean) {
+        //设置工作时间数据
+        listTime.clear();
+        listTime.addAll(bean);
+        airGuardWorKTimeAdapter.notifyDataSetChanged();
+    }
+
+    @Override
+    public void onUpdateSuccess(int position, AirGuardRunTimeListModel data) {
+        //设置工作时间数据
+        listTime.clear();
+        listTime.addAll(data.getData());
+        airGuardWorKTimeAdapter.updateWorkTime(listTime.get(position),position);
+    }
+
+    @Override
+    public void onUpdateSuccess(AirGuardRunTimeListModel data) {
+        //设置工作时间数据
+        listTime.clear();
+        listTime.addAll(data.getData());
+        airGuardWorKTimeAdapter.addWorkTime(listTime);
+    }
+
+    @Override
+    public void onFile(String msg) {
+        Toast.makeText(this,""+msg,Toast.LENGTH_SHORT).show();
+    }
 }

+ 27 - 0
app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardListener.java

@@ -0,0 +1,27 @@
+package com.silence.commonframe.activity.Interface;
+
+
+import com.silence.commonframe.base.basemvp.BaseModel;
+import com.silence.commonframe.base.basemvp.BasePresenter;
+import com.silence.commonframe.bean.AirGuardDetailBean;
+
+/**
+ * Created by CC on 2018-10-25
+ */
+
+public interface AirGuardListener {
+    interface View{
+        String getDevId();
+
+        void onSuccess(AirGuardDetailBean data);
+        void onSuccess();
+        void onSuccess(String isOpen);
+        void onFile(String msg);
+    }
+    abstract class Presenter extends BasePresenter<View,BaseModel> {
+        public abstract void getData();
+        public abstract void setBuzzer();
+        public abstract void setIsOpen(String isOpen);
+    }
+
+}

+ 33 - 0
app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardWordTimeListener.java

@@ -0,0 +1,33 @@
+package com.silence.commonframe.activity.Interface;
+
+
+import com.silence.commonframe.base.basemvp.BaseModel;
+import com.silence.commonframe.base.basemvp.BasePresenter;
+import com.silence.commonframe.bean.AirGuardWordTimeBean;
+import com.silence.commonframe.model.AirGuardRunTimeListModel;
+
+import java.util.List;
+
+/**
+ * Created by CC on 2018-10-25
+ */
+
+public interface AirGuardWordTimeListener {
+    interface View{
+        String getDevId();
+        List<AirGuardRunTimeListModel.DataBean> getListTime();
+
+        void onSuccess(List<AirGuardRunTimeListModel.DataBean> bean);
+        void onUpdateSuccess(int position,AirGuardRunTimeListModel data);
+        void onUpdateSuccess(AirGuardRunTimeListModel data);
+        void onFile(String msg);
+    }
+    abstract class Presenter extends BasePresenter<View,BaseModel> {
+        public abstract void getData();
+        public abstract void delRunTime(int position);
+        public abstract void openCloseRunTime(int position);
+        public abstract void updateRunTime(int position);
+        public abstract void updateRunTime();
+    }
+
+}

+ 115 - 0
app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardPresenter.java

@@ -0,0 +1,115 @@
+package com.silence.commonframe.activity.presenter;
+
+import android.app.Activity;
+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.silence.commonframe.activity.Interface.AirGuardListener;
+import com.silence.commonframe.bean.AirGuardDetailBean;
+import com.silence.commonframe.bean.BaseBean;
+import com.silence.commonframe.common.constant.UrlConstants;
+import com.silence.commonframe.utils.Data;
+import com.silence.commonframe.utils.LoginIn;
+
+import okhttp3.Call;
+import okhttp3.Response;
+
+
+public class AirGuardPresenter extends AirGuardListener.Presenter {
+
+    public AirGuardPresenter(Activity mContext, AirGuardListener.View mView){
+        this.mContext=mContext;
+        this.mView=mView;
+    }
+    @Override
+    public void getData() {
+        OkGo.get(UrlConstants.AIR_GUARD_DETAIL)
+                .params("deviceId",mView.getDevId())
+                .tag(this)
+                .cacheKey("cachePostRegister11")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        BaseBean<AirGuardDetailBean> data=new Gson().fromJson(s,new TypeToken<BaseBean<AirGuardDetailBean>>(){}.getType());
+                        if (data.code==0){
+                            mView.onSuccess(data.data);
+                        }else {
+                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    @Override
+    public void setBuzzer() {
+        OkGo.get(UrlConstants.SET_BUZZER)
+                .params("deviceId",mView.getDevId())
+                .tag(this)
+                .cacheKey("cachePostRegister11")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        BaseBean data=new Gson().fromJson(s,new TypeToken<BaseBean>(){}.getType());
+                        if (data.code==0){
+                            mView.onSuccess();
+                        }else {
+                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    @Override
+    public void setIsOpen(String isOpen) {
+        String isOpenNew;
+        if ("0".equals(isOpen)){
+            isOpenNew="1";
+        }else {
+            isOpenNew="0";
+        }
+        OkGo.get(UrlConstants.AIR_DUARD_ISOPEN)
+                .params("deviceId",mView.getDevId())
+                .params("type",isOpenNew)
+                .tag(this)
+                .cacheKey("cachePostRegister11")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        BaseBean data=new Gson().fromJson(s,new TypeToken<BaseBean>(){}.getType());
+                        if (data.code==0){
+                            mView.onSuccess(isOpenNew);
+                        }else {
+                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+}

+ 178 - 0
app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardWordTimePresenter.java

@@ -0,0 +1,178 @@
+package com.silence.commonframe.activity.presenter;
+
+import android.app.Activity;
+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.silence.commonframe.activity.AirGuardWordTimeActivity;
+import com.silence.commonframe.activity.Interface.AirGuardWordTimeListener;
+import com.silence.commonframe.bean.AirGuardWordTimeBean;
+import com.silence.commonframe.bean.BaseBean;
+import com.silence.commonframe.common.constant.UrlConstants;
+import com.silence.commonframe.model.AirGuardRunTimeListModel;
+import com.silence.commonframe.utils.Data;
+import com.silence.commonframe.utils.LoginIn;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import okhttp3.Call;
+import okhttp3.Response;
+
+
+public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presenter {
+
+    public AirGuardWordTimePresenter(Activity mContext, AirGuardWordTimeListener.View mView){
+        this.mContext=mContext;
+        this.mView=mView;
+    }
+
+    //获取运行时间间隔
+    @Override
+    public void getData() {
+        OkGo.get(UrlConstants.AIR_RUN_TIME)
+                .params("deviceId",mView.getDevId())
+                .tag(this)
+                .cacheKey("cachePostRegister11")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+//                        BaseBean<AirGuardWordTimeBean> data=new Gson().fromJson(s,new TypeToken<BaseBean<AirGuardWordTimeBean>>(){}.getType());
+                        AirGuardRunTimeListModel data = new Gson().fromJson(s,AirGuardRunTimeListModel.class);
+                        if (data.getCode()==0){
+                            mView.onSuccess(data.getData());
+                        }else {
+                            LoginIn.tokenOut(data.getCode(),data.getMsg(),mContext);
+                            Toast.makeText(mContext,""+data.getMsg(),Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    //删除运行时间间隔
+    @Override
+    public void delRunTime(int position) {
+        OkGo.get(UrlConstants.AIRGUARD_DEL_RUNTIME)
+                .tag(this)
+                .params("id",mView.getListTime().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) {
+                        BaseBean data = new Gson().fromJson(s,new TypeToken<BaseBean>(){}.getType());
+                        if (data.code == 0){
+                            Toast.makeText(mContext,"删除成功",Toast.LENGTH_SHORT).show();
+                        }else {
+                            LoginIn.tokenOut(data.code,mContext);
+                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    @Override
+    public void openCloseRunTime(int position) {
+        OkGo.get(UrlConstants.AIRGUARD_OPEN_CLOSE_RUNTIME)
+                .tag(this)
+                .params("id",mView.getListTime().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) {
+                        BaseBean data = new Gson().fromJson(s,new TypeToken<BaseBean>(){}.getType());
+                        if (data.code == 0){
+                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                        }else {
+                            LoginIn.tokenOut(data.code,mContext);
+                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    @Override
+    public void updateRunTime(int position) {
+        OkGo.get(UrlConstants.AIRGUARD_RUNTIMELIST)
+                .tag(this)
+                .params("deviceId",mView.getDevId())
+                .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){
+                            mView.onUpdateSuccess(position,data);
+                        }else {
+                            LoginIn.tokenOut(data.getCode(),mContext);
+                            Toast.makeText(mContext,""+data.getMsg(),Toast.LENGTH_SHORT).show();
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    @Override
+    public void updateRunTime() {
+        OkGo.get(UrlConstants.AIRGUARD_RUNTIMELIST)
+                .tag(this)
+                .params("deviceId",mView.getDevId())
+                .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){
+                            mView.onUpdateSuccess(data);
+                        }else {
+                            LoginIn.tokenOut(data.getCode(),mContext);
+                            Toast.makeText(mContext,""+data.getMsg(),Toast.LENGTH_SHORT).show();
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+}

+ 13 - 6
app/src/main/java/com/silence/commonframe/adapter/AirGuardWorKTimeAdapter.java

@@ -44,7 +44,16 @@ public class AirGuardWorKTimeAdapter extends RecyclerView.Adapter<RecyclerView.V
     public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder viewHolder, int i) {
         final MyViewHolder myViewHolder = (MyViewHolder) viewHolder;
 
-        String runTime = listTime.get(i).getStartTime() + "-" + listTime.get(i).getEndTime();
+        String StartTime = listTime.get(i).getStartTime();
+        String EndTime = listTime.get(i).getEndTime();
+        StringBuilder StartTimeBuilder = new StringBuilder(StartTime);
+        StartTimeBuilder.insert(2,":");
+        StringBuilder EndTimeBuilder = new StringBuilder(EndTime);
+        EndTimeBuilder.insert(2,":");
+        StartTime = StartTimeBuilder.toString();
+        EndTime = EndTimeBuilder.toString();
+        String runTime = StartTime + "-" + EndTime;
+
         myViewHolder.tv_worktime.setText(runTime);
         if ("1".equals(listTime.get(i).getIsValid())){
             myViewHolder.switch_worktime.setChecked(true);
@@ -96,9 +105,9 @@ public class AirGuardWorKTimeAdapter extends RecyclerView.Adapter<RecyclerView.V
      * 添加时间
      * @param time worktime
      */
-    public void addWorkTime(AirGuardRunTimeListModel.DataBean time){
-        listTime.add(time);
-        this.notifyItemInserted(listTime.size() - 1);
+    public void addWorkTime(List<AirGuardRunTimeListModel.DataBean> time){
+        this.listTime = time;
+        this.notifyDataSetChanged();
     }
 
     /**
@@ -106,7 +115,6 @@ public class AirGuardWorKTimeAdapter extends RecyclerView.Adapter<RecyclerView.V
      * @param postion delete_position
      */
     public void deleteWorkTime(int postion){
-
         listTime.remove(postion);
         this.notifyItemRemoved(postion);
     }
@@ -116,7 +124,6 @@ public class AirGuardWorKTimeAdapter extends RecyclerView.Adapter<RecyclerView.V
      * @param postion delete_position
      */
     public void updateWorkTime(AirGuardRunTimeListModel.DataBean time,int postion){
-
         listTime.set(postion,time);
         this.notifyDataSetChanged();
     }

+ 156 - 0
app/src/main/java/com/silence/commonframe/bean/AirGuardBean.java

@@ -0,0 +1,156 @@
+package com.silence.commonframe.bean;
+
+import java.util.List;
+
+public class AirGuardBean {
+
+    /**
+     * code : 0
+     * msg : success
+     * data : [{"id":"10797825afd744a8b5d6d78bd32bd5c7","deviceId":"H030000000000001","airDevId":"1234567890ABCDEF","deviceName":"测试空气卫士0001","buzzerState":"1","isValid":"1","userIdCreate":null,"gmtCreate":"2019-06-17 14:42:20","userIdUpdate":null,"gmtUpdate":null,"ifOpen":"0"}]
+     */
+
+    private int code;
+    private String msg;
+    private List<DataBean> data;
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public List<DataBean> getData() {
+        return data;
+    }
+
+    public void setData(List<DataBean> data) {
+        this.data = data;
+    }
+
+    public static class DataBean {
+        /**
+         * id : 10797825afd744a8b5d6d78bd32bd5c7
+         * deviceId : H030000000000001
+         * airDevId : 1234567890ABCDEF
+         * deviceName : 测试空气卫士0001
+         * buzzerState : 1
+         * isValid : 1
+         * userIdCreate : null
+         * gmtCreate : 2019-06-17 14:42:20
+         * userIdUpdate : null
+         * gmtUpdate : null
+         * ifOpen : 0
+         */
+
+        private String id;
+        private String deviceId;
+        private String airDevId;
+        private String deviceName;
+        private String buzzerState;
+        private String isValid;
+        private Object userIdCreate;
+        private String gmtCreate;
+        private Object userIdUpdate;
+        private Object gmtUpdate;
+        private String ifOpen;
+
+        public String getId() {
+            return id;
+        }
+
+        public void setId(String id) {
+            this.id = id;
+        }
+
+        public String getDeviceId() {
+            return deviceId;
+        }
+
+        public void setDeviceId(String deviceId) {
+            this.deviceId = deviceId;
+        }
+
+        public String getAirDevId() {
+            return airDevId;
+        }
+
+        public void setAirDevId(String airDevId) {
+            this.airDevId = airDevId;
+        }
+
+        public String getDeviceName() {
+            return deviceName;
+        }
+
+        public void setDeviceName(String deviceName) {
+            this.deviceName = deviceName;
+        }
+
+        public String getBuzzerState() {
+            return buzzerState;
+        }
+
+        public void setBuzzerState(String buzzerState) {
+            this.buzzerState = buzzerState;
+        }
+
+        public String getIsValid() {
+            return isValid;
+        }
+
+        public void setIsValid(String isValid) {
+            this.isValid = isValid;
+        }
+
+        public Object getUserIdCreate() {
+            return userIdCreate;
+        }
+
+        public void setUserIdCreate(Object userIdCreate) {
+            this.userIdCreate = userIdCreate;
+        }
+
+        public String getGmtCreate() {
+            return gmtCreate;
+        }
+
+        public void setGmtCreate(String gmtCreate) {
+            this.gmtCreate = gmtCreate;
+        }
+
+        public Object getUserIdUpdate() {
+            return userIdUpdate;
+        }
+
+        public void setUserIdUpdate(Object userIdUpdate) {
+            this.userIdUpdate = userIdUpdate;
+        }
+
+        public Object getGmtUpdate() {
+            return gmtUpdate;
+        }
+
+        public void setGmtUpdate(Object gmtUpdate) {
+            this.gmtUpdate = gmtUpdate;
+        }
+
+        public String getIfOpen() {
+            return ifOpen;
+        }
+
+        public void setIfOpen(String ifOpen) {
+            this.ifOpen = ifOpen;
+        }
+    }
+}

+ 118 - 0
app/src/main/java/com/silence/commonframe/bean/AirGuardDetailBean.java

@@ -0,0 +1,118 @@
+package com.silence.commonframe.bean;
+
+public class AirGuardDetailBean {
+
+    /**
+     * id : 10797825afd744a8b5d6d78bd32bd5c7
+     * deviceId : H030000000000001
+     * airDevId : 1234567890ABCDEF
+     * deviceName : 测试空气卫士0001
+     * buzzerState : 0
+     * isValid : 1
+     * userIdCreate : null
+     * gmtCreate : 2019-06-17 14:42:20
+     * userIdUpdate : null
+     * gmtUpdate : null
+     * ifOpen : 0
+     */
+
+    private String id;
+    private String deviceId;
+    private String airDevId;
+    private String deviceName;
+    private String buzzerState;
+    private String isValid;
+    private Object userIdCreate;
+    private String gmtCreate;
+    private Object userIdUpdate;
+    private Object gmtUpdate;
+    private String ifOpen;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getDeviceId() {
+        return deviceId;
+    }
+
+    public void setDeviceId(String deviceId) {
+        this.deviceId = deviceId;
+    }
+
+    public String getAirDevId() {
+        return airDevId;
+    }
+
+    public void setAirDevId(String airDevId) {
+        this.airDevId = airDevId;
+    }
+
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+
+    public String getBuzzerState() {
+        return buzzerState;
+    }
+
+    public void setBuzzerState(String buzzerState) {
+        this.buzzerState = buzzerState;
+    }
+
+    public String getIsValid() {
+        return isValid;
+    }
+
+    public void setIsValid(String isValid) {
+        this.isValid = isValid;
+    }
+
+    public Object getUserIdCreate() {
+        return userIdCreate;
+    }
+
+    public void setUserIdCreate(Object userIdCreate) {
+        this.userIdCreate = userIdCreate;
+    }
+
+    public String getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(String gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+
+    public Object getUserIdUpdate() {
+        return userIdUpdate;
+    }
+
+    public void setUserIdUpdate(Object userIdUpdate) {
+        this.userIdUpdate = userIdUpdate;
+    }
+
+    public Object getGmtUpdate() {
+        return gmtUpdate;
+    }
+
+    public void setGmtUpdate(Object gmtUpdate) {
+        this.gmtUpdate = gmtUpdate;
+    }
+
+    public String getIfOpen() {
+        return ifOpen;
+    }
+
+    public void setIfOpen(String ifOpen) {
+        this.ifOpen = ifOpen;
+    }
+}

+ 108 - 0
app/src/main/java/com/silence/commonframe/bean/AirGuardWordTimeBean.java

@@ -0,0 +1,108 @@
+package com.silence.commonframe.bean;
+
+public class AirGuardWordTimeBean {
+
+    /**
+     * id : 3b39df9696584cfba77e1c0adaae7ba3
+     * deviceId : H030000000000001
+     * startTime : 0001
+     * endTime : 0100
+     * speed : 1
+     * isValid : 1
+     * userIdCreate : null
+     * gmtCreate : null
+     * userIdUpdate : null
+     * gmtUpdate : null
+     */
+
+    private String id;
+    private String deviceId;
+    private String startTime;
+    private String endTime;
+    private int speed;
+    private String isValid;
+    private Object userIdCreate;
+    private Object gmtCreate;
+    private Object userIdUpdate;
+    private Object gmtUpdate;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getDeviceId() {
+        return deviceId;
+    }
+
+    public void setDeviceId(String deviceId) {
+        this.deviceId = deviceId;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public int getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(int speed) {
+        this.speed = speed;
+    }
+
+    public String getIsValid() {
+        return isValid;
+    }
+
+    public void setIsValid(String isValid) {
+        this.isValid = isValid;
+    }
+
+    public Object getUserIdCreate() {
+        return userIdCreate;
+    }
+
+    public void setUserIdCreate(Object userIdCreate) {
+        this.userIdCreate = userIdCreate;
+    }
+
+    public Object getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Object gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+
+    public Object getUserIdUpdate() {
+        return userIdUpdate;
+    }
+
+    public void setUserIdUpdate(Object userIdUpdate) {
+        this.userIdUpdate = userIdUpdate;
+    }
+
+    public Object getGmtUpdate() {
+        return gmtUpdate;
+    }
+
+    public void setGmtUpdate(Object gmtUpdate) {
+        this.gmtUpdate = gmtUpdate;
+    }
+}

+ 7 - 0
app/src/main/java/com/silence/commonframe/common/constant/UrlConstants.java

@@ -17,6 +17,13 @@ public interface UrlConstants {
     String WEBVIEW_URL_QUESTION="https://www.hsh-iot.com/app_page/index.html";
     String WEBVIEW_URL_SZC= "https://www.hsh-iot.com/app_page/hshyszc.html";
 
+    String BASE_LOCAl="http://192.168.1.111:8080/";
+    String AIR_GUARD_LIST=BASE_LOCAl +"app/airGuard/getDevList";
+    String AIR_GUARD_DETAIL=BASE_LOCAl+"app/airGuard/getDevDetail";
+    String SET_BUZZER=BASE_LOCAl+"app/airGuard/setBuzzer";
+    String AIR_DUARD_ISOPEN=BASE_LOCAl+"app/airGuard/openOrClose";
+    String AIR_RUN_TIME=BASE_LOCAl+"app/airGuard/getRunTimeList";
+
     /*----------------------------------------------空气卫士接口---------------------------------------*/
     String AIRGUARD = ApiService.httpUrl1 + "/app/airGuard";
 

+ 131 - 17
app/src/main/java/com/silence/commonframe/fragment/DeviceFragment.java

@@ -20,7 +20,6 @@ import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.ListView;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -31,7 +30,6 @@ 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.OnLoadMoreListener;
 import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
 import com.silence.commonframe.ApiService;
 import com.silence.commonframe.Dialog.CDialog;
@@ -40,14 +38,15 @@ import com.silence.commonframe.activity.AddSiteActivity;
 import com.silence.commonframe.activity.AdddeviceActivity;
 import com.silence.commonframe.activity.AirGuardActivity;
 import com.silence.commonframe.activity.CommonScanActivity;
-import com.silence.commonframe.activity.DeviceContextManagementActivity;
 import com.silence.commonframe.activity.DevicedetailActivity;
 import com.silence.commonframe.adapter.DeviceTypeTitleAdapter;
 import com.silence.commonframe.adapter.MyAdapterSlide;
 import com.silence.commonframe.adapter.RecViewAdapter;
+import com.silence.commonframe.bean.AirGuardBean;
 import com.silence.commonframe.bean.DeviceTypeTitleBean;
 import com.silence.commonframe.bean.IsDeviceChange;
 import com.silence.commonframe.bean.TestBean;
+import com.silence.commonframe.common.constant.UrlConstants;
 import com.silence.commonframe.example.ActivityGuideDeviceCamera;
 import com.silence.commonframe.lib.funsdk.support.FunSupport;
 import com.silence.commonframe.lib.funsdk.support.OnAddSubDeviceResultListener;
@@ -58,8 +57,6 @@ import com.silence.commonframe.lib.funsdk.support.models.FunDevice;
 import com.silence.commonframe.lib.funsdk.support.models.FunLoginType;
 import com.silence.commonframe.model.CamDevDetailModel;
 import com.silence.commonframe.model.Camera;
-import com.silence.commonframe.model.DelContextDevice;
-import com.silence.commonframe.model.DelContextDevice_success;
 import com.silence.commonframe.model.Device;
 import com.silence.commonframe.model.Device1;
 import com.silence.commonframe.model.SiteModel;
@@ -104,6 +101,7 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
     private ArrayList<String> listLocation = new ArrayList<>();     //场所地址
     private ArrayList<String> listReginName = new ArrayList<>();    //场所区域
     private List<String> listDeviceLocation;
+    private List<String> airDevId=new ArrayList<>();
     private View view;
     private List<HashMap<String, String>> listmap = new ArrayList<>();
     private List<HashMap<String, String>> listmap_camera = new ArrayList<>();
@@ -201,13 +199,13 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
                 titlePopup.show(view, TitlePopupMenu.STYLE_ALIGN_THIS_BOTTOM_WINDOW_RIGHT);
             }
         });
-        if (Data.getListid().size() == 0) {
+        if (Data.getListid()!=null&&Data.getListid().size() == 0) {
             recyclerView.setVisibility(View.GONE);
             textView.setVisibility(View.VISIBLE);
             imageView.setVisibility(View.VISIBLE);
             textView.setText("对不起请先添加场所");
             bt.setVisibility(View.GONE);
-        } else {
+        } else if (Data.getListid()!=null&&Data.getListid().size()> 0){
             place = Data.getListlocation().get(0);
             place1 = Data.getListmapRegionName().get(0);
             location = Data.getListlocation().get(0);
@@ -263,7 +261,7 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
      * 判断类型选择的是烟感还是摄像头
      */
     private void isWhichClick() {
-        if (Data.getListid().size() == 0) {
+        if (Data.getListid()!=null&&Data.getListid().size() == 0) {
             recyclerView.setVisibility(View.GONE);
             textView.setVisibility(View.VISIBLE);
             imageView.setVisibility(View.VISIBLE);
@@ -312,6 +310,9 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
              * 获取摄像头UUId
              */
                 getCameraId();
+        }else if (getResources().getString(R.string.device_air_guard).equals(listDeviceTypeTitle.get(position_device_type))){
+            refreshLanDeviceList();
+            startActivity(new Intent().putExtra("airDevId",airDevId.get(position)).setClass(getActivity(),AirGuardActivity.class));
         }
     }
 
@@ -528,9 +529,7 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
                                         });
                                     }
                                 });
-
                             }
-
                         }else {
                             LoginIn.tokenOut(code,message,getContext());
                             Toast.makeText(getContext(),""+message,Toast.LENGTH_SHORT).show();
@@ -731,7 +730,6 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
                 .execute(new StringCallback() {
                     @Override
                     public void onSuccess(String s, Call call, Response response) {
-
                         Camera camera = new Gson().fromJson(s,Camera.class);
                         String message = camera.getMsg();
                         int code = camera.getCode();
@@ -792,8 +790,6 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
                                                         @Override
                                                         public void onClick(DialogInterface dialog, int which) {
                                                             siteid =  Data.getListid().get(position1);
-                                                            //    adapter.removeItem(position);
-                                                            //     Toast.makeText(getContext(), "Delitem!"+siteid, Toast.LENGTH_SHORT).show();
                                                             position4 = position;
                                                             positionmy = position;
                                                             delCameraDevices();
@@ -891,16 +887,132 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
      * 获取空气卫士列表
      */
     private void getAirGuide(){
-        Intent intent = new Intent(getContext(),AirGuardActivity.class);
-        startActivity(intent);
-    }
+        OkGo.get(UrlConstants.AIR_GUARD_LIST)
+                .tag(this)                       // 请求的 tag, 主要用于取消对应的请求
+                .cacheKey("cacheGetKey")            // 设置当前请求的缓存key,建议每个不同功能的请求设置一个
+                .cacheMode(CacheMode.DEFAULT)    // 缓存模式,详细请看缓存介绍
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        AirGuardBean airGuardData= new Gson().fromJson(s,AirGuardBean.class);
+                        if (airGuardData.getCode()==0){
+                            if (airGuardData.getData() != null) {
+                                    for (int i = 0; i < airGuardData.getData().size(); i++) {
+                                        HashMap<String, String> hashMap = new HashMap<>();
+                                        String id = airGuardData.getData().get(i).getDeviceId();
+                                        String deviceLocation = "";
+                                        String deviceName = airGuardData.getData().get(i).getDeviceName();
+                                        String status = airGuardData.getData().get(i).getBuzzerState();
+                                        hashMap.put("id", id);
+                                        hashMap.put("deviceLocation", deviceLocation);
+                                        hashMap.put("status", status);
+                                        hashMap.put("airGuard",airGuardData.getData().get(i).getAirDevId());
+                                        listCameraId.add(id);
+                                        listCameraName.add(deviceName);
+                                        airDevId.add(airGuardData.getData().get(i).getDeviceId());
+                                        listmap_camera.add(hashMap);
+                                    }
+                                    mActivity.runOnUiThread(new Runnable() {
+                                        @Override
+                                        public void run() {
+                                            // number = listBeans.size();
+                                            imageView.setVisibility(View.GONE);
+                                            textView.setVisibility(View.GONE);
+                                            tv.setVisibility(View.VISIBLE);
+//                                        tv1.setVisibility(View.VISIBLE);
+
+                                            bt.setVisibility(View.GONE);
+                                            recyclerView.setVisibility(View.VISIBLE);
+
+                                            adapter2 = new MyAdapterSlide(getContext(), listmap_camera);
+                                            recyclerView.removeAllViews();
+                                            adapter2.notifyDataSetChanged();
+                                            LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
+                                            linearLayoutManager.setItemPrefetchEnabled(true);
+//                                            linearLayoutManager.setRecycleChildrenOnDetach(true);
+                                            recyclerView.setLayoutManager(linearLayoutManager);
+                                            recyclerView.setAdapter(adapter2);
+                                            adapter2.setOnItemClickListener(new MyAdapterSlide.OnItemClickListener() {
+                                                @Override
+                                                public void onItemClick(View view, int position) {
+                                                    //判断跳转到哪个页面
+                                                    isWhichClick_go(position);
+                                                }
+
+                                                @Override
+                                                public void onDeleteClick(final int position) {
+                                                    CDialog.Builder builder = new CDialog.Builder(getContext());
+                                                    builder.setMessage("是否确定要删除该设备");
+                                                    builder.setCancelable(false);
+                                                    builder.setTitle("提示");
+                                                    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
+                                                        @Override
+                                                        public void onClick(DialogInterface dialog, int which) {
+                                                            siteid =  Data.getListid().get(position1);
+                                                            position4 = position;
+                                                            positionmy = position;
+                                                            delCameraDevices();
+                                                            onResume();
+                                                        }
+                                                    });
 
+                                                    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
+                                                        @Override
+                                                        public void onClick(DialogInterface dialog, int which) {
+
+                                                        }
+                                                    });
+                                                    builder.show();
+                                                }
+
+                                                @Override
+                                                public void onNavieteClick(int position) {
+                                                    isWhichClick_go(position);
+                                                }
+                                            });
+                                            tv.setText("设备的数量:" + rows + "");
+                                            adapter2.notifyDataSetChanged();
+                                        }
+                                    });
+                                } else {
+                                    mActivity.runOnUiThread(new Runnable() {
+                                        @Override
+                                        public void run() {
+                                            imageView.setVisibility(View.VISIBLE);
+                                            textView.setVisibility(View.VISIBLE);
+                                            textView.setText("还未添加空气卫士");
+                                            bt.setVisibility(View.VISIBLE);
+                                            recyclerView.setVisibility(View.GONE);
+                                            tv1.setVisibility(View.GONE);
+                                            tv.setVisibility(View.VISIBLE);
+                                            //                                    String p = place.substring(0,9);
+                                            tv.setText("设备的数量:0");
+                                            //               tv1.setText(place1);
+                                            bt.setOnClickListener(new View.OnClickListener() {
+                                                @Override
+                                                public void onClick(View v) {
+                                                    //  Toast.makeText(getContext(),"helll",Toast.LENGTH_SHORT).show();
+                                                    Intent intent = new Intent(getContext(), CommonScanActivity.class);
+                                                    intent.putExtra("deviceType",getResources().getString(R.string.device_air_guard));
+                                                    startActivity(intent);
+                                                }
+                                            });
+                                        }
+                                    });
+                                }
+                        }else {
+                            LoginIn.tokenOut(airGuardData.getCode(),airGuardData.getMsg(),getContext());
+                            Toast.makeText(getContext(),""+airGuardData.getMsg(),Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                });
+    }
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
         this.mActivity = (Activity) context;
     }
-
     private void refreshLanDeviceList() {
         mLanDeviceList.clear();
         mLanDeviceList.addAll(FunSupport.getInstance().getDeviceList());
@@ -997,10 +1109,12 @@ public class DeviceFragment extends Fragment implements OnFunRegisterListener, O
     public void onLogout() {
 
     }
+
     @Override
     public void onAddSubDeviceFailed(FunDevice funDevice, MsgContent msgContent) {
 
     }
+
     @Override
     public void onAddSubDeviceSuccess(FunDevice funDevice, MsgContent msgContent) {