Moon před 6 roky
rodič
revize
70ab6ba6c5
50 změnil soubory, kde provedl 2176 přidání a 379 odebrání
  1. 1 1
      app/app.iml
  2. 58 29
      app/src/main/AndroidManifest.xml
  3. 2 2
      app/src/main/java/com/silence/commonframe/ApiService.java
  4. 5 5
      app/src/main/java/com/silence/commonframe/activity/AirGuardActivity.java
  5. 26 31
      app/src/main/java/com/silence/commonframe/activity/AirGuardDetailActivity.java
  6. 50 72
      app/src/main/java/com/silence/commonframe/activity/AirGuardNewTimeActivity.java
  7. 23 37
      app/src/main/java/com/silence/commonframe/activity/AirGuardTimeClockActivity.java
  8. 1 159
      app/src/main/java/com/silence/commonframe/activity/AirGuardWordTimeActivity.java
  9. 21 0
      app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardDetailListener.java
  10. 26 0
      app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardNewTimeListener.java
  11. 20 0
      app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardTimeClockListener.java
  12. 0 1
      app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardWordTimeListener.java
  13. 2 1
      app/src/main/java/com/silence/commonframe/activity/LoginCompanyActivity.java
  14. 59 0
      app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardDetailPresenter.java
  15. 96 0
      app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardNewTimePresenter.java
  16. 59 0
      app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardTimeClockPresenter.java
  17. 10 14
      app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardWordTimePresenter.java
  18. 1 1
      app/src/main/java/com/silence/commonframe/adapter/AddDeviceAdapter.java
  19. 1 1
      app/src/main/java/com/silence/commonframe/adapter/AirGuardWorKTimeAdapter.java
  20. 3 6
      app/src/main/java/com/silence/commonframe/base/basemvp/BaseFragment.java
  21. 2 1
      app/src/main/java/com/silence/commonframe/common/constant/UrlConstants.java
  22. 69 0
      app/src/main/java/com/silence/tech/adapter/MoniTroubleAdapter.java
  23. 232 0
      app/src/main/java/com/silence/tech/bean/TroubleListBean.java
  24. 76 0
      app/src/main/java/com/silence/tech/bean/TroubleTypeBean.java
  25. 30 0
      app/src/main/java/com/silence/tech/constant/UrlConstantsTech.java
  26. 194 0
      app/src/main/java/com/silence/tech/ui/MainCompanyActivity.java
  27. 22 0
      app/src/main/java/com/silence/tech/ui/device/activity/DeviceTechFragment.java
  28. 22 0
      app/src/main/java/com/silence/tech/ui/files/activity/FilesFragment.java
  29. 25 0
      app/src/main/java/com/silence/tech/ui/moni/Interface/MoniListener.java
  30. 22 0
      app/src/main/java/com/silence/tech/ui/moni/activity/MoniAbnormalActivity.java
  31. 22 0
      app/src/main/java/com/silence/tech/ui/moni/activity/MoniFaultActivity.java
  32. 22 0
      app/src/main/java/com/silence/tech/ui/moni/activity/MoniFireAlarmActivity.java
  33. 155 0
      app/src/main/java/com/silence/tech/ui/moni/activity/MoniFragment.java
  34. 22 0
      app/src/main/java/com/silence/tech/ui/moni/activity/MoniHidTroubleActivity.java
  35. 83 0
      app/src/main/java/com/silence/tech/ui/moni/presenter/MoniPresenter.java
  36. 116 0
      app/src/main/java/com/silence/tech/ui/my/activity/MineTechFragment.java
  37. 22 0
      app/src/main/res/drawable/tab_btn_files.xml
  38. 22 0
      app/src/main/res/drawable/tab_btn_moni.xml
  39. 0 14
      app/src/main/res/layout/activity_main.xml
  40. 61 0
      app/src/main/res/layout/activity_main_company.xml
  41. 9 0
      app/src/main/res/layout/activity_moni_abnormal.xml
  42. 9 0
      app/src/main/res/layout/activity_moni_fault.xml
  43. 17 0
      app/src/main/res/layout/activity_moni_fire_alarm.xml
  44. 9 0
      app/src/main/res/layout/activity_moni_hid_trouble.xml
  45. 29 0
      app/src/main/res/layout/fragment_device_tech.xml
  46. 29 0
      app/src/main/res/layout/fragment_files.xml
  47. 253 0
      app/src/main/res/layout/fragment_mine_tech.xml
  48. 134 0
      app/src/main/res/layout/fragment_moni.xml
  49. 0 3
      app/src/main/res/layout/item_recylerview.xml
  50. 4 1
      app/src/main/res/values/strings.xml

+ 1 - 1
app/app.iml

@@ -131,7 +131,6 @@
     <orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder-4.8.0" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.4.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.amap.api:3dmap:6.8.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.lzy.net:okgo-2.1.4" level="project" />
     <orderEntry type="library" name="Gradle: com.android.databinding:baseLibrary:2.2.2@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar" level="project" />
@@ -174,6 +173,7 @@
     <orderEntry type="library" name="Gradle: com.android.support:support-core-utils-28.0.0" level="project" />
     <orderEntry type="library" name="Gradle: com.amap.api:location:4.6.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.retrofit2:retrofit:2.4.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.amap.api:3dmap:6.9.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout-28.0.0" level="project" />
     <orderEntry type="library" name="Gradle: cn.bingoogolapple:bga-refreshlayout-1.1.7" level="project" />
     <orderEntry type="library" name="Gradle: de.hdodenhof:circleimageview-3.0.0" level="project" />

+ 58 - 29
app/src/main/AndroidManifest.xml

@@ -9,9 +9,11 @@
     <!-- 二维码相关权限 -->
     <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.CAMERA" />
+
     <uses-feature android:name="android.hardware.camera" />
     <uses-feature android:name="android.hardware.camera.autofocus" />
     <uses-feature android:name="android.hardware.camera.flash" />
+
     <uses-permission android:name="android.permission.FLASHLIGHT" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
@@ -49,6 +51,7 @@
     <uses-permission android:name="android.permission.RECORD_VIDEO" />
     <uses-permission android:name="android.permission.READ_LOGS" />
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+
     <application
         android:name=".App"
         android:allowBackup="true"
@@ -64,6 +67,7 @@
         <!-- android:value="4abbaf9cb40a64046f30ccf9970a7f26" /> -->
         <!-- android:value="70d24ce161a21cb552b195b743058b3a" /> -->
 
+
         <!-- <activity android:name=".activity.MainActivity">   .activity.WelcomeActivity" -->
         <activity
             android:name=".activity.WelcomeActivity"
@@ -92,26 +96,26 @@
             android:launchMode="singleTask"
             android:taskAffinity="com.silence.commonframe"
             android:theme="@android:style/Theme.Translucent.NoTitleBar" />
-        <!--   登录   -->
+        <!-- 登录 -->
         <activity
             android:name=".activity.LoginActivity"
             android:launchMode="singleTask"
             android:screenOrientation="portrait" />
-        <!--    android:launchMode="singleTask"-->
-        <!--   主页   -->
+        <!-- android:launchMode="singleTask" -->
+        <!-- 主页 -->
         <activity
             android:name=".activity.MainActivity"
             android:launchMode="singleTask"
             android:screenOrientation="portrait" />
-        <!--   注册   -->
+        <!-- 注册 -->
         <activity
             android:name=".activity.RegisterActivity"
             android:screenOrientation="portrait" />
-        <!--   忘记密码   -->
+        <!-- 忘记密码 -->
         <activity
             android:name=".activity.ForgetPasswordActivity"
             android:screenOrientation="portrait" />
-        <!--   设备列表   -->
+        <!-- 设备列表 -->
         <activity
             android:name=".activity.AdddeviceActivity"
             android:screenOrientation="portrait" />
@@ -126,13 +130,13 @@
             android:screenOrientation="portrait" />
         <!-- 图片浏览 -->
         <activity android:name=".utils.image.ImageBrowseActivity" />
-        <!-- 添加场景-->
+        <!-- 添加场景 -->
         <activity
             android:name=".activity.AddSiteActivity"
-            android:screenOrientation="portrait"
             android:configChanges="keyboard"
             android:exported="false"
-            android:windowSoftInputMode="stateHidden|adjustResize"/>
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="stateHidden|adjustResize" />
         <!-- 定位需要的服务 使用2.0的定位需要加上这个 -->
         <service android:name="com.amap.api.location.APSService" />
 
@@ -148,8 +152,7 @@
         <!-- <meta-data -->
         <!-- android:name="com.google.android.actions" -->
         <!-- android:resource="@xml/buttonstyle" /> -->
-        <activity
-            android:name=".activity.SitedetailActivity"/>
+        <activity android:name=".activity.SitedetailActivity" />
         <!-- 添加设备 -->
         <activity
             android:name=".activity.AdddevicedetailActivity"
@@ -213,8 +216,7 @@
             android:name=".activity.SubmitActivity"
             android:screenOrientation="portrait" />
         <!-- 信息上报 -->
-        <activity
-            android:name=".activity.NewSubmitActivity"/>
+        <activity android:name=".activity.NewSubmitActivity" />
         <activity
             android:name=".activity.FireAlarmActivity"
             android:theme="@style/Theme.Transparent" />
@@ -224,22 +226,24 @@
             android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
         <!-- android:theme="@style/Theme.Transparent" -->
 
+
         <!-- 极光推送 -->
         <service
             android:name="cn.jpush.android.service.PushService"
             android:enabled="true"
             android:exported="false"
             android:process=":multiprocess"
-            tools:node="replace" >
+            tools:node="replace">
             <intent-filter>
                 <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!-- Required  用户注册SDK的intent -->
                 <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!-- Required  用户接收SDK消息的intent -->
                 <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!-- Required  用户接收SDK通知栏信息的intent -->
                 <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!-- Required  用户打开自定义通知栏的intent -->
                 <action android:name="cn.jpush.android.intent.CONNECTION" /> <!-- 接收网络变化 连接/断开 since 1.6.3 -->
-                <category android:name="com.silence.commonframe" /> <!--JPush上注册的包名 -->
+                <category android:name="com.silence.commonframe" /> <!-- JPush上注册的包名 -->
             </intent-filter>
         </service>
+
         <receiver
             android:name=".tuisong.MyReceiver"
             android:enabled="true"
@@ -320,29 +324,54 @@
             android:theme="@style/Theme.Transparent" />
         <activity
             android:name=".activity.QuickSetupActivity"
-
             android:screenOrientation="portrait" />
         <activity android:name=".activity.NewsdetailActivityShow" />
         <activity
             android:name=".activity.LoginCompanyActivity"
-            android:screenOrientation="portrait"></activity>
+            android:screenOrientation="portrait" />
         <activity
             android:name="cn.finalteam.rxgalleryfinal.ui.activity.MediaActivity"
-            android:screenOrientation="portrait"
-            android:exported="true" />
+            android:exported="true"
+            android:screenOrientation="portrait" />
         <activity
             android:name="com.yalantis.ucrop.UCropActivity"
             android:screenOrientation="portrait" />
-        <!--空气卫士主界面-->
-        <activity android:name=".activity.AirGuardActivity" android:screenOrientation="portrait"/>
-        <!--空气卫士工作时间段界面-->
-        <activity android:name=".activity.AirGuardWordTimeActivity" android:screenOrientation="portrait"/>
-        <!--空气卫士添加时间段界面-->
-        <activity android:name=".activity.AirGuardNewTimeActivity" android:screenOrientation="portrait"/>
-        <!--空气卫士同步实时时间界面-->
-        <activity android:name=".activity.AirGuardTimeClockActivity" android:screenOrientation="portrait"/>
-        <!--空气卫士详情界面-->
-        <activity android:name=".activity.AirGuardDetailActivity" android:screenOrientation="portrait"></activity>
+        <!-- 空气卫士主界面 -->
+        <activity
+            android:name=".activity.AirGuardActivity"
+            android:screenOrientation="portrait" />
+        <!-- 空气卫士工作时间段界面 -->
+        <activity
+            android:name=".activity.AirGuardWordTimeActivity"
+            android:screenOrientation="portrait" />
+        <!-- 空气卫士添加时间段界面 -->
+        <activity
+            android:name=".activity.AirGuardNewTimeActivity"
+            android:screenOrientation="portrait" />
+        <!-- 空气卫士同步实时时间界面 -->
+        <activity
+            android:name=".activity.AirGuardTimeClockActivity"
+            android:screenOrientation="portrait" />
+        <!-- 空气卫士详情界面 -->
+        <activity
+            android:name=".activity.AirGuardDetailActivity"
+            android:screenOrientation="portrait" />
+
+        <!-- 企业版主界面 -->
+        <activity android:name="com.silence.tech.ui.MainCompanyActivity"
+            android:screenOrientation="portrait"/>
+        <!-- 企业版监控火警界面 -->
+        <activity android:name="com.silence.tech.ui.moni.activity.MoniFireAlarmActivity"
+            android:screenOrientation="portrait"/>
+        <!-- 企业版监控故障界面 -->
+        <activity android:name="com.silence.tech.ui.moni.activity.MoniFaultActivity"
+            android:screenOrientation="portrait"/>
+        <!-- 企业版监控异常界面 -->
+        <activity android:name="com.silence.tech.ui.moni.activity.MoniAbnormalActivity"
+            android:screenOrientation="portrait"/>
+        <!-- 企业版监控隐患界面 -->
+        <activity android:name="com.silence.tech.ui.moni.activity.MoniHidTroubleActivity"
+            android:screenOrientation="portrait"/>
     </application>
 
 </manifest>

+ 2 - 2
app/src/main/java/com/silence/commonframe/ApiService.java

@@ -8,9 +8,9 @@ public interface ApiService {
 
 //   String httpUrl1   = "https://www.hsh-iot.com/hsh_app";
 
-//   String httpUrl1   =   "https://www.hsh-iot.com/test/hsh_app";
+   String httpUrl1   =   "https://www.hsh-iot.com/test/hsh_app";
 
-    String httpUrl1   =   "http://192.168.1.111:8080";
+//    String httpUrl1   =   "http://192.168.1.111:8080";
 
   //  String httpUrl1   =   "https://www.hsh-iot.com/hsh_app";
 

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

@@ -228,11 +228,11 @@ public class AirGuardActivity extends BaseActivity implements AirGuardListener.V
     //蜂鸣器开关
     @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();
-        }
+//        if (buzzer_switch.isChecked()){
+//            Toast.makeText(AirGuardActivity.this,"蜂鸣器开",Toast.LENGTH_SHORT).show();
+//        }else {
+//            Toast.makeText(AirGuardActivity.this,"蜂鸣器关",Toast.LENGTH_SHORT).show();
+//        }
     }
 
     //电源开关

+ 26 - 31
app/src/main/java/com/silence/commonframe/activity/AirGuardDetailActivity.java

@@ -21,6 +21,8 @@ import com.lzy.okgo.cache.CacheMode;
 import com.lzy.okgo.callback.StringCallback;
 import com.silence.commonframe.Dialog.CDialog;
 import com.silence.commonframe.R;
+import com.silence.commonframe.activity.Interface.AirGuardDetailListener;
+import com.silence.commonframe.activity.presenter.AirGuardDetailPresenter;
 import com.silence.commonframe.base.basemvp.BaseActivity;
 import com.silence.commonframe.common.constant.UrlConstants;
 import com.silence.commonframe.utils.AtyContainer;
@@ -40,7 +42,7 @@ import okhttp3.Response;
  * @author 郑嘉明
  * tv_airguard_id、et_airguard_name、airguard_update_name
  */
-public class AirGuardDetailActivity extends BaseActivity {
+public class AirGuardDetailActivity extends BaseActivity implements AirGuardDetailListener.View {
 
     /**
      * 导航栏信息
@@ -59,6 +61,8 @@ public class AirGuardDetailActivity extends BaseActivity {
     private String deviceId;
     private String deviceName;
 
+    private AirGuardDetailPresenter presenter;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_air_guard_detail;
@@ -66,7 +70,7 @@ public class AirGuardDetailActivity extends BaseActivity {
 
     @Override
     public void initPresenter() {
-
+        presenter = new AirGuardDetailPresenter(this,this);
     }
 
     @Override
@@ -120,40 +124,12 @@ public class AirGuardDetailActivity extends BaseActivity {
         builder.setMessage(getResources().getString(R.string.dialog_update_name));
         builder.setPositiveButton(getResources().getString(R.string.sure), (dialog, which) -> {
             //确定修改后的操作
-            updateDeviceName();
+            presenter.updateDeviceName();
         });
         builder.setNegativeButton(getResources().getString(R.string.cancle), (dialog, which) -> dialog.dismiss());
         builder.show();
     }
 
-    private void updateDeviceName() {
-        OkGo.get(UrlConstants.AIRGUARD_DEV_DETAIL)
-                .tag(this)
-                .params("deviceId",deviceId)
-                .params("deviceName",et_airguard_name.getText().toString())
-                .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(AirGuardDetailActivity.this,"修改成功",Toast.LENGTH_SHORT).show();
-                            }else {
-                                LoginIn.tokenOut(code,AirGuardDetailActivity.this);
-                                Toast.makeText(AirGuardDetailActivity.this,""+message,Toast.LENGTH_SHORT).show();
-                            }
-                        } catch (JSONException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                });
-    }
-
     /**
      * 页面全屏
      */
@@ -178,4 +154,23 @@ public class AirGuardDetailActivity extends BaseActivity {
         finish();
     }
 
+    @Override
+    public String getDevId() {
+        return deviceId;
+    }
+
+    @Override
+    public String getDevName() {
+        return et_airguard_name.getText().toString();
+    }
+
+    @Override
+    public void onUpdateAirNameSuccess() {
+
+    }
+
+    @Override
+    public void onFile(String msg) {
+        Toast.makeText(this,""+msg,Toast.LENGTH_SHORT).show();
+    }
 }

+ 50 - 72
app/src/main/java/com/silence/commonframe/activity/AirGuardNewTimeActivity.java

@@ -17,7 +17,9 @@ 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.AirGuardNewTimeListener;
 import com.silence.commonframe.activity.Interface.NewSubmitListener;
+import com.silence.commonframe.activity.presenter.AirGuardNewTimePresenter;
 import com.silence.commonframe.adapter.MyWheelAdapter;
 import com.silence.commonframe.base.basemvp.BaseActivity;
 import com.silence.commonframe.bean.BaseBean;
@@ -42,7 +44,7 @@ import okhttp3.Response;
  * @author 郑嘉明
  * start_time_hour、start_time_minute、end_time_hour、end_time_minute、wind_speed_level(风速等级)、wind_speed_reduce(降低风速)、wind_speed_increase(提高风速)
  */
-public class AirGuardNewTimeActivity extends BaseActivity  {
+public class AirGuardNewTimeActivity extends BaseActivity implements AirGuardNewTimeListener.View {
 
     public static int WHEEL_SIZE = 5;      //显示的滚动的数量
     public static int WIND_SPEED_HIGN = 20;     //最高风速
@@ -85,6 +87,8 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
     private String startTime;
     private String endTime;
 
+    AirGuardNewTimePresenter presenter;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_air_guard_new_time;
@@ -92,7 +96,7 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
 
     @Override
     public void initPresenter() {
-
+        presenter = new AirGuardNewTimePresenter(this,this);
     }
 
     @Override
@@ -175,83 +179,15 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
                     intent_result.putExtra("wind_speed",wind_speed);
                     if ("add".equals(type)){
                         setResult(222,intent_result);
-                        addTime();
-                        finish();
+                        presenter.addTime();
                     }else if ("update".equals(type)){
-                        updateTime();
+                        presenter.updateTime();
                     }
                 }
             }
         });
     }
 
-    private void updateTime() {
-        OkGo.get(UrlConstants.AIRGUARD_UPDATE_RUNTIME)
-                .params("id",id)
-                .params("startTime",startTime)
-                .params("endTime",endTime)
-                .params("speedType",wind_speed)
-                .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,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();
-                        }
-                    }
-
-                    @Override
-                    public void onError(Call call, Response response, Exception e) {
-                        super.onError(call, response, e);
-
-                    }
-                });
-    }
-
-    /**
-     * 添加时间间隔接口
-     */
-    private void addTime() {
-        OkGo.get(UrlConstants.AIRGUARD_RUNTIME)
-                .tag(this)
-                .params("deviceId",deviceId)
-                .params("startTime",startTime)
-                .params("endTime",endTime)
-                .params("speedType",wind_speed)
-                .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(AirGuardNewTimeActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
-                            }else {
-                                LoginIn.tokenOut(code,AirGuardNewTimeActivity.this);
-                                Toast.makeText(AirGuardNewTimeActivity.this,""+message,Toast.LENGTH_SHORT).show();
-                            }
-                        } catch (JSONException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                });
-
-    }
-
     /**
      * 初始化时间选择的属性
      */
@@ -349,4 +285,46 @@ public class AirGuardNewTimeActivity extends BaseActivity  {
         finish();
     }
 
+    @Override
+    public String getDevId() {
+        return deviceId;
+    }
+
+    @Override
+    public String getId() {
+        return id;
+    }
+
+    @Override
+    public String getStartTime() {
+        return startTime;
+    }
+
+    @Override
+    public String getEndTime() {
+        return endTime;
+    }
+
+    @Override
+    public int getSpeedType() {
+        return wind_speed;
+    }
+
+    @Override
+    public void onAddTimeSuccess() {
+        finish();
+    }
+
+    @Override
+    public void onUpdateTimeSuccess() {
+        Intent intent_result=new Intent();
+        intent_result.putExtra("position",intent.getIntExtra("position",-1));
+        setResult(333,intent_result);
+        finish();
+    }
+
+    @Override
+    public void onFile(String msg) {
+        Toast.makeText(this,""+msg,Toast.LENGTH_SHORT).show();
+    }
 }

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

@@ -13,6 +13,8 @@ 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.AirGuardTimeClockListener;
+import com.silence.commonframe.activity.presenter.AirGuardTimeClockPresenter;
 import com.silence.commonframe.base.basemvp.BaseActivity;
 import com.silence.commonframe.common.constant.UrlConstants;
 
@@ -34,7 +36,7 @@ import okhttp3.Response;
  * @author 郑嘉明
  * id:tv_current_time(当前时间)、bt_syn_nettime(同步时间按钮)
  */
-public class AirGuardTimeClockActivity extends BaseActivity {
+public class AirGuardTimeClockActivity extends BaseActivity implements AirGuardTimeClockListener.View {
 
     /**
      * 导航栏信息
@@ -54,6 +56,8 @@ public class AirGuardTimeClockActivity extends BaseActivity {
 
     private String deviceId = "";
 
+    private AirGuardTimeClockPresenter presenter;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_air_guard_time_clock;
@@ -61,7 +65,7 @@ public class AirGuardTimeClockActivity extends BaseActivity {
 
     @Override
     public void initPresenter() {
-
+        presenter = new AirGuardTimeClockPresenter(this,this);
     }
 
     @Override
@@ -75,44 +79,11 @@ public class AirGuardTimeClockActivity extends BaseActivity {
         getCurrentTime();
 
         //同步网络时间
-        bt_syn_nettime.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                setTimeClock();
-            }
-        });
-    }
-
-    private void setTimeClock() {
-        String url = UrlConstants.AIRGUARD_SETTIME;
-        OkGo.get(url)
-                .tag(this)
-                .cacheKey("cacheGetKey")
-                .cacheMode(CacheMode.DEFAULT)
-                .headers("token", Data.getToken())
-                .params("deviceId",deviceId)
-                .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(AirGuardTimeClockActivity.this,"同步成功",Toast.LENGTH_SHORT).show();
-                            }else {
-                                LoginIn.tokenOut(code,AirGuardTimeClockActivity.this);
-                                Toast.makeText(AirGuardTimeClockActivity.this,""+message,Toast.LENGTH_SHORT).show();
-                            }
-                        } catch (JSONException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                });
+        bt_syn_nettime.setOnClickListener(v -> presenter.setTimeClock());
     }
 
     /**
-     *
+     * 获取当前时间
      */
     private void getCurrentTime() {
         Calendar calendar = Calendar.getInstance();
@@ -150,4 +121,19 @@ public class AirGuardTimeClockActivity extends BaseActivity {
     public void click_back(View view) {
         finish();
     }
+
+    @Override
+    public String getDevId() {
+        return deviceId;
+    }
+
+    @Override
+    public void onSuccess() {
+        Toast.makeText(this,"同步成功",Toast.LENGTH_SHORT).show();
+    }
+
+    @Override
+    public void onFile(String msg) {
+        Toast.makeText(this,""+msg,Toast.LENGTH_SHORT).show();
+    }
 }

+ 1 - 159
app/src/main/java/com/silence/commonframe/activity/AirGuardWordTimeActivity.java

@@ -11,32 +11,18 @@ import android.view.Window;
 import android.view.WindowManager;
 import android.widget.TextView;
 import android.widget.Toast;
-
-import com.google.gson.Gson;
-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.AirGuardWordTimeBean;
-import com.silence.commonframe.common.constant.UrlConstants;
 import com.silence.commonframe.model.AirGuardRunTimeListModel;
-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.List;
 
 import butterknife.BindView;
-import okhttp3.Call;
-import okhttp3.Response;
 
 /**
  * 空气卫士-工作时间段
@@ -91,90 +77,6 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
         addNewTimeListener();
     }
 
-    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();
-                        }
-                    }
-
-                    @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);
-                        }
-                    }
-
-                    @Override
-                    public void onError(Call call, Response response, Exception e) {
-                        super.onError(call, response, e);
-
-                    }
-                });
-    }
-
     /**
      * 导航栏添加按钮点击事件
      */
@@ -193,7 +95,7 @@ public class AirGuardWordTimeActivity extends BaseActivity implements AirGuardWo
     }
 
     /**
-     * 获取添加和修改的时间,添加修改时间的接口在这加
+     * 获取添加和修改的时间,添加修改时间的接口
      * @param requestCode 222 333
      * @param resultCode 222 333
      * @param data worktime
@@ -269,66 +171,6 @@ 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() {

+ 21 - 0
app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardDetailListener.java

@@ -0,0 +1,21 @@
+package com.silence.commonframe.activity.Interface;
+
+import com.silence.commonframe.base.basemvp.BaseModel;
+import com.silence.commonframe.base.basemvp.BasePresenter;
+
+/**
+ * 空气卫士详情接口
+ */
+public interface AirGuardDetailListener {
+    interface View{
+        String getDevId();
+        String getDevName();
+
+        void onUpdateAirNameSuccess();
+        void onFile(String msg);
+    }
+
+    abstract class Presenter extends BasePresenter<View,BaseModel> {
+        public abstract void updateDeviceName();
+    }
+}

+ 26 - 0
app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardNewTimeListener.java

@@ -0,0 +1,26 @@
+package com.silence.commonframe.activity.Interface;
+
+import com.silence.commonframe.base.basemvp.BaseModel;
+import com.silence.commonframe.base.basemvp.BasePresenter;
+
+/**
+ * 空气卫士添加修改运行时间间隔接口
+ * @author moon
+ */
+public interface AirGuardNewTimeListener {
+    interface View{
+        String getDevId();
+        String getId();
+        String getStartTime();
+        String getEndTime();
+        int getSpeedType();
+
+        void onAddTimeSuccess();
+        void onUpdateTimeSuccess();
+        void onFile(String msg);
+    }
+    abstract class Presenter extends BasePresenter<View,BaseModel> {
+        public abstract void addTime();
+        public abstract void updateTime();
+    }
+}

+ 20 - 0
app/src/main/java/com/silence/commonframe/activity/Interface/AirGuardTimeClockListener.java

@@ -0,0 +1,20 @@
+package com.silence.commonframe.activity.Interface;
+
+import com.silence.commonframe.base.basemvp.BaseModel;
+import com.silence.commonframe.base.basemvp.BasePresenter;
+
+/**
+ * 空气卫士实时时钟接口
+ * @author moon
+ */
+public interface AirGuardTimeClockListener {
+    interface View{
+        String getDevId();
+
+        void onSuccess();
+        void onFile(String msg);
+    }
+    abstract class Presenter extends BasePresenter<View,BaseModel> {
+        public abstract void setTimeClock();
+    }
+}

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

@@ -3,7 +3,6 @@ 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;

+ 2 - 1
app/src/main/java/com/silence/commonframe/activity/LoginCompanyActivity.java

@@ -23,6 +23,7 @@ import com.silence.commonframe.model.LoginFromPasswordModel;
 import com.silence.commonframe.model.SiteModel;
 import com.silence.commonframe.utils.Data;
 import com.silence.commonframe.utils.LoadingPopupHelper;
+import com.silence.tech.ui.MainCompanyActivity;
 
 import java.net.NetworkInterface;
 import java.util.Collections;
@@ -73,7 +74,7 @@ public class LoginCompanyActivity extends AppCompatActivity {
     }
     private void  goGuide(){
         loadingPopupHelper.dismissLoading();
-        Intent intent = new Intent(this,MainActivity.class);
+        Intent intent = new Intent(this,MainCompanyActivity.class);
         startActivity(intent);
         //   startActivity(intent, oc2.toBundle());
         finish();

+ 59 - 0
app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardDetailPresenter.java

@@ -0,0 +1,59 @@
+package com.silence.commonframe.activity.presenter;
+
+import android.app.Activity;
+
+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.AirGuardDetailListener;
+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;
+
+/**
+ * 空气卫士详情Presenter
+ */
+public class AirGuardDetailPresenter extends AirGuardDetailListener.Presenter {
+
+    public AirGuardDetailPresenter(Activity mContext, AirGuardDetailListener.View mView){
+        this.mContext=mContext;
+        this.mView=mView;
+    }
+
+    //修改设备名字
+    @Override
+    public void updateDeviceName() {
+        OkGo.get(UrlConstants.AIRGUARD_DEV_DETAIL)
+                .tag(this)
+                .params("deviceId",mView.getDevId())
+                .params("deviceName",mView.getDevName())
+                .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){
+                            mView.onFile("修改成功");
+                            mView.onUpdateAirNameSuccess();
+                        }else {
+                            LoginIn.tokenOut(data.code,mContext);
+                            mView.onFile(data.msg);
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+}

+ 96 - 0
app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardNewTimePresenter.java

@@ -0,0 +1,96 @@
+package com.silence.commonframe.activity.presenter;
+
+import android.app.Activity;
+import android.content.Intent;
+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.AirGuardNewTimeActivity;
+import com.silence.commonframe.activity.Interface.AirGuardNewTimeListener;
+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 org.json.JSONException;
+import org.json.JSONObject;
+
+import okhttp3.Call;
+import okhttp3.Response;
+
+public class AirGuardNewTimePresenter extends AirGuardNewTimeListener.Presenter {
+
+    public AirGuardNewTimePresenter(Activity mContext, AirGuardNewTimeListener.View mView){
+        this.mContext=mContext;
+        this.mView=mView;
+    }
+
+    //添加运行时间
+    @Override
+    public void addTime() {
+        OkGo.get(UrlConstants.AIRGUARD_RUNTIME)
+                .tag(this)
+                .params("deviceId",mView.getDevId())
+                .params("startTime",mView.getStartTime())
+                .params("endTime",mView.getEndTime())
+                .params("speedType",mView.getSpeedType())
+                .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){
+                            mView.onFile("添加成功");
+                            mView.onAddTimeSuccess();
+                        }else {
+                            LoginIn.tokenOut(data.code,mContext);
+                            mView.onFile(data.msg);
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    //修改运行时间
+    @Override
+    public void updateTime() {
+        OkGo.get(UrlConstants.AIRGUARD_UPDATE_RUNTIME)
+                .params("id",mView.getId())
+                .params("startTime",mView.getStartTime())
+                .params("endTime",mView.getEndTime())
+                .params("speedType",mView.getSpeedType())
+                .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){
+                            mView.onFile("修改成功");
+                            mView.onUpdateTimeSuccess();
+                        }else {
+                            LoginIn.tokenOut(data.code,mContext);
+                            mView.onFile(data.msg);
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+}

+ 59 - 0
app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardTimeClockPresenter.java

@@ -0,0 +1,59 @@
+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.AirGuardTimeClockListener;
+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;
+
+/**
+ * 空气卫士实时时钟presenter
+ * @author moon
+ */
+public class AirGuardTimeClockPresenter extends AirGuardTimeClockListener.Presenter {
+
+    public AirGuardTimeClockPresenter(Activity mContext, AirGuardTimeClockListener.View mView){
+        this.mContext = mContext;
+        this.mView = mView;
+    }
+
+    //同步实时时钟
+    @Override
+    public void setTimeClock() {
+        OkGo.get(UrlConstants.AIRGUARD_SETTIME)
+                .tag(this)
+                .cacheKey("cacheGetKey")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .params("deviceId",mView.getDevId())
+                .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,mContext);
+                            mView.onFile(data.msg);
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+}

+ 10 - 14
app/src/main/java/com/silence/commonframe/activity/presenter/AirGuardWordTimePresenter.java

@@ -1,25 +1,19 @@
 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;
 
@@ -49,7 +43,7 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                             mView.onSuccess(data.getData());
                         }else {
                             LoginIn.tokenOut(data.getCode(),data.getMsg(),mContext);
-                            Toast.makeText(mContext,""+data.getMsg(),Toast.LENGTH_SHORT).show();
+                            mView.onFile(data.getMsg());
                         }
                     }
                     @Override
@@ -74,10 +68,10 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                     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();
+                            mView.onFile("删除成功");
                         }else {
                             LoginIn.tokenOut(data.code,mContext);
-                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                            mView.onFile(data.msg);
                         }
                     }
 
@@ -89,6 +83,7 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                 });
     }
 
+    //打开或关闭运行时间
     @Override
     public void openCloseRunTime(int position) {
         OkGo.get(UrlConstants.AIRGUARD_OPEN_CLOSE_RUNTIME)
@@ -102,10 +97,10 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                     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();
+                            mView.onFile(data.msg);
                         }else {
                             LoginIn.tokenOut(data.code,mContext);
-                            Toast.makeText(mContext,""+data.msg,Toast.LENGTH_SHORT).show();
+                            mView.onFile(data.msg);
                         }
                     }
 
@@ -117,6 +112,7 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                 });
     }
 
+    //修改运行时间间隔
     @Override
     public void updateRunTime(int position) {
         OkGo.get(UrlConstants.AIRGUARD_RUNTIMELIST)
@@ -134,7 +130,7 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                             mView.onUpdateSuccess(position,data);
                         }else {
                             LoginIn.tokenOut(data.getCode(),mContext);
-                            Toast.makeText(mContext,""+data.getMsg(),Toast.LENGTH_SHORT).show();
+                            mView.onFile(data.getMsg());
                         }
                     }
 
@@ -146,6 +142,7 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                 });
     }
 
+    //更新数据
     @Override
     public void updateRunTime() {
         OkGo.get(UrlConstants.AIRGUARD_RUNTIMELIST)
@@ -158,12 +155,11 @@ public class AirGuardWordTimePresenter extends AirGuardWordTimeListener.Presente
                     @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();
+                            mView.onFile(data.getMsg());
                         }
                     }
 

+ 1 - 1
app/src/main/java/com/silence/commonframe/adapter/AddDeviceAdapter.java

@@ -22,7 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 
 /**
- * 添加设备(设备类型)构造
+ * 添加设备(设备类型)适配
  * @author 郑嘉明
  */
 public class AddDeviceAdapter extends RecyclerView.Adapter<AddDeviceAdapter.MyViewHolder> {

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

@@ -121,7 +121,7 @@ public class AirGuardWorKTimeAdapter extends RecyclerView.Adapter<RecyclerView.V
 
     /**
      * 修改时间
-     * @param postion delete_position
+     * @param postion update_position
      */
     public void updateWorkTime(AirGuardRunTimeListModel.DataBean time,int postion){
         listTime.set(postion,time);

+ 3 - 6
app/src/main/java/com/silence/commonframe/base/basemvp/BaseFragment.java

@@ -105,11 +105,8 @@ public abstract  class BaseFragment<T extends BasePresenter, E extends BaseModel
          //   this.setContentView(this.getLayoutId());//缺少这一行
             unbinder = ButterKnife.bind(this, rootView);
             initPresenter();
-            try {
-                initView();
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
+            initView();
+
             onVisible();
         }
      //   mRxManager=new RxManager();
@@ -121,7 +118,7 @@ public abstract  class BaseFragment<T extends BasePresenter, E extends BaseModel
     //简单页面无需mvp就不用管此方法即可,完美兼容各种实际场景的变通
     public abstract void initPresenter();
     //初始化view
-    protected abstract void initView() throws Exception;
+    protected abstract void initView();
 
     /*
    * 此方法在viewpager嵌套fragment时会回调

+ 2 - 1
app/src/main/java/com/silence/commonframe/common/constant/UrlConstants.java

@@ -17,7 +17,8 @@ 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 BASE_LOCAl="http://192.168.1.111:8080/";
+    String BASE_LOCAl="https://www.hsh-iot.com/test/hsh_app/";
     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";

+ 69 - 0
app/src/main/java/com/silence/tech/adapter/MoniTroubleAdapter.java

@@ -0,0 +1,69 @@
+package com.silence.tech.adapter;
+
+import android.support.annotation.Nullable;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.silence.commonframe.R;
+import com.silence.tech.bean.TroubleListBean;
+
+import java.util.List;
+
+public class MoniTroubleAdapter extends BaseQuickAdapter<TroubleListBean.DataBean.DataListBean, BaseViewHolder> {
+
+    List<TroubleListBean.DataBean.DataListBean> listData;
+
+    public MoniTroubleAdapter(int layoutResId, @Nullable List<TroubleListBean.DataBean.DataListBean> listData) {
+        super(layoutResId, listData);
+        this.listData = listData;
+    }
+
+    @Override
+    protected void convert(BaseViewHolder helper, TroubleListBean.DataBean.DataListBean data) {
+        TextView tvDeviceName = helper.itemView.findViewById(R.id.recycler_view_test_item_person_name_tv);  //设备名称
+        TextView tvRegionName = helper.itemView.findViewById(R.id.recycler_view_place);     //区域名
+        TextView tvTroubleType = helper.itemView.findViewById(R.id.fire);                   //设备状态
+        TextView tvDeviceId = helper.itemView.findViewById(R.id.number);            //设备编号
+        TextView tvDeviceLocation = helper.itemView.findViewById(R.id.place);           //位置
+        TextView tvTime = helper.itemView.findViewById(R.id.time);                  //时间
+        TextView tvLocation = helper.itemView.findViewById(R.id.place1);            //地址
+        ImageView ivCheck = helper.itemView.findViewById(R.id.imageView_check);     //是否复核
+
+        tvDeviceName.setText(data.getDeviceName());
+        String regionName = "区域名:" + data.getRegionName();
+        tvRegionName.setText(regionName);
+
+        if ("1".equals(data.getTroubleType())){
+            tvTroubleType.setText(R.string.state_fire);
+        }else if ("2".equals(data.getTroubleType())){
+            tvTroubleType.setText(R.string.state_fault);
+        }else if ("3".equals(data.getTroubleType())){
+            tvTroubleType.setText(R.string.state_abnormal);
+        }else if ("0".equals(data.getTroubleType())){
+            tvTroubleType.setText(R.string.state_hidtrouble);
+        }
+
+        String deviceId = "编号:" + data.getDeviceId();
+        tvDeviceId.setText(deviceId);
+        String deviceLocation = "位置:" + data.getDeviceLocation();
+        tvDeviceLocation.setText(deviceLocation);
+        String time = "时间:" + data.getGmtCreate();
+        tvTime.setText(time);
+        String location = "地址:" + data.getLocation();
+        tvLocation.setText(location);
+
+        if ("11".equals(data.getRecheckId())){
+            ivCheck.setImageResource(R.mipmap.unaudited1);
+        }else {
+            if ("0".equals(data.getIsValid())){
+                ivCheck.setImageResource(R.mipmap.unaudited3);
+            }
+            if ("1".equals(data.getIsValid())){
+                ivCheck.setImageResource(R.mipmap.unaudited0);
+            }
+        }
+
+    }
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 232 - 0
app/src/main/java/com/silence/tech/bean/TroubleListBean.java


+ 76 - 0
app/src/main/java/com/silence/tech/bean/TroubleTypeBean.java

@@ -0,0 +1,76 @@
+package com.silence.tech.bean;
+
+import java.util.List;
+
+public class TroubleTypeBean {
+
+    /**
+     * code : 0
+     * msg : success
+     * data : [{"typeId":"1","typeName":"火警","count":0},{"typeId":"2","typeName":"故障","count":0},{"typeId":"0","typeName":"异常","count":0},{"typeId":"3","typeName":"隐患","count":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 {
+        /**
+         * typeId : 1
+         * typeName : 火警
+         * count : 0
+         */
+
+        private String typeId;
+        private String typeName;
+        private int count;
+
+        public String getTypeId() {
+            return typeId;
+        }
+
+        public void setTypeId(String typeId) {
+            this.typeId = typeId;
+        }
+
+        public String getTypeName() {
+            return typeName;
+        }
+
+        public void setTypeName(String typeName) {
+            this.typeName = typeName;
+        }
+
+        public int getCount() {
+            return count;
+        }
+
+        public void setCount(int count) {
+            this.count = count;
+        }
+    }
+}

+ 30 - 0
app/src/main/java/com/silence/tech/constant/UrlConstantsTech.java

@@ -0,0 +1,30 @@
+package com.silence.tech.constant;
+
+import com.silence.commonframe.ApiService;
+
+/**
+ * author:
+ * date:
+ * description: 网络地址常量类
+ */
+
+public interface UrlConstantsTech {
+    String FILEUPLOAD=ApiService.httpUrl1 +"/sysCore/fileUpload";
+
+    /*----------------------------------------------接口地址--------------------------------------------*/
+    String UPDATE_IMAGE=FILEUPLOAD+"?attachType=";
+
+    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 = "https://www.hsh-iot.com/test/hsh_app/";
+    String BASE_COMPANY = "app/company/";
+
+    //获取未处理统计数量
+    String DEV_TROUBLE_COUNT = BASE_LOCAL + BASE_COMPANY + "getDevTroubleCount";
+    //获取异常的类型
+    String TROUBLE_TYPE = BASE_LOCAL + BASE_COMPANY + "getTroubleType";
+    //查询未处理的设备异常记录
+    String DEV_TROUBLE_LIST = BASE_LOCAL + BASE_COMPANY + "getDevTroubleList";
+}
+

+ 194 - 0
app/src/main/java/com/silence/tech/ui/MainCompanyActivity.java

@@ -0,0 +1,194 @@
+package com.silence.tech.ui;
+
+import android.app.Activity;
+import android.content.DialogInterface;
+import android.graphics.Color;
+import android.os.Build;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+
+import com.silence.commonframe.App;
+import com.silence.commonframe.Dialog.CDialog;
+import com.silence.commonframe.R;
+import com.silence.commonframe.base.basemvp.BaseActivity;
+import com.silence.tech.ui.device.activity.DeviceTechFragment;
+import com.silence.tech.ui.files.activity.FilesFragment;
+import com.silence.tech.ui.moni.activity.MoniFragment;
+import com.silence.tech.ui.my.activity.MineTechFragment;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MainCompanyActivity extends BaseActivity {
+
+    @BindView(R.id.btn_tab_moni)
+    Button mBtnTabMoni;
+    @BindView(R.id.btn_tab_files)
+    Button mBtnTabFiles;
+    @BindView(R.id.btn_tab_contact)
+    Button mBtnTabContact;
+    @BindView(R.id.btn_tab_mine)
+    Button mBtnTabMine;
+    private MoniFragment mMoniFragment;
+    private DeviceTechFragment mDeviceTechFragment;
+    private FilesFragment mFilesFragment;
+    private MineTechFragment mMineTechFragment;
+    private FragmentManager mFragmentManager;
+
+    public static boolean isForeground = false;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_main_company;
+    }
+
+    @Override
+    public void initPresenter() {
+
+    }
+
+    @Override
+    public void initView() {
+        mFragmentManager = getSupportFragmentManager();
+        mBtnTabMoni.setSelected(true);
+        mMoniFragment = new MoniFragment();
+        mFragmentManager.beginTransaction().add(R.id.fragment_container, mMoniFragment).commit();
+
+        initWindows();
+        addActivity(this);
+    }
+
+    @OnClick({R.id.btn_tab_moni, R.id.btn_tab_files, R.id.btn_tab_contact, R.id.btn_tab_mine})
+    public void onClick(View view){
+        switch (view.getId()){
+            case R.id.btn_tab_moni: {
+                if (mMoniFragment == null){
+                    mMoniFragment = new MoniFragment();
+                }
+                switchFragment(mMoniFragment);
+                switchState(mBtnTabMoni);
+            }
+            break;
+            case R.id.btn_tab_files: {
+                if (mFilesFragment == null){
+                    mFilesFragment = new FilesFragment();
+                }
+                switchFragment(mFilesFragment);
+                switchState(mBtnTabFiles);
+            }
+            break;
+            case R.id.btn_tab_contact: {
+                if (mDeviceTechFragment == null){
+                    mDeviceTechFragment = new DeviceTechFragment();
+                }
+                switchFragment(mDeviceTechFragment);
+                switchState(mBtnTabContact);
+            }
+            break;
+            case R.id.btn_tab_mine: {
+                if (mMineTechFragment == null){
+                    mMineTechFragment = new MineTechFragment();
+                }
+                switchFragment(mMineTechFragment);
+                switchState(mBtnTabMine);
+            }
+            break;
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        isForeground = true;
+    }
+
+    private long lastTime=0; //记录上次点击的时间
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if(keyCode== KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_DOWN){
+            if((System.currentTimeMillis()-lastTime)>2000){
+                lastTime=System.currentTimeMillis();
+            }else {
+                CDialog.Builder builder = new CDialog.Builder(this);
+                builder.setMessage("你确定要退出系统吗?");
+                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which)
+                    {
+                        System.exit(0);
+                    }
+                });
+                builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){
+                    @Override
+                    public void onClick(DialogInterface dialog, int which)
+                    {
+                        dialog.dismiss();
+                    }
+                });
+                builder.show();
+            }
+            return  true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    //选择相应的tab
+    private void switchState(Button selectedButton) {
+        mBtnTabMoni.setSelected(false);
+        mBtnTabContact.setSelected(false);
+        mBtnTabFiles.setSelected(false);
+        mBtnTabMine.setSelected(false);
+        selectedButton.setSelected(true);
+    }
+
+    //切换到xiang
+    private void switchFragment(Fragment newFragment) {
+        FragmentTransaction transaction = mFragmentManager.beginTransaction();
+        if (!newFragment.isAdded()) {
+            transaction.add(R.id.fragment_container, newFragment);
+        }
+        if (mMoniFragment != null && mMoniFragment.isVisible()) {
+            transaction.hide(mMoniFragment);
+        }
+        if (mDeviceTechFragment != null && mDeviceTechFragment.isVisible()) {
+            transaction.hide(mDeviceTechFragment);
+        }
+        if (mFilesFragment != null && mFilesFragment.isVisible()) {
+            transaction.hide(mFilesFragment);
+        }
+        if (mMineTechFragment != null && mMineTechFragment.isVisible()) {
+            transaction.hide(mMineTechFragment);
+        }
+        transaction.show(newFragment);
+        transaction.commit();
+    }
+
+    //沉浸式状态栏
+    private void initWindows() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            Window window = getWindow();
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
+                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
+            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(Color.TRANSPARENT);
+            window.setNavigationBarColor(Color.BLACK);
+        }
+    }
+
+    /*** 添加Activity*/
+    public void addActivity(Activity activity) {// 判断当前集合中不存在该Activity
+        if (!App.oList.contains(activity)) {
+            App.oList.add(activity);//把当前Activity添加到集合中}
+        }
+    }
+}

+ 22 - 0
app/src/main/java/com/silence/tech/ui/device/activity/DeviceTechFragment.java

@@ -0,0 +1,22 @@
+package com.silence.tech.ui.device.activity;
+
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.silence.commonframe.R;
+
+public class DeviceTechFragment extends Fragment {
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_device_tech, container, false);
+
+        return view;
+    }
+}

+ 22 - 0
app/src/main/java/com/silence/tech/ui/files/activity/FilesFragment.java

@@ -0,0 +1,22 @@
+package com.silence.tech.ui.files.activity;
+
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.silence.commonframe.R;
+
+public class FilesFragment extends Fragment {
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_files, container, false);
+
+        return view;
+    }
+}

+ 25 - 0
app/src/main/java/com/silence/tech/ui/moni/Interface/MoniListener.java

@@ -0,0 +1,25 @@
+package com.silence.tech.ui.moni.Interface;
+
+import com.silence.commonframe.base.basemvp.BaseModel;
+import com.silence.commonframe.base.basemvp.BasePresenter;
+import com.silence.tech.bean.TroubleListBean;
+import com.silence.tech.bean.TroubleTypeBean;
+
+import java.util.List;
+
+/**
+ * 监控界面接口
+ */
+public interface MoniListener {
+    interface View{
+
+        void onTroubleListSuccess(TroubleListBean.DataBean dataBean);
+        void onTroubleTypeSuccess(List<TroubleTypeBean.DataBean> data);
+        void onFile(String msg);
+    }
+
+    abstract class Presenter extends BasePresenter<View,BaseModel> {
+        public abstract void getTroubleType();
+        public abstract void getTroubleList();
+    }
+}

+ 22 - 0
app/src/main/java/com/silence/tech/ui/moni/activity/MoniAbnormalActivity.java

@@ -0,0 +1,22 @@
+package com.silence.tech.ui.moni.activity;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.base.basemvp.BaseActivity;
+
+public class MoniAbnormalActivity extends BaseActivity {
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_moni_abnormal;
+    }
+
+    @Override
+    public void initPresenter() {
+
+    }
+
+    @Override
+    public void initView() {
+
+    }
+}

+ 22 - 0
app/src/main/java/com/silence/tech/ui/moni/activity/MoniFaultActivity.java

@@ -0,0 +1,22 @@
+package com.silence.tech.ui.moni.activity;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.base.basemvp.BaseActivity;
+
+public class MoniFaultActivity extends BaseActivity {
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_moni_fault;
+    }
+
+    @Override
+    public void initPresenter() {
+
+    }
+
+    @Override
+    public void initView() {
+
+    }
+}

+ 22 - 0
app/src/main/java/com/silence/tech/ui/moni/activity/MoniFireAlarmActivity.java

@@ -0,0 +1,22 @@
+package com.silence.tech.ui.moni.activity;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.base.basemvp.BaseActivity;
+
+public class MoniFireAlarmActivity extends BaseActivity {
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_moni_fire_alarm;
+    }
+
+    @Override
+    public void initPresenter() {
+
+    }
+
+    @Override
+    public void initView() {
+
+    }
+}

+ 155 - 0
app/src/main/java/com/silence/tech/ui/moni/activity/MoniFragment.java

@@ -0,0 +1,155 @@
+package com.silence.tech.ui.moni.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.Switch;
+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.AirGuardWordTimeActivity;
+import com.silence.commonframe.base.basemvp.BaseFragment;
+import com.silence.commonframe.bean.BaseBean;
+import com.silence.commonframe.utils.Data;
+import com.silence.commonframe.utils.LoginIn;
+import com.silence.tech.adapter.MoniTroubleAdapter;
+import com.silence.tech.bean.TroubleListBean;
+import com.silence.tech.bean.TroubleTypeBean;
+import com.silence.tech.constant.UrlConstantsTech;
+import com.silence.tech.ui.moni.Interface.MoniListener;
+import com.silence.tech.ui.moni.presenter.MoniPresenter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+import okhttp3.Call;
+import okhttp3.Response;
+
+
+public class MoniFragment extends BaseFragment implements MoniListener.View{
+
+    /**
+     * 导航栏信息
+     * back_pic、navi_head_back_text(透明)、navi_head_text、navi_head_text_right(右侧文字)、navi_head_img_right(右侧图片)
+     */
+    @BindView(R.id.navi_head_text)
+    TextView navi_head_text;    //标题
+    @BindView(R.id.back_pic)
+    ImageView ivBackPic;
+
+    Unbinder butterKnife;
+
+    @BindView(R.id.tv_fire_alarm)
+    TextView tvFireAlarm;
+    @BindView(R.id.tv_fault)
+    TextView tvFault;
+    @BindView(R.id.tv_abnormal)
+    TextView tvAbnormal;
+    @BindView(R.id.tv_hidtrouble)
+    TextView tvHidTrouble;
+    @BindView(R.id.rv_moni_msg)
+    RecyclerView rvTroubleList;
+
+    List<TroubleTypeBean.DataBean> listTroubleType = new ArrayList<>();
+
+    MoniPresenter presenter;
+
+    MoniTroubleAdapter mTroubleListAdapter;
+
+    @Override
+    protected int getLayoutResource() {
+        return R.layout.fragment_moni;
+    }
+
+    @Override
+    public void initPresenter() {
+        presenter = new MoniPresenter(getActivity(),this);
+    }
+
+    @Override
+    protected void initView() {
+        navi_head_text.setText(R.string.text_tab_moni);
+        ivBackPic.setVisibility(View.GONE);
+        presenter.getTroubleType();
+        presenter.getTroubleList();
+    }
+
+    @Override
+    protected void lazyLoad() {
+
+    }
+
+    //设置异常类型
+    private void setTroubleType() {
+        for (int i = 0; i < listTroubleType.size(); i++){
+            switch (listTroubleType.get(i).getTypeId()){
+                case "1":{
+                    String fireAlarm = listTroubleType.get(i).getCount() + listTroubleType.get(i).getTypeName();
+                    tvFireAlarm.setText(fireAlarm);
+                }
+                break;
+                case "2":{
+                    String fault = listTroubleType.get(i).getCount() + listTroubleType.get(i).getTypeName();
+                    tvFault.setText(fault);
+                }
+                break;
+                case "0":{
+                    String abNormal = listTroubleType.get(i).getCount() + listTroubleType.get(i).getTypeName();
+                    tvAbnormal.setText(abNormal);
+                }
+                break;
+                case "3":{
+                    String hidTrouble = listTroubleType.get(i).getCount() + listTroubleType.get(i).getTypeName();
+                    tvHidTrouble.setText(hidTrouble);
+                }
+                break;
+            }
+        }
+    }
+
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        butterKnife.unbind();
+    }
+
+    @Override
+    public void onTroubleListSuccess(TroubleListBean.DataBean dataBean) {
+        mTroubleListAdapter = new MoniTroubleAdapter(R.layout.item_recylerview,dataBean.getDataList());
+        rvTroubleList.setLayoutManager(new LinearLayoutManager(getContext()));
+        rvTroubleList.setAdapter(mTroubleListAdapter);
+        mTroubleListAdapter.notifyDataSetChanged();
+    }
+
+    //获取异常类型成功后操作
+    @Override
+    public void onTroubleTypeSuccess(List<TroubleTypeBean.DataBean> data) {
+        listTroubleType.clear();
+        listTroubleType.addAll(data);
+        setTroubleType();
+    }
+
+    @Override
+    public void onFile(String msg){
+        Toast.makeText(getContext(),""+msg,Toast.LENGTH_SHORT).show();
+    }
+
+}

+ 22 - 0
app/src/main/java/com/silence/tech/ui/moni/activity/MoniHidTroubleActivity.java

@@ -0,0 +1,22 @@
+package com.silence.tech.ui.moni.activity;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.base.basemvp.BaseActivity;
+
+public class MoniHidTroubleActivity extends BaseActivity {
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_moni_hid_trouble;
+    }
+
+    @Override
+    public void initPresenter() {
+
+    }
+
+    @Override
+    public void initView() {
+
+    }
+}

+ 83 - 0
app/src/main/java/com/silence/tech/ui/moni/presenter/MoniPresenter.java

@@ -0,0 +1,83 @@
+package com.silence.tech.ui.moni.presenter;
+
+import android.app.Activity;
+
+import com.google.gson.Gson;
+import com.lzy.okgo.OkGo;
+import com.lzy.okgo.cache.CacheMode;
+import com.lzy.okgo.callback.StringCallback;
+import com.silence.commonframe.utils.Data;
+import com.silence.commonframe.utils.LoginIn;
+import com.silence.tech.bean.TroubleListBean;
+import com.silence.tech.bean.TroubleTypeBean;
+import com.silence.tech.constant.UrlConstantsTech;
+import com.silence.tech.ui.moni.Interface.MoniListener;
+
+import okhttp3.Call;
+import okhttp3.Response;
+
+public class MoniPresenter extends MoniListener.Presenter {
+
+    private int PAGE_SIZE = 20;
+
+    public MoniPresenter(Activity mContext, MoniListener.View mView){
+        this.mContext = mContext;
+        this.mView = mView;
+    }
+
+    @Override
+    public void getTroubleType() {
+        OkGo.get(UrlConstantsTech.TROUBLE_TYPE)
+                .tag(this)
+                .cacheKey("cacheGetKey")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        TroubleTypeBean data = new Gson().fromJson(s,TroubleTypeBean.class);
+                        if (data.getCode() == 0){
+                            mView.onTroubleTypeSuccess(data.getData());
+                        }else {
+                            LoginIn.tokenOut(data.getCode(),mContext);
+                            mView.onFile(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    @Override
+    public void getTroubleList() {
+        OkGo.get(UrlConstantsTech.DEV_TROUBLE_LIST)
+                .tag(this)
+                .params("page",1)
+                .params("pageSize",PAGE_SIZE)
+                .cacheKey("cacheGetKey")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        TroubleListBean data = new Gson().fromJson(s,TroubleListBean.class);
+                        if (data.getCode() == 0){
+                            mView.onTroubleListSuccess(data.getData());
+                        }else {
+                            LoginIn.tokenOut(data.getCode(),mContext);
+                            mView.onFile(data.getMsg());
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+}

+ 116 - 0
app/src/main/java/com/silence/tech/ui/my/activity/MineTechFragment.java

@@ -0,0 +1,116 @@
+package com.silence.tech.ui.my.activity;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.silence.commonframe.R;
+import com.silence.commonframe.activity.CoustomerActivity;
+import com.silence.commonframe.activity.HistoryActivity;
+import com.silence.commonframe.activity.QuesstionActivity;
+import com.silence.commonframe.activity.SetupActivity;
+import com.silence.commonframe.activity.SitedetailActivity;
+import com.silence.commonframe.utils.Data;
+
+import java.io.File;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+
+public class MineTechFragment extends Fragment {
+    protected Activity mActivity;
+    @BindView(R.id.name)
+    TextView name;
+    @BindView(R.id.image_head)
+    de.hdodenhof.circleimageview.CircleImageView image_head;
+    @BindView(R.id.tel)
+    TextView tel;//btn_menu
+    @BindView(R.id.btn_menu)
+    ImageView imageViewset;//btn_menu
+
+    Unbinder butterKnife;
+
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.fragment_mine_tech, container, false);
+        RelativeLayout relativeLayout = (RelativeLayout) view.findViewById(R.id.rl);
+        relativeLayout.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(getContext(), SitedetailActivity.class);
+                startActivity(intent);
+            }
+        });
+        RelativeLayout relativeLayoutcustomer = (RelativeLayout) view.findViewById(R.id.customer);//customer  ll_tuisong
+        relativeLayoutcustomer.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(getContext(), CoustomerActivity.class);
+                startActivity(intent);
+            }
+        });
+        RelativeLayout relativeLayoutcustomer3 = (RelativeLayout) view.findViewById(R.id.rl_fire);//customer  ll_tuisong  rl_history   rl_qusstion
+        relativeLayoutcustomer3.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(getContext(), HistoryActivity.class);
+                startActivity(intent);
+            }
+        });
+        RelativeLayout relativeLayoutcustomer4 = (RelativeLayout) view.findViewById(R.id.rl_qusstion);//customer  ll_tuisong  rl_history   rl_qusstion
+        relativeLayoutcustomer4.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(getContext(), QuesstionActivity.class);
+                startActivity(intent);
+            }
+        });
+        butterKnife=ButterKnife.bind(this, view);
+        name.setText(Data.getName());
+        tel.setText(Data.getPhoto());
+        Glide.with(this).load(Data.getUrlPicture()).apply(new RequestOptions().error(R.mipmap.people3)).into(image_head);
+        imageViewset.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(getContext(),SetupActivity.class);
+                startActivity(intent);
+            }
+        });
+        return view;
+    }
+
+    private void getPicture(){
+        mActivity.runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                Uri uri = Uri.fromFile(new File(Data.getUrlPicture()));
+                image_head.setImageURI(uri);
+            }
+        });
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        butterKnife.unbind();
+    }
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        this.mActivity = (Activity) context;
+    }
+}

+ 22 - 0
app/src/main/res/drawable/tab_btn_files.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+   <!-- <item android:drawable="@mipmap/home_detail_btn_p" android:state_selected="true"/>
+    <item android:drawable="@mipmap/home_detail_btn_p" android:state_focused="true"/>
+    <item android:drawable="@mipmap/home_detail_btn_n"/>-->
+
+    <item android:state_selected="true">
+        <layer-list>
+            <item android:width="25dp" android:height="25dp" android:drawable="@mipmap/first"/>
+        </layer-list>
+    </item>
+    <item android:state_focused="true">
+        <layer-list>
+            <item android:width="25dp" android:height="25dp" android:drawable="@mipmap/first"/>
+        </layer-list>
+    </item>
+    <item><!-- 默认状态 -->
+        <layer-list>
+            <item android:width="25dp" android:height="25dp" android:drawable="@mipmap/first1"/>
+        </layer-list>
+    </item>
+</selector>

+ 22 - 0
app/src/main/res/drawable/tab_btn_moni.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+   <!-- <item android:drawable="@mipmap/home_detail_btn_p" android:state_selected="true"/>
+    <item android:drawable="@mipmap/home_detail_btn_p" android:state_focused="true"/>
+    <item android:drawable="@mipmap/home_detail_btn_n"/>-->
+
+    <item android:state_selected="true">
+        <layer-list>
+            <item android:width="25dp" android:height="25dp" android:drawable="@mipmap/first"/>
+        </layer-list>
+    </item>
+    <item android:state_focused="true">
+        <layer-list>
+            <item android:width="25dp" android:height="25dp" android:drawable="@mipmap/first"/>
+        </layer-list>
+    </item>
+    <item><!-- 默认状态 -->
+        <layer-list>
+            <item android:width="25dp" android:height="25dp" android:drawable="@mipmap/first1"/>
+        </layer-list>
+    </item>
+</selector>

+ 0 - 14
app/src/main/res/layout/activity_main.xml

@@ -13,11 +13,6 @@
         android:layout_height="0dp"
         android:layout_weight="1" />
 
-    <!-- <ImageView
-         android:layout_width="match_parent"
-         android:layout_height="1dp"
-         android:background="@android:color/darker_gray"
-         />-->
     <View
         android:layout_width="match_parent"
         android:layout_height="0.3dp"
@@ -32,15 +27,6 @@
 
         >
 
-        <!--    <Button
-                android:id="@+id/btn_tab_chat"
-                style="@style/Text.Tab_Button"
-                android:drawableTop="@drawable/tab_btn_detail"
-                android:tag="chat"
-                android:text="@string/text_tab_chat" />-->
-
-
-
         <Button
             android:id="@+id/btn_tab_chat"
             style="@style/Text.Tab_Button"

+ 61 - 0
app/src/main/res/layout/activity_main_company.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context="com.silence.tech.ui.MainCompanyActivity">
+
+    <FrameLayout
+        android:id="@+id/fragment_container"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0.3dp"
+        android:background="#444"
+        />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/footer_height"
+        android:background="#fff"
+        android:orientation="horizontal"
+        >
+
+        <Button
+            android:id="@+id/btn_tab_moni"
+            style="@style/Text.Tab_Button"
+            android:drawableTop="@drawable/tab_btn_moni"
+            android:tag="moni"
+            android:text="@string/text_tab_moni"
+            />
+
+        <Button
+            android:id="@+id/btn_tab_files"
+            style="@style/Text.Tab_Button1"
+            android:drawableTop="@drawable/tab_btn_files"
+            android:tag="files"
+            android:text="@string/text_tab_files"/>
+
+        <Button
+            android:id="@+id/btn_tab_contact"
+            style="@style/Text.Tab_Button2"
+            android:drawableTop="@drawable/tab_btn_account"
+            android:tag="contact"
+            android:text="@string/text_tab_contact" />
+
+        <Button
+            android:id="@+id/btn_tab_mine"
+            style="@style/Text.Tab_Button3"
+            android:drawableTop="@drawable/tab_btn_mine"
+            android:tag="mine"
+            android:text="@string/text_tab_mine"
+            />
+
+    </LinearLayout>
+
+</LinearLayout>

+ 9 - 0
app/src/main/res/layout/activity_moni_abnormal.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.silence.tech.ui.moni.activity.MoniAbnormalActivity">
+
+</android.support.constraint.ConstraintLayout>

+ 9 - 0
app/src/main/res/layout/activity_moni_fault.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.silence.tech.ui.moni.activity.MoniFaultActivity">
+
+</android.support.constraint.ConstraintLayout>

+ 17 - 0
app/src/main/res/layout/activity_moni_fire_alarm.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context="com.silence.tech.ui.moni.activity.MoniFireAlarmActivity">
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/rv_fire_alarm"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+    </android.support.v7.widget.RecyclerView>
+
+</android.support.constraint.ConstraintLayout>

+ 9 - 0
app/src/main/res/layout/activity_moni_hid_trouble.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.silence.tech.ui.moni.activity.MoniHidTroubleActivity">
+
+</android.support.constraint.ConstraintLayout>

+ 29 - 0
app/src/main/res/layout/fragment_device_tech.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <com.scwang.smartrefresh.layout.SmartRefreshLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+</LinearLayout>

+ 29 - 0
app/src/main/res/layout/fragment_files.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <com.scwang.smartrefresh.layout.SmartRefreshLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+</LinearLayout>

+ 253 - 0
app/src/main/res/layout/fragment_mine_tech.xml

@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="175dp"
+            android:background="@drawable/user_background"
+            >
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:layout_marginLeft="30dp"
+                android:layout_marginBottom="45dp">
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="2.0"
+                    android:gravity="center">
+                    <de.hdodenhof.circleimageview.CircleImageView
+                        xmlns:app="http://schemas.android.com/apk/res-auto"
+                        android:layout_width="60dp"
+                        android:layout_height="60dp"
+                        android:id="@+id/image_head"
+                        android:src="@mipmap/people3"
+                        app:civ_border_width="1dp"
+                        app:civ_border_color="#FFF"
+                        />
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:orientation="vertical">
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="25dp"
+                            android:id="@+id/name"
+                            android:textColor="#fff"
+                            android:textSize="17sp"
+                            android:gravity="center_vertical"
+                            android:text="小李" />
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="25dp"
+                            android:textColor="#fff"
+                            android:id="@+id/tel"
+                            android:textSize="17sp"
+                            android:gravity="center_vertical"
+                            android:text="15878784949" />
+
+                    </LinearLayout>
+                </LinearLayout>
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"></LinearLayout>
+        </RelativeLayout>
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="63dp"
+            android:background="#00000000">
+            <ImageView
+                android:id="@+id/btn_menu"
+                android:layout_width="40dp"
+                android:layout_height="32dp"
+                android:padding="5dp"
+                android:layout_alignParentRight="true"
+                android:layout_alignParentBottom="true"
+                android:layout_marginRight="10dp"
+                android:layout_marginBottom="6dp"
+                android:src="@mipmap/setup" />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerHorizontal="true"
+                android:layout_alignParentBottom="true"
+                android:layout_marginBottom="6dp"
+                android:textColor="#fff"
+                android:textSize="19sp"
+                android:text="我的" />
+        </RelativeLayout>
+    </RelativeLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:id="@+id/rl">
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:layout_alignParentStart="true"
+                android:layout_alignParentLeft="true"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="10dp">
+                <ImageView
+                    android:layout_width="16dp"
+                    android:layout_height="16dp"
+                    android:background="@mipmap/placemansge" />
+                <TextView
+                    android:id="@+id/tv_place"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginLeft="10dp"
+                    android:textColor="@color/myblack"
+                    android:textSize="16sp"
+                    android:text="场所管理" />
+            </LinearLayout>
+            <ImageView
+                android:layout_width="14dp"
+                android:layout_height="14dp"
+                android:layout_alignParentEnd="true"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginEnd="10dp"
+                android:layout_marginRight="10dp"
+                android:background="@mipmap/right" />
+        </RelativeLayout>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#cccccc"></View>
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:id="@+id/rl_fire">
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:layout_alignParentStart="true"
+                android:layout_alignParentLeft="true"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="10dp">
+                <ImageView
+                    android:layout_width="16dp"
+                    android:layout_height="16dp"
+                    android:background="@mipmap/fire" />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginLeft="10dp"
+                    android:textColor="@color/myblack"
+                    android:textSize="16sp"
+                    android:text="火警通知" />
+            </LinearLayout>
+            <ImageView
+                android:layout_width="14dp"
+                android:layout_height="14dp"
+                android:layout_alignParentEnd="true"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginEnd="10dp"
+                android:layout_marginRight="10dp"
+                android:background="@mipmap/right" />
+        </RelativeLayout>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#cccccc"></View>
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:id="@+id/rl_qusstion">
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:layout_alignParentStart="true"
+                android:layout_alignParentLeft="true"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="10dp">
+                <ImageView
+                    android:layout_width="16dp"
+                    android:layout_height="16dp"
+                    android:background="@mipmap/question1" />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginLeft="10dp"
+                    android:textColor="@color/myblack"
+                    android:textSize="16sp"
+                    android:text="常见问题" />
+            </LinearLayout>
+            <ImageView
+                android:layout_width="14dp"
+                android:layout_height="14dp"
+                android:layout_alignParentEnd="true"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginEnd="10dp"
+                android:layout_marginRight="10dp"
+                android:background="@mipmap/right" />
+        </RelativeLayout>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#cccccc"></View>
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:id="@+id/customer">
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:layout_alignParentStart="true"
+                android:layout_alignParentLeft="true"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="10dp">
+                <ImageView
+                    android:layout_width="16dp"
+                    android:layout_height="16dp"
+                    android:background="@mipmap/callphoto" />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginLeft="10dp"
+                    android:textColor="@color/myblack"
+                    android:textSize="16sp"
+                    android:text="客服电话" />
+            </LinearLayout>
+            <ImageView
+                android:layout_width="14dp"
+                android:layout_height="14dp"
+                android:layout_alignParentEnd="true"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginEnd="10dp"
+                android:layout_marginRight="10dp"
+                android:background="@mipmap/right" />
+        </RelativeLayout>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#cccccc"></View>
+    </LinearLayout>
+</LinearLayout>

+ 134 - 0
app/src/main/res/layout/fragment_moni.xml

@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <com.scwang.smartrefresh.layout.SmartRefreshLayout
+        android:id="@+id/srl_refresh"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <include layout="@layout/navi_head"/>
+
+            <LinearLayout
+                android:id="@+id/ll_top"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_margin="@dimen/margin_side"
+                android:orientation="horizontal">
+
+                <LinearLayout
+                    android:id="@+id/ll_fire_alarm"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center">
+
+                    <ImageView
+                        android:id="@+id/iv_fire_alarm"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content" />
+
+                    <TextView
+                        android:id="@+id/tv_fire_alarm"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="@color/myblack"
+                        android:textSize="16sp"
+                        android:text="1"/>
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/ll_fault"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center">
+
+                    <ImageView
+                        android:id="@+id/iv_fault"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content" />
+
+                    <TextView
+                        android:id="@+id/tv_fault"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="@color/myblack"
+                        android:textSize="16sp"
+                        android:text="2"/>
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/ll_abnormal"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center">
+
+                    <ImageView
+                        android:id="@+id/iv_abnormal"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content" />
+
+                    <TextView
+                        android:id="@+id/tv_abnormal"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="@color/myblack"
+                        android:textSize="16sp"
+                        android:text="3"/>
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/ll_hidtrouble"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical"
+                    android:gravity="center">
+
+                    <ImageView
+                        android:id="@+id/iv_hidtrouble"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content" />
+
+                    <TextView
+                        android:id="@+id/tv_hidtrouble"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="@color/myblack"
+                        android:textSize="16sp"
+                        android:text="4"/>
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="5dp"
+                android:background="@color/mygray"/>
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/rv_moni_msg"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"/>
+
+        </LinearLayout>
+
+    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+</LinearLayout>

+ 0 - 3
app/src/main/res/layout/item_recylerview.xml

@@ -72,9 +72,6 @@
                 android:text="设备状态:"
                 android:textSize="15sp" />
 
-
-
-
                 <TextView
                     android:id="@+id/fire"
                     android:layout_width="wrap_content"

+ 4 - 1
app/src/main/res/values/strings.xml

@@ -5,7 +5,8 @@
     <string name="text_tab_contact">设备</string>
     <string name="text_tab_find">消息</string>
     <string name="text_tab_mine">我的</string>
-
+    <string name="text_tab_moni">监控</string>
+    <string name="text_tab_files">档案</string>
 
     <!--<string name="app_name">MyZxing</string>-->
     <string name="confirm">确认</string>
@@ -109,6 +110,8 @@
     <string name="state_normal">正常</string>
     <string name="state_fault">故障</string>
     <string name="state_fire">火警</string>
+    <string name="state_abnormal">异常</string>
+    <string name="state_hidtrouble">隐患</string>
 
     <!-- 摄像头设置 -->
     <string name="setup">设置</string>