Prechádzať zdrojové kódy

6.27.3
推送管理逻辑修改
设备关联管理界面重写
设备详情页信息修改

Moon 6 rokov pred
rodič
commit
be067d099b
31 zmenil súbory, kde vykonal 950 pridanie a 417 odobranie
  1. 80 80
      app/app.iml
  2. 8 5
      app/src/main/AndroidManifest.xml
  3. 9 6
      app/src/main/java/com/silence/commonframe/Dialog/BaseDialog.java
  4. 62 70
      app/src/main/java/com/silence/commonframe/activity/DeviceContextManagementActivity.java
  5. 0 49
      app/src/main/java/com/silence/commonframe/activity/Devicedetail3Activity.java
  6. 22 0
      app/src/main/java/com/silence/commonframe/activity/Interface/NewContextManagementListener.java
  7. 2 2
      app/src/main/java/com/silence/commonframe/activity/MainActivity.java
  8. 6 5
      app/src/main/java/com/silence/commonframe/activity/NewAddContextDeviceActivity.java
  9. 234 0
      app/src/main/java/com/silence/commonframe/activity/NewContextManagementActivity.java
  10. 10 14
      app/src/main/java/com/silence/commonframe/activity/NewDeviceDetailActivity.java
  11. 15 16
      app/src/main/java/com/silence/commonframe/activity/mine/activity/AddlinkmanActivity.java
  12. 6 3
      app/src/main/java/com/silence/commonframe/activity/mine/activity/MineFragment.java
  13. 21 8
      app/src/main/java/com/silence/commonframe/activity/mine/activity/setup/FireMessageActivity.java
  14. 0 1
      app/src/main/java/com/silence/commonframe/activity/mine/presenter/SiteDetailPresenter.java
  15. 4 4
      app/src/main/java/com/silence/commonframe/activity/presenter/NewAddDecicePresenter.java
  16. 112 0
      app/src/main/java/com/silence/commonframe/activity/presenter/NewContextManagementPresenter.java
  17. 128 0
      app/src/main/java/com/silence/commonframe/adapter/ContextManagementCameraDetailAdapter.java
  18. 133 0
      app/src/main/java/com/silence/commonframe/adapter/ContextManagementFireDetailAdapter.java
  19. 1 3
      app/src/main/java/com/silence/commonframe/adapter/DeviceContextAdapterCamera.java
  20. 2 0
      app/src/main/java/com/silence/commonframe/common/constant/UrlConstants.java
  21. 0 1
      app/src/main/java/com/silence/commonframe/fragment/FirstFragment.java
  22. 10 34
      app/src/main/java/com/silence/commonframe/fragment/NewDeviceFragment.java
  23. 27 5
      app/src/main/java/com/silence/commonframe/utils1/AddDeviceUtils.java
  24. 1 0
      app/src/main/java/com/silence/tech/ui/moni/Interface/MoniListener.java
  25. 7 2
      app/src/main/java/com/silence/tech/ui/moni/activity/MoniFragment.java
  26. 4 0
      app/src/main/java/com/silence/tech/ui/moni/presenter/MoniPresenter.java
  27. 1 1
      app/src/main/res/layout/activity_addlinkman.xml
  28. 4 1
      app/src/main/res/layout/activity_device_context_management.xml
  29. 16 102
      app/src/main/res/layout/activity_device_detail_new.xml
  30. 24 5
      app/src/main/res/layout/activity_fire_message.xml
  31. 1 0
      app/src/main/res/values/strings.xml

+ 80 - 80
app/app.iml

@@ -17,7 +17,8 @@
         <option name="ALLOW_USER_CONFIGURATION" value="false" />
         <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
         <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
-        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
+        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/build/generated/res/rs/debug;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
+        <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="" />
         <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
       </configuration>
     </facet>
@@ -28,14 +29,12 @@
     <exclude-output />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources/debug/processDebugResources/r" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources/debugAndroidTest/processDebugAndroidTestResources/r" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
@@ -84,6 +83,8 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources" />
+      <excludeFolder url="file://$MODULE_DIR$/build/generated/source/r" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotation_processor_list" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/apk_list" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
@@ -96,7 +97,6 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_aapt_derived_proguard_rules" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_main_dex_list" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
@@ -113,110 +113,110 @@
     </content>
     <orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.databinding:library-1.2.1" level="project" />
-    <orderEntry type="library" name="Gradle: __local_aars__:E.\MyProject\Android_zxyun\app\libs\dewarp.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.databinding:adapters-1.2.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:cardview-v7-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:drawerlayout-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.airbnb.android:lottie-2.6.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-1.1.3" level="project" />
-    <orderEntry type="library" name="Gradle: com.github.SheHuan:NiceImageView-1.0.3" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: cn.jiguang.sdk:jcore:1.2.6@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.airbnb.android:lottie:2.6.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-14@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.github.bumptech.glide:annotations:4.8.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:exifinterface-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.flyco.dialog:FlycoDialog_Lib-1.3.2" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: android.arch.core:runtime-1.1.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.contrarywind:Android-PickerView-4.1.6" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support:multidex-instrumentation-1.0.2" level="project" />
+    <orderEntry type="library" name="Gradle: cn.bingoogolapple:bga-refreshlayout:1.1.7@aar" level="project" />
     <orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxjava:2.1.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.retrofit2:converter-gson:2.4.0@jar" level="project" />
-    <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.lzy.net:okgo-2.1.4" level="project" />
+    <orderEntry type="library" name="Gradle: com.wx.wheelview:wheelview:1.3.3@aar" 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:support-v4:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar" level="project" />
-    <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime-1.1.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.github.PhilJay:MPAndroidChart-v3.1.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.jakewharton:butterknife-8.8.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.facebook.fresco:fbcore-1.3.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide:4.8.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.5@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.scwang.smartrefresh:SmartRefreshLayout-1.1.0-alpha-14" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout-28.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:exifinterface:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: org.reactivestreams:reactive-streams:1.0.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel-1.1.1" level="project" />
     <orderEntry type="library" name="Gradle: com.jakewharton:butterknife-annotations:8.8.1@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide-4.8.0" level="project" />
-    <orderEntry type="library" name="Gradle: __local_aars__:E.\MyProject\Android_zxyun\app\libs\Core.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.contrarywind:wheelview-4.0.8" level="project" />
-    <orderEntry type="library" name="Gradle: cn.bingoogolapple:bga-baseadapter-1.2.9" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:documentfile-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:design-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:cursoradapter-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.facebook.fresco:animated-gif-1.3.0" level="project" />
-    <orderEntry type="library" name="Gradle: __local_aars__:E.\MyProject\Android_zxyun\app\libs\LibFunSDK.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="Gradle: top.zibin:Luban-1.1.8" level="project" />
+    <orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid:2.0.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.github.orhanobut:hawk:1.21@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout:1.1.3@aar" level="project" />
+    <orderEntry type="library" name="Gradle: top.zibin:Luban:1.1.8@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.contrarywind:wheelview:4.0.8@aar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-base-1.3.0" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline:1.3.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.10.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:transition-28.0.0" level="project" />
     <orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.8.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-compat-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: cn.jiguang.sdk:jpush-3.1.7" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-1.3.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.facebook.fresco:drawee-1.3.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:interpolator-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-core-utils-28.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\Android\Project\Android-zxyun0511\Android-zxyun\app\libs\fastjson-1.2.8.jar:unspecified@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.flyco.dialog:FlycoDialog_Lib:1.3.2@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.facebook.fresco:animated-gif:1.3.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\Android\Project\Android-zxyun0511\Android-zxyun\app\libs\dewarp.jar:unspecified@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:design:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\Android\Project\Android-zxyun0511\Android-zxyun\app\libs\stickygridheaders.jar:unspecified@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.facebook.fresco:fresco:1.3.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.facebook.fresco:animated-base:1.3.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.amap.api:location:4.6.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-base:1.3.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.retrofit2:retrofit:2.4.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.databinding:library:1.2.1@aar" 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: com.wx.wheelview:wheelview-1.3.3" level="project" />
-    <orderEntry type="library" name="Gradle: com.youth.banner:banner-1.4.9" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:multidex-1.0.3" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-1.1.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.lzy.net:okgo:2.1.4@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:cardview-v7:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\Android\Project\Android-zxyun0511\Android-zxyun\app\libs\Core.jar:unspecified@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.facebook.fresco:drawee:1.3.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.14.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:loader-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-v4-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.github.CymChad:BaseRecyclerViewAdapterHelper-2.9.46" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:viewpager-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: __local_aars__:E.\MyProject\Android_zxyun\app\libs\commons-lang3-3.1.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.facebook.fresco:animated-base-1.3.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:customview-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: cn.jiguang.sdk:jcore-1.2.6" level="project" />
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\Android\Project\Android-zxyun0511\Android-zxyun\app\libs\LibFunSDK.jar:unspecified@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: __local_aars__:D.\Android\Project\Android-zxyun0511\Android-zxyun\app\libs\commons-lang3-3.1.jar:unspecified@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.jakewharton:butterknife:8.8.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:transition:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:drawerlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.8.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: cn.bingoogolapple:bga-baseadapter:1.2.9@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.mylhyl:acp:1.2.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.youth.banner:banner:1.4.9@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.parse.bolts:bolts-tasks:1.4.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-core-ui-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.facebook.fresco:fresco-1.3.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.facebook.fresco:fbcore:1.3.0@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support:multidex-instrumentation:1.0.2@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.yalantis:ucrop-2.2.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.github.orhanobut:hawk-1.21" level="project" />
-    <orderEntry type="library" name="Gradle: com.mylhyl:acp-1.2.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.github.SheHuan:NiceImageView:1.0.3@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.nostra13.universalimageloader:universal-image-loader:1.9.5@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: __local_aars__:E.\MyProject\Android_zxyun\app\libs\stickygridheaders.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid-2.0.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-28.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.databinding:adapters:1.2.1@aar" level="project" />
     <orderEntry type="library" name="Gradle: androidx.annotation:annotation:1.0.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:print-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.scwang.smartrefresh:SmartRefreshHeader-1.1.0-alpha-14" level="project" />
+    <orderEntry type="library" name="Gradle: com.contrarywind:Android-PickerView:4.1.6@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.picasso:picasso:2.5.2@jar" level="project" />
-    <orderEntry type="library" name="Gradle: __local_aars__:E.\MyProject\Android_zxyun\app\libs\fastjson-1.2.8.jar:unspecified@jar" level="project" />
     <orderEntry type="library" name="Gradle: org.greenrobot:eventbus:3.1.1@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-fragment-28.0.0" level="project" />
-    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core-1.1.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-28.0.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.46@aar" level="project" />
+    <orderEntry type="library" name="Gradle: cn.jiguang.sdk:jpush:3.1.7@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:multidex:1.0.3@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.github.PhilJay:MPAndroidChart:v3.1.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.yalantis:ucrop:2.2.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-media-compat:28.0.0@aar" level="project" />
+    <orderEntry type="module" module-name="photolibrary" />
     <orderEntry type="module" module-name="library" />
     <orderEntry type="module" module-name="nicevideoplayer" />
-    <orderEntry type="module" module-name="photolibrary" />
     <orderEntry type="library" name="Gradle: org.apache.http.legacy-android-28" level="project" />
   </component>
 </module>

+ 8 - 5
app/src/main/AndroidManifest.xml

@@ -184,7 +184,7 @@
             android:screenOrientation="portrait" />
         <!-- 推送管理 -->
         <activity
-            android:name=".activity.mine.activity.FireMessageActivity"
+            android:name=".activity.mine.activity.setup.FireMessageActivity"
             android:screenOrientation="portrait" />
         <!-- 火警通知 -->
         <activity
@@ -208,12 +208,12 @@
             android:theme="@style/Transparent" />
         <!-- 设置界面 -->
         <activity
-            android:name=".activity.mine.activity.SetupActivity"
+            android:name=".activity.mine.activity.setup.SetupActivity"
             android:launchMode="singleTask"
             android:screenOrientation="portrait" />
         <!-- 关于我们 -->
         <activity
-            android:name=".activity.mine.activity.AboutActivity"
+            android:name=".activity.mine.activity.setup.AboutActivity"
             android:screenOrientation="portrait" />
         <!-- 信息上报 -->
         <activity android:name=".activity.message.activity.NewSubmitActivity"
@@ -273,16 +273,19 @@
 
         <!-- 用户协议 -->
         <activity
-            android:name=".activity.mine.activity.UserAgreementActivity"
+            android:name=".activity.mine.activity.setup.UserAgreementActivity"
             android:screenOrientation="portrait" />
         <!-- 隐私政策 -->
         <activity
-            android:name=".activity.mine.activity.PrivacyPolicyActivity"
+            android:name=".activity.mine.activity.setup.PrivacyPolicyActivity"
             android:screenOrientation="portrait" />
         <activity
             android:name=".activity.DeviceContextManagementActivity"
             android:screenOrientation="portrait" />
         <activity
+            android:name=".activity.NewContextManagementActivity"
+            android:screenOrientation="portrait" />
+        <activity
             android:name=".activity.NewAddContextDeviceActivity"
             android:screenOrientation="portrait" />
         <activity

+ 9 - 6
app/src/main/java/com/silence/commonframe/Dialog/BaseDialog.java

@@ -4,6 +4,7 @@ import android.content.Context;
 import android.view.View;
 import com.silence.commonframe.Dialog.effects.Effectstype;
 import com.silence.commonframe.Dialog.effects.FWorkDialogBuilder;
+import com.silence.commonframe.R;
 
 public class BaseDialog {
     DialogCallBack dialogCallBack;
@@ -13,14 +14,16 @@ public class BaseDialog {
         final FWorkDialogBuilder dialogBuilder = FWorkDialogBuilder.getInstance(mContext);
         dialogBuilder
                 .withTitle(title)                                  //.withTitle(null)  no title
-                .withTitleColor("#333333")
-                .withDividerColor("#11000000")                              //def
+                .withTitleColor("#000000")
+                .withDividerColor("#cccccc")                              //def
                 .withMessage(message)            //.withMessage(null)  no Msg
-                .withMessageColor("#FF666666")                              //def  | withMessageColor(int resid)
+                .withMessageColor("#444444")                              //def  | withMessageColor(int resid)
                 .withDialogColor("#FFFFFFFF")                               //def  | withDialogColor(int resid)                               //def
-                .isCancelableOnTouchOutside(true)                           //def    | isCancelable(true)
-                .withDuration(700)                                          //def
-                .withEffect(Effectstype.RotateBottom)                                         //def Effectstype.Slidetop
+                .isCancelableOnTouchOutside(false)                           //def    | isCancelable(true)
+                .withDuration(500)                                          //def
+                .withEffect(Effectstype.SlideBottom)                                         //def Effectstype.Slidetop
+                .withButtonDrawableBtn1(R.drawable.bg_corner_blue)
+                .withButtonDrawableBtn2(R.drawable.bg_corner_blue)
                 .withButton1Text(LeftBtn)//def gone
                 .withButton2Text(RightBtn)
                 .setButton1Click(new View.OnClickListener() {

+ 62 - 70
app/src/main/java/com/silence/commonframe/activity/DeviceContextManagementActivity.java

@@ -24,6 +24,7 @@ import com.silence.commonframe.ApiService;
 import com.silence.commonframe.R;
 import com.silence.commonframe.adapter.DeviceContextAdapter;
 import com.silence.commonframe.adapter.DeviceContextAdapterCamera;
+import com.silence.commonframe.base.basemvp.BaseActivity;
 import com.silence.commonframe.bean.IsDeviceChange;
 import com.silence.commonframe.model.DelContextDevice;
 import com.silence.commonframe.model.DelContextDevice_success;
@@ -51,7 +52,7 @@ import okhttp3.Response;
  * @author 郑嘉明
  * device_context_checkbox、device_context_name、device_context_state、device_context_location、context_device_camera_amount、context_device_smokedetector_amount
  */
-public class DeviceContextManagementActivity extends AppCompatActivity {
+public class DeviceContextManagementActivity extends BaseActivity {
 
     /**
      * 导航栏信息
@@ -99,59 +100,71 @@ public class DeviceContextManagementActivity extends AppCompatActivity {
     private int devId;
     private    Boolean flag = false;
 
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_device_context_management);
-        ButterKnife.bind(this);
-        AtyContainer.getInstance().addActivity(this);
-        navi_head_text.setText(R.string.devicedetail_associateddevicemanagement);       //设置标题
-        navi_head_text_right.setText(R.string.devicecontext_management);                //设置导航栏右侧文字
-        context_device_del_submit.setVisibility(View.GONE);     //提交按钮默认消失
-        //设置全屏
-        initWindows();
-
-        IsDeviceChange.setIsContextCamera(true);
-
-        //获取传递过来的值
-        getIntentMsg();
-//        device_id = Data.getDevIdsCamera();
-
-        //获取关联设备
-        getContextDevice();
-        //设置管理菜单
-        getManageMenu();
-        //提交点击事件
-        del_sumbitOnClickListener();
-
-//        context_device_del_submit.setOnClickListener(new View.OnClickListener() {
-//            @Override
-//            public void onClick(View v) {
-//                listCameraDel.addAll(cameraAdapter.getCheckBoxIDList());
-//                listSmokeDel.addAll(smokeAdapter.getCheckBoxIDList());
+//    @Override
+//    protected void onCreate(Bundle savedInstanceState) {
+//        super.onCreate(savedInstanceState);
+//        setContentView(R.layout.activity_device_context_management);
+//        ButterKnife.bind(this);
+//        AtyContainer.getInstance().addActivity(this);
+//        navi_head_text.setText(R.string.devicedetail_associateddevicemanagement);       //设置标题
+//        navi_head_text_right.setText(R.string.devicecontext_management);                //设置导航栏右侧文字
+//        context_device_del_submit.setVisibility(View.GONE);     //提交按钮默认消失
+//        //设置全屏
+//        initWindows();
 //
+//        IsDeviceChange.setIsContextCamera(true);
 //
+//        //获取传递过来的值
+//        getIntentMsg();
+////        device_id = Data.getDevIdsCamera();
 //
+//        //获取关联设备
+//        getContextDevice();
+//        //设置管理菜单
+//        getManageMenu();
+//        //提交点击事件
+//        del_sumbitOnClickListener();
 //
-//                if (listCameraDel.size() != 0 || listSmokeDel.size() != 0){
-//                    //解除设备关联关系
-//                    delContextDevice();
-//                    change = 1;     //页面改变
-//                    cameraAdapter.removeAdapterItem();  //adapter中删除要删除的item并刷新
-//                    smokeAdapter.removeAdapterItem();
-//                    listCameraDel.clear();              //删完清空
-//                    listSmokeDel.clear();
-//                    cameraAdapter.setIsShow(false);                    //设置checkbox不显示
-//                    cameraAdapter.notifyDataSetChanged();                    //刷新adapter
-//                    smokeAdapter.setIsShow(false);                    //设置checkbox不显示
-//                    smokeAdapter.notifyDataSetChanged();                    //刷新adapter
-//                    context_device_del_submit.setVisibility(View.GONE);     //提交按钮消失
-//                }else {
-//                    Toast.makeText(DeviceContextManagementActivity.this,"请先选择要解除关联的设备",Toast.LENGTH_SHORT).show();
-//                }
+////        context_device_del_submit.setOnClickListener(new View.OnClickListener() {
+////            @Override
+////            public void onClick(View v) {
+////                listCameraDel.addAll(cameraAdapter.getCheckBoxIDList());
+////                listSmokeDel.addAll(smokeAdapter.getCheckBoxIDList());
 //
-//            }
-//        });
+////                if (listCameraDel.size() != 0 || listSmokeDel.size() != 0){
+////                    //解除设备关联关系
+////                    delContextDevice();
+////                    change = 1;     //页面改变
+////                    cameraAdapter.removeAdapterItem();  //adapter中删除要删除的item并刷新
+////                    smokeAdapter.removeAdapterItem();
+////                    listCameraDel.clear();              //删完清空
+////                    listSmokeDel.clear();
+////                    cameraAdapter.setIsShow(false);                    //设置checkbox不显示
+////                    cameraAdapter.notifyDataSetChanged();                    //刷新adapter
+////                    smokeAdapter.setIsShow(false);                    //设置checkbox不显示
+////                    smokeAdapter.notifyDataSetChanged();                    //刷新adapter
+////                    context_device_del_submit.setVisibility(View.GONE);     //提交按钮消失
+////                }else {
+////                    Toast.makeText(DeviceContextManagementActivity.this,"请先选择要解除关联的设备",Toast.LENGTH_SHORT).show();
+////                }
+////
+////            }
+////        });
+//
+//    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_device_context_management;
+    }
+
+    @Override
+    public void initPresenter() {
+
+    }
+
+    @Override
+    public void initView() {
 
     }
 
@@ -275,7 +288,6 @@ public class DeviceContextManagementActivity extends AppCompatActivity {
      * 删除关联设备关系
      */
     private void delContextDevice() {
-
 //        for (int i = 0; i < listCameraDel.size(); i++){
 //            String url1 = ApiService.httpUrl1 + "/app/deleteDeviceConnect?id="+listCameraDel.get(i);
 //            OkGo.get(url1)
@@ -332,16 +344,9 @@ public class DeviceContextManagementActivity extends AppCompatActivity {
                             }
                         }
                     });
-
-//            if (flag){
-//                smokeAdapter.removeAdapterItem();
-//            }
-
             flag = true;
         }
 
-
-
         for (int i = 0; i < listSmokeDel.size(); i++) {
             String url2 = ApiService.httpUrl1 +Data.getConfigUrl()+ "/deleteDeviceConnect?id=" + listSmokeDel.get(i);
             OkGo.get(url2)
@@ -367,11 +372,8 @@ public class DeviceContextManagementActivity extends AppCompatActivity {
                         }
                     });
 
-
             smokeAdapter.removeAdapterItem();
-
         }
-
         rowSmoke =  rowsFiredata  - listSmokeDel.size();
       //  Toast.makeText(DeviceContextManagementActivity.this, "烟感设备删除成功", Toast.LENGTH_SHORT).show();
     }
@@ -415,13 +417,7 @@ public class DeviceContextManagementActivity extends AppCompatActivity {
             if (flag){
                     cameraAdapter.removeAdapterItem();
                     }
-
             flag = true;
-
-//            if (listCameraDel.size() != 1){
-//                    cameraAdapter.removeAdapterItem();
-//                    }
-
         }
     //    if (listCameraDel.size() > 1){
             for (int i = 0; i < listCameraDel.size(); i++){
@@ -461,11 +457,7 @@ public class DeviceContextManagementActivity extends AppCompatActivity {
                 cameraAdapter.removeAdapterItem();
             }
     //    }
-
-
-
         rowCamere =   rowsCameradata  - listCameraDel.size();
-
 //        for (int i = 0; i < listSmokeDel.size(); i++) {
 //            String url2 = ApiService.httpUrl1 + "/app/deleteDeviceConnect?id=" + listSmokeDel.get(i);
 //            OkGo.get(url2)

+ 0 - 49
app/src/main/java/com/silence/commonframe/activity/Devicedetail3Activity.java

@@ -139,13 +139,6 @@ public class Devicedetail3Activity extends AppCompatActivity {
 
                                         hashMap.put("trouble_type",trouble_type);
 
-
-
-
-
-
-
-
                                         deviceName.add(name);
                                         list.add(id);
                                         listDeviceLocation.add(deviceLocation);
@@ -154,7 +147,6 @@ public class Devicedetail3Activity extends AppCompatActivity {
 
                                     runOnUiThread(new Runnable() {
 
-
                                         @Override
                                         public void run() {
                                             adapter1 = new MyAdapterSlideSite(Devicedetail3Activity.this, listmap);
@@ -174,8 +166,6 @@ public class Devicedetail3Activity extends AppCompatActivity {
                                                     intent.putExtra("deviceId",list.get(position));
                                                     intent.putExtra("devicelocation",listDeviceLocation.get(position));
                                                     startActivity(intent);
-
-
                                                 }
 
                                                 @Override
@@ -185,7 +175,6 @@ public class Devicedetail3Activity extends AppCompatActivity {
                                                     builder.setMessage("是否确定要删除该设备");
                                                     builder.setCancelable(false);
                                                     builder.setTitle("提示");
-
                                                     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                                         @Override
                                                         public void onClick(DialogInterface dialog, int which) {
@@ -206,12 +195,6 @@ public class Devicedetail3Activity extends AppCompatActivity {
                                                         }
                                                     });
                                                     builder.show();
-
-
-
-                                                    // adapter1.removeItem(position);
-
-
                                                 }
 
                                                 @Override
@@ -238,19 +221,8 @@ public class Devicedetail3Activity extends AppCompatActivity {
                     }
 
                 });
-
-
-
-
-
-
     }
 
-
-
-
-
-
     private void delDevices(String id) {
         String  url =   ApiService.httpUrl1+Data.getConfigUrl() +"/deleteDevice?ids="+ id;
         OkGo.get(url)
@@ -268,8 +240,6 @@ public class Devicedetail3Activity extends AppCompatActivity {
 //                        Device device = new Gson().fromJson(s,Device.class);
 //                        List<Device.DataBean.DataListBean>  listBeans =  device.getData().getDataList();
 //                        System.out.println("ss"+listBeans);
-
-
                         try {
                             JSONObject object = new JSONObject(s);
                             String code = object.getString("code");
@@ -282,32 +252,13 @@ public class Devicedetail3Activity extends AppCompatActivity {
 //                                Toast.makeText(Devicedetail3Activity.this,""+message,Toast.LENGTH_SHORT).show();
                                 return;
                             }
-
-
                         } catch (JSONException e) {
                             e.printStackTrace();
                         }
-
-
                     }
 
                 });
-
-
-
-
-
     }
-
-
-
-
-
-
-
-
-
-
     public void myclick(View view) {
         finish();
     }

+ 22 - 0
app/src/main/java/com/silence/commonframe/activity/Interface/NewContextManagementListener.java

@@ -0,0 +1,22 @@
+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.CameraDetailBean;
+import com.silence.commonframe.bean.ConnectDeviceBean;
+
+public interface NewContextManagementListener {
+    interface View{
+        String getDevId();
+
+        void onSuccess(ConnectDeviceBean data);
+        void onCameraSuccess(CameraDetailBean bean);
+        void onDelSuccess();
+        void onFile(String msg);
+    }
+    abstract class Presenter extends BasePresenter<View, BaseModel>{
+        public abstract void getConnect();
+        public abstract void getCameraId(String deviceId);
+        public abstract void deleteDeviceConnect(String deviceId);
+    }
+}

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

@@ -65,13 +65,13 @@ public class MainActivity extends BaseActivity implements OnFunLoginListener {
     private static final int MSG_SET_ALIAS = 101;
     public static boolean isForeground = false;
 
-    public List<FunDevice> mLanDeviceList = new ArrayList<>();
+    public static List<FunDevice> mLanDeviceList = new ArrayList<>();
 
     public void setLanDeviceList(List<FunDevice> mLanDeviceList){
        this.mLanDeviceList=mLanDeviceList;
     }
 
-    public List<FunDevice>  getLanDeviceList() {
+    public static List<FunDevice>  getLanDeviceList() {
         return mLanDeviceList;
     }
 

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

@@ -95,7 +95,8 @@ public class NewAddContextDeviceActivity extends BaseActivity implements NewAddD
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.tv_next:
-                presenter.addDevice();
+                presenter.chickDevice();
+//                presenter.addDevice();
                 break;
             case R.id.iv_qr_code:
                 //跳转到扫一扫页面
@@ -148,7 +149,7 @@ public class NewAddContextDeviceActivity extends BaseActivity implements NewAddD
 
     @Override
     public String getEtDeviceId() {
-         deviceId2=etCode.getText().toString().trim();
+        deviceId2=etCode.getText().toString().trim();
         return deviceId2;
     }
 
@@ -169,9 +170,9 @@ public class NewAddContextDeviceActivity extends BaseActivity implements NewAddD
 
     @Override
     public void afterTextChanged(Editable editable) {
-        if (temp.toString().trim().length()==16){
-            presenter.chickDevice();
-        }
+//        if (temp.toString().trim().length()==16){
+//            presenter.chickDevice();
+//        }
     }
 
     @Override

+ 234 - 0
app/src/main/java/com/silence/commonframe/activity/NewContextManagementActivity.java

@@ -0,0 +1,234 @@
+package com.silence.commonframe.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.StaggeredGridLayoutManager;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.silence.commonframe.R;
+import com.silence.commonframe.activity.Interface.NewContextManagementListener;
+import com.silence.commonframe.activity.presenter.NewContextManagementPresenter;
+import com.silence.commonframe.adapter.ContextManagementCameraDetailAdapter;
+import com.silence.commonframe.adapter.ContextManagementFireDetailAdapter;
+import com.silence.commonframe.base.basemvp.BaseActivity;
+import com.silence.commonframe.bean.CameraDetailBean;
+import com.silence.commonframe.bean.ConnectDeviceBean;
+import com.silence.commonframe.example.ActivityGuideDeviceCamera;
+import com.silence.commonframe.lib.funsdk.support.models.FunDevice;
+import com.silence.commonframe.utils.Data;
+import com.silence.commonframe.utils.ManagePopupMenu;
+import com.silence.commonframe.utils.TitlePopupMenu;
+import com.silence.commonframe.utils1.AddDeviceUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class NewContextManagementActivity extends BaseActivity implements NewContextManagementListener.View {
+
+    @BindView(R.id.context_device_del_submit)
+    LinearLayout llSubmit;      //提交按钮
+    @BindView(R.id.recycleview_camera)
+    RecyclerView rvCamera;    //摄像头列表
+    @BindView(R.id.recyclerview_smoke)
+    RecyclerView rvSmoke;    //烟感列表
+    @BindView(R.id.context_device_camera_amount)
+    TextView tvCameraNum;      //摄像头数量
+    @BindView(R.id.context_device_smokedetector_amount)
+    TextView tvSmokeNum;   //烟感数量
+    @BindView(R.id.hint_camera)
+    TextView tvNoCamera;   //提示无摄像头
+    @BindView(R.id.hint_smoke)
+    TextView tvNoSmoke;    //提示无烟感
+
+    private List<ConnectDeviceBean.CameradataBean.DataListBean> listCameraData = new ArrayList<>();
+    private List<ConnectDeviceBean.FiredataBean.DataListBeanX> listFireData = new ArrayList<>();
+
+    private ContextManagementFireDetailAdapter mFireAdapter;
+    private ContextManagementCameraDetailAdapter mCameraAdapter;
+
+    private List<String> listFireDel = new ArrayList<>();
+    private List<String> listCameraDel = new ArrayList<>();
+
+    private List<FunDevice> mLanDeviceList = new ArrayList<>();
+
+    private ManagePopupMenu manageMenu;     //管理菜单
+    AddDeviceUtils addDeviceUtils = new AddDeviceUtils();
+
+    private String deviceId;
+
+    NewContextManagementPresenter presenter;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_device_context_management;
+    }
+
+    @Override
+    public void initPresenter() {
+        presenter = new NewContextManagementPresenter(this,this);
+    }
+
+    @Override
+    public void initView() {
+        clickTitle(this,getResources().getString(R.string.devicedetail_associateddevicemanagement),getResources().getString(R.string.devicecontext_management),true)
+                .setRightClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        avoidDoubleClick(v);
+                        manageMenu.show(v, TitlePopupMenu.STYLE_ALIGN_THIS_BOTTOM_WINDOW_RIGHT);
+                    }
+                });
+
+        deviceId = getIntent().getStringExtra("deviceId");
+
+        manageMenu = new ManagePopupMenu(NewContextManagementActivity.this, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        addDeviceUtils.AddManage(manageMenu,this, addManageBack);
+
+        llSubmit.setVisibility(View.GONE);     //提交按钮默认消失
+
+        rvSmoke.setLayoutManager(new StaggeredGridLayoutManager( 1, StaggeredGridLayoutManager.VERTICAL));
+        rvSmoke.setLayoutManager(new StaggeredGridLayoutManager( 1, StaggeredGridLayoutManager.VERTICAL));
+        mFireAdapter = new ContextManagementFireDetailAdapter(listFireData);
+        mCameraAdapter = new ContextManagementCameraDetailAdapter(listCameraData);
+        rvSmoke.setAdapter(mFireAdapter);
+        rvCamera.setAdapter(mCameraAdapter);
+
+        startLoading();
+        presenter.getConnect();
+
+        itemClickListener();
+    }
+
+    private void itemClickListener() {
+        mFireAdapter.setOnItemClickListener(new ContextManagementFireDetailAdapter.OnItemClickListener() {
+            @Override
+            public void OnItemClick(View v, int position) {
+                Intent intent = new Intent(NewContextManagementActivity.this,NewDeviceDetailActivity.class);
+                intent.putExtra("deviceId",listFireData.get(position).getDeviceId());
+                startActivity(intent);
+            }
+        });
+        mCameraAdapter.setOnItemClickListener(new ContextManagementCameraDetailAdapter.OnItemClickListener() {
+            @Override
+            public void OnItemClick(View v, int position) {
+                presenter.getCameraId(listCameraData.get(position).getDeviceId());
+            }
+        });
+        llSubmit.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                listFireDel.addAll(mFireAdapter.getCheckBoxIdList());
+                listCameraDel.addAll(mCameraAdapter.getCheckBoxIdList());
+                for (int i = 0; i < listFireDel.size(); i++){
+                    presenter.deleteDeviceConnect(listFireDel.get(i));
+                }
+                for (int i = 0; i < listCameraDel.size(); i++){
+                    presenter.deleteDeviceConnect(listCameraDel.get(i));
+                }
+                mFireAdapter.removeAdapterItem();
+                mCameraAdapter.removeAdapterItem();
+            }
+        });
+    }
+
+    AddDeviceUtils.AddManageBack addManageBack = new AddDeviceUtils.AddManageBack() {
+        @Override
+        public void add() {
+            Intent intent_contextdevice_management = new Intent(NewContextManagementActivity.this,NewAddContextDeviceActivity.class);
+            intent_contextdevice_management.putExtra("deviceId",deviceId);
+            startActivityForResult(intent_contextdevice_management,3);
+        }
+
+        @Override
+        public void del() {
+            if (mFireAdapter.getShow() && mCameraAdapter.getShow()){
+                mFireAdapter.setIsShow(false);
+                mCameraAdapter.setIsShow(false);
+                llSubmit.setVisibility(View.GONE);
+            }else if (!mFireAdapter.getShow() && !mCameraAdapter.getShow()){
+                mFireAdapter.setIsShow(true);
+                mCameraAdapter.setIsShow(true);
+                llSubmit.setVisibility(View.VISIBLE);
+            }
+        }
+    };
+
+    @Override
+    public String getDevId() {
+        return deviceId;
+    }
+
+    @Override
+    public void onSuccess(ConnectDeviceBean data) {
+        if (data.getCameradata().getRows()==0){
+            tvNoCamera.setVisibility(View.VISIBLE);
+            rvCamera.setVisibility(View.GONE);
+            tvCameraNum.setText("0个");
+        }else {
+            tvNoCamera.setVisibility(View.GONE);
+            rvCamera.setVisibility(View.VISIBLE);
+            tvCameraNum.setText(data.getCameradata().getRows()+"个");
+            listCameraData.addAll(data.getCameradata().getDataList());
+            mCameraAdapter.notifyDataSetChanged();
+        }
+        if (data.getFiredata().getRows()==0){
+            tvNoSmoke.setVisibility(View.VISIBLE);
+            rvSmoke.setVisibility(View.GONE);
+            tvSmokeNum.setText("0个");
+        }else{
+            tvNoSmoke.setVisibility(View.GONE);
+            rvSmoke.setVisibility(View.VISIBLE);
+            tvSmokeNum.setText(data.getFiredata().getRows()+"个");
+            listFireData.addAll(data.getFiredata().getDataList());
+            mFireAdapter.notifyDataSetChanged();
+        }
+        stopLoading();
+    }
+
+    @Override
+    public void onCameraSuccess(CameraDetailBean bean) {
+        if (bean!=null){
+            mLanDeviceList.addAll((MainActivity.getLanDeviceList()));
+            int position=-1;
+            for (int i=0;i<mLanDeviceList.size();i++){
+                if (mLanDeviceList.get(i).getDevMac().equals(bean.getUuid())){
+                    position=i;
+                    break;
+                }
+            }
+            if (position!=-1){
+                Data.setDevIdsCamera(bean.getUuid());
+                Intent intent1 = new Intent();
+                Bundle bundle = new Bundle();
+                intent1.setClass(this, ActivityGuideDeviceCamera.class);
+                bundle.putInt("FUN_DEVICE_ID", mLanDeviceList.get(position).getId());
+                bundle.putSerializable("position",position);
+                intent1.putExtras(bundle);
+                intent1.putExtra("deviceId", bean.getId());
+                Data.setCameraName(bean.getNickname());
+                startActivity(intent1);
+            }else {
+                Toast.makeText(this, "选择的摄像头不在线,请重新确认!", Toast.LENGTH_SHORT).show();
+            }
+        }else {
+            Toast.makeText(this, "选择的摄像头不在线,请重新确认!", Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    @Override
+    public void onDelSuccess() {
+        presenter.getConnect();
+    }
+
+    @Override
+    public void onFile(String msg) {
+        Toast.makeText(this,""+msg,Toast.LENGTH_SHORT).show();
+    }
+}

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

@@ -34,10 +34,6 @@ import butterknife.OnClick;
  * devicedetail_camera_amount、hint_camera、devicedetail_recyclerview_camera、devicedetail_smoke_amount、hint_smoke、devicedetail_recyclerview_smoke
  */
 public class NewDeviceDetailActivity extends BaseActivity implements NewDeviceDetailListener.View{
-    @BindView(R.id.iv_back)
-    ImageView ivBack;
-    @BindView(R.id.tv_context_device_add)
-    TextView tvContextDeviceAdd;
     @BindView(R.id.tv_device_name)
     TextView tvDeviceName;
     @BindView(R.id.tv_operator)
@@ -85,7 +81,13 @@ public class NewDeviceDetailActivity extends BaseActivity implements NewDeviceDe
 
     @Override
     public void initView() {
+        clickTitle(this,getResources().getString(R.string.devicedetail),getResources().getString(R.string.devicecontext_management),true)
+                .setRightClickListener(v ->
+                        startActivityForResult(new Intent()
+                                .putExtra("deviceId",deviceId)
+                                .setClass(NewDeviceDetailActivity.this,NewContextManagementActivity.class),4));
         startLoading();
+
         deviceId=getIntent().getStringExtra("deviceId");
 
         rvDeviceList.setLayoutManager(new StaggeredGridLayoutManager( 1, StaggeredGridLayoutManager.VERTICAL));
@@ -100,18 +102,12 @@ public class NewDeviceDetailActivity extends BaseActivity implements NewDeviceDe
         presenter.getConnect();
     }
 
-    @OnClick({R.id.tv_running_record,R.id.tv_context_device_add,R.id.iv_back,R.id.iv_add_device})
+    @OnClick({R.id.tv_running_record,R.id.iv_add_device})
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.tv_running_record:
                 startActivity(new Intent().putExtra("deviceId",deviceId).setClass(this,RunningRecordActivity.class));
                 break;
-            case R.id.tv_context_device_add:
-                startActivityForResult(new Intent().putExtra("deviceId",deviceId).setClass(this,DeviceContextManagementActivity.class),4);
-                break;
-            case R.id.iv_back:
-                finish();
-                break;
             case R.id.iv_add_device:
                 startActivity(new Intent().putExtra("deviceId",deviceId).setClass(this,NewAddContextDeviceActivity.class));
                 break;
@@ -129,8 +125,8 @@ public class NewDeviceDetailActivity extends BaseActivity implements NewDeviceDe
         tvDeviceName.setText(bean.getDeviceName()+"");
         tvOperator.setText(bean.getOperator()+"");
         tvIdCode.setText(bean.getDeviceId()+"");
-        tvPlace.setText(bean.getSiteLocation()+"");
-        tvPlace1.setText(bean.getLocation()+"");
+        tvPlace.setText(bean.getLocation()+"");
+        tvPlace1.setText("详细地址:" + bean.getSiteLocation()+"");
         if ("1".equals(bean.getDeviceStatus())){
             tvStatus.setText("在线");
             tvStatus.setTextColor(getResources().getColor(R.color.myblue));
@@ -148,9 +144,9 @@ public class NewDeviceDetailActivity extends BaseActivity implements NewDeviceDe
             rvCameraList.setVisibility(View.GONE);
             tvCameraNum.setText("0个");
         }else {
-            tvHintSmoke.setText(bean.getCameradata().getRows()+"个");
             tvHintCamera.setVisibility(View.GONE);
             rvCameraList.setVisibility(View.VISIBLE);
+            tvCameraNum.setText(bean.getCameradata().getRows()+"个");
             cameraData.addAll(bean.getCameradata().getDataList());
             connectCameraDetailAdapter.notifyDataSetChanged();
         }

+ 15 - 16
app/src/main/java/com/silence/commonframe/activity/mine/activity/AddlinkmanActivity.java

@@ -17,6 +17,7 @@ import com.scwang.smartrefresh.layout.SmartRefreshLayout;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
 import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
 import com.silence.commonframe.Dialog.AddLinkManDialog;
+import com.silence.commonframe.Dialog.BaseDialog;
 import com.silence.commonframe.Dialog.CDialog;
 import com.silence.commonframe.R;
 import com.silence.commonframe.activity.mine.Interface.AddLinkManListener;
@@ -46,7 +47,6 @@ public class AddlinkmanActivity extends BaseActivity implements AddLinkManListen
     private NewLinkManAdapter mAdapter;
     private List<String> list = new ArrayList<>();
     private String id;
-    String data1;
     String etName;
     String etPhone;
     String siteid="";
@@ -84,10 +84,13 @@ public class AddlinkmanActivity extends BaseActivity implements AddLinkManListen
                                 presenter.addLinkMan();
                                 addLinkManDialog.dismiss();
                             }
-                            break;
+                                break;
                             case 2: {
                                 addLinkManDialog.dismiss();
                             }
+                                break;
+                            default:
+                                break;
                         }
                     }
                 });
@@ -104,6 +107,7 @@ public class AddlinkmanActivity extends BaseActivity implements AddLinkManListen
             }
         });
         srlRefresh.setEnableLoadMore(false);
+        startLoading();
         presenter.getData();
     }
 
@@ -161,6 +165,7 @@ public class AddlinkmanActivity extends BaseActivity implements AddLinkManListen
         if (srlRefresh != null) {
             srlRefresh.finishRefresh();
         }
+        stopLoading();
     }
 
     @Override
@@ -180,23 +185,17 @@ public class AddlinkmanActivity extends BaseActivity implements AddLinkManListen
     @Override
     public void deleteCallBack(String id) {
         this.id=id;
-        CDialog.Builder builder = new CDialog.Builder(AddlinkmanActivity.this);
-        builder.setCancelable(false);
-        builder.setTitle("提示");
-        builder.setMessage("你确定要删除该联系人吗?");
-        //    final EditText deviceno = (EditText)view.findViewById(R.id.deviceno);
-        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
+
+        BaseDialog.DialogCallBack dialogCallBack=new BaseDialog.DialogCallBack() {
             @Override
-            public void onClick(DialogInterface dialog, int which) {
-                presenter.delData();
+            public void leftBtn() {
             }
-        });
-        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
+
             @Override
-            public void onClick(DialogInterface dialog, int which) {
-                dialog.dismiss();
+            public void rightBtn() {
+                presenter.delData();
             }
-        });
-        builder.show();
+        };
+        new BaseDialog().BaseDialog(this,"提示","你确定要删除该联系人吗?","取消","确定",dialogCallBack);
     }
 }

+ 6 - 3
app/src/main/java/com/silence/commonframe/activity/mine/activity/MineFragment.java

@@ -52,9 +52,12 @@ public class MineFragment extends BaseFragment {
                 startActivity( new Intent().setClass(mActivity, SetupActivity.class));
             }
         }).setBackgroundColor(Color.parseColor("#00000000"));
-        name.setText(Hawk.get(BaseConstants.PHONE).toString());
-        tel.setText(Hawk.get(BaseConstants.USER_NAME).toString());
-        Glide.with(this).load(Hawk.get(BaseConstants.PICTIURE).toString()).apply(new RequestOptions().error(R.mipmap.people3)).into(image_head);
+        if (Hawk.get(BaseConstants.PHONE)!=null && Hawk.get(BaseConstants.USER_NAME)!=null){
+            name.setText(Hawk.get(BaseConstants.PHONE).toString());
+            tel.setText(Hawk.get(BaseConstants.USER_NAME).toString());
+        }
+        if (Hawk.get(BaseConstants.PICTIURE)!=null)
+            Glide.with(this).load(Hawk.get(BaseConstants.PICTIURE).toString()).apply(new RequestOptions().error(R.mipmap.people3)).into(image_head);
     }
 
     @Override

+ 21 - 8
app/src/main/java/com/silence/commonframe/activity/mine/activity/setup/FireMessageActivity.java

@@ -2,17 +2,22 @@ package com.silence.commonframe.activity.mine.activity.setup;
 
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.silence.commonframe.Dialog.BaseDialog;
 import com.silence.commonframe.Dialog.CDialog;
 import com.silence.commonframe.R;
+import com.silence.commonframe.activity.MainActivity;
 import com.silence.commonframe.activity.mine.Interface.FireMessageListener;
 import com.silence.commonframe.activity.mine.presenter.FireMessagePresenter;
 import com.silence.commonframe.adapter.FireMessageAdapter;
 import com.silence.commonframe.base.basemvp.BaseActivity;
 import com.silence.commonframe.model.SiteModel;
 import com.silence.commonframe.utils.DividerItemDecoration;
+import com.silence.commonframe.utils1.GoSystemSetting;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -25,6 +30,8 @@ public class FireMessageActivity extends BaseActivity implements FireMessageList
     RecyclerView myRecyclerView;
     @BindView(R.id.srl_refresh)
     SmartRefreshLayout srlRefresh;
+    @BindView(R.id.tv_no_message)
+    TextView tvNoMsg;
 
     List<SiteModel.DataBean.DataListBean> listDataBean = new ArrayList<>();
 
@@ -56,17 +63,18 @@ public class FireMessageActivity extends BaseActivity implements FireMessageList
         myRecyclerView.addItemDecoration(new DividerItemDecoration(FireMessageActivity.this, DividerItemDecoration.VERTICAL_LIST));
 
         myAdapter.setButtonClickListener((view, position) -> {
-            CDialog.Builder builder = new CDialog.Builder(FireMessageActivity.this);
-            builder.setCancelable(false);
-            builder.setTitle("提示");
-            builder.setMessage("你确定要提交推送管理吗?");
+            BaseDialog.DialogCallBack dialogCallBack=new BaseDialog.DialogCallBack() {
+                @Override
+                public void leftBtn() {
+                }
 
-            builder.setPositiveButton("确定", (dialog, which) -> {
+                @Override
+                public void rightBtn() {
                     startLoading();
                     presenter.updatePhonePush();
-            });
-            builder.setNegativeButton("取消", (dialog, which) -> dialog.dismiss());
-            builder.show();
+                }
+            };
+            new BaseDialog().BaseDialog(this,"提示","你确定要提交推送管理吗?","取消","确定",dialogCallBack);
         });
 
 
@@ -94,6 +102,11 @@ public class FireMessageActivity extends BaseActivity implements FireMessageList
     public void onSuccess(List<SiteModel.DataBean.DataListBean> listData) {
         if (page==1) listDataBean.clear();
         listDataBean.addAll(listData);
+        if (listDataBean.size() == 0){
+            tvNoMsg.setVisibility(View.VISIBLE);
+        }else {
+            tvNoMsg.setVisibility(View.GONE);
+        }
         myAdapter.notifyDataSetChanged();
         if (srlRefresh != null){
             srlRefresh.finishRefresh();

+ 0 - 1
app/src/main/java/com/silence/commonframe/activity/mine/presenter/SiteDetailPresenter.java

@@ -39,7 +39,6 @@ public class SiteDetailPresenter extends SiteDetailListener.Presenter{
                         if (data.getCode() == 0){
                             mView.onDelSuccess();
                         }else {
-                            mView.onDelError();
                             LoginIn.tokenOut(data.getCode(),mContext);
                             mView.onFile(data.getMsg());
                         }

+ 4 - 4
app/src/main/java/com/silence/commonframe/activity/presenter/NewAddDecicePresenter.java

@@ -43,10 +43,10 @@ public class NewAddDecicePresenter extends NewAddDeciceListener.Presenter {
                     @Override
                     public void onSuccess(String s, Call call, Response response) {
                         BaseBean<String> data=new Gson().fromJson(s,new TypeToken<BaseBean<String>>(){}.getType());
-                        if (data.code==0&&data.data!=null){
+                        if (data.code==0){
                             mView.onSuccess();
                         }else {
-                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            LoginIn.tokenOut(data.code,mContext);
                             mView.onFile(data.msg);
                         }
                     }
@@ -73,7 +73,7 @@ public class NewAddDecicePresenter extends NewAddDeciceListener.Presenter {
                         if (data.code==0){
                             mView.onChickSuccess();
                         }else {
-                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            LoginIn.tokenOut(data.code,mContext);
                             mView.onFile(data.msg);
                         }
                     }
@@ -99,7 +99,7 @@ public class NewAddDecicePresenter extends NewAddDeciceListener.Presenter {
                         if (data.getCode()==0&&data.data!=null){
                             mView.onSuccess(data.data);
                         }else {
-                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            LoginIn.tokenOut(data.code,mContext);
                             mView.onFile(data.msg);
                         }
                     }

+ 112 - 0
app/src/main/java/com/silence/commonframe/activity/presenter/NewContextManagementPresenter.java

@@ -0,0 +1,112 @@
+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.ApiService;
+import com.silence.commonframe.activity.Interface.NewContextManagementListener;
+import com.silence.commonframe.bean.BaseBean;
+import com.silence.commonframe.bean.CameraDetailBean;
+import com.silence.commonframe.bean.ConnectDeviceBean;
+import com.silence.commonframe.common.constant.UrlConstants;
+import com.silence.commonframe.utils.Data;
+import com.silence.commonframe.utils.LoginIn;
+
+import okhttp3.Call;
+import okhttp3.Response;
+
+public class NewContextManagementPresenter extends NewContextManagementListener.Presenter {
+
+    public NewContextManagementPresenter(Activity mContext, NewContextManagementListener.View mView){
+        this.mContext = mContext;
+        this.mView = mView;
+    }
+
+    @Override
+    public void getConnect() {
+        OkGo.get(ApiService.httpUrl1 + Data.getConfigUrl()+ UrlConstants.GET_CONNECT_DEVICE)
+                .params("deviceId",mView.getDevId())
+                .tag(this)
+                .cacheKey("cachePostRegister11")
+                .cacheMode(CacheMode.DEFAULT)
+                .headers("token", Data.getToken())
+                .execute(new StringCallback() {
+                    @Override
+                    public void onSuccess(String s, Call call, Response response) {
+                        BaseBean<ConnectDeviceBean> data=new Gson().fromJson(s,new TypeToken<BaseBean<ConnectDeviceBean>>(){}.getType());
+                        if (data.code==0&&data.data!=null){
+                            mView.onSuccess(data.data);
+                        }else {
+                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            Toast.makeText(mContext,"没有数据"+data.msg,Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+    @Override
+    public void getCameraId(String deviceId) {
+        OkGo.get(ApiService.httpUrl1+Data.getConfigUrl()+UrlConstants.GET_UUID_CAMERA)
+                .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) {
+                        BaseBean<CameraDetailBean> data=new Gson().fromJson(s,new TypeToken<BaseBean<CameraDetailBean>>(){}.getType());
+                        if (data.code==0&&data.data!=null){
+                            mView.onCameraSuccess(data.data);
+                        }else {
+                            LoginIn.tokenOut(data.code,data.msg,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 deleteDeviceConnect(String deviceId) {
+        OkGo.get(ApiService.httpUrl1+Data.getConfigUrl()+UrlConstants.DELETE_DEVICE_CONNECT)
+                .tag(this)
+                .params("id",deviceId)
+                .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){
+                            mView.onDelSuccess();
+                        }else {
+                            LoginIn.tokenOut(data.code,data.msg,mContext);
+                            mView.onFile(data.msg);
+                        }
+                    }
+
+                    @Override
+                    public void onError(Call call, Response response, Exception e) {
+                        super.onError(call, response, e);
+                        mView.onFile("信息获取失败");
+                    }
+                });
+    }
+
+}

+ 128 - 0
app/src/main/java/com/silence/commonframe/adapter/ContextManagementCameraDetailAdapter.java

@@ -0,0 +1,128 @@
+package com.silence.commonframe.adapter;
+
+import android.graphics.Color;
+import android.support.annotation.Nullable;
+import android.view.View;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+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.commonframe.bean.ConnectDeviceBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ContextManagementCameraDetailAdapter extends BaseQuickAdapter<ConnectDeviceBean.CameradataBean.DataListBean, BaseViewHolder> {
+
+    private List<ConnectDeviceBean.CameradataBean.DataListBean> listData;
+    private Boolean isShow = false;     //默认看不到checkbox
+
+    private List<String> checkBoxIDList = new ArrayList<>();  //选择的关联的设备
+
+    public ContextManagementCameraDetailAdapter(@Nullable List<ConnectDeviceBean.CameradataBean.DataListBean> data) {
+        super(R.layout.item_device_context_manager,data);
+        this.listData = data;
+    }
+
+    @Override
+    protected void convert(BaseViewHolder helper, ConnectDeviceBean.CameradataBean.DataListBean data) {
+        CheckBox cbDel = helper.itemView.findViewById(R.id.device_context_checkbox);
+        TextView tvName = helper.itemView.findViewById(R.id.device_context_name);
+        TextView tvLocation = helper.itemView.findViewById(R.id.device_context_location);
+        TextView tvState = helper.itemView.findViewById(R.id.device_context_state);
+
+        tvName.setText(data.getDeviceName());
+        tvLocation.setText(data.getLocation());
+
+        //判断状态
+        checkStatus(data, tvState);
+
+        if (!isShow){
+            cbDel.setVisibility(View.GONE);
+            helper.itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (mListener != null){
+                        mListener.OnItemClick(v,helper.getAdapterPosition());
+                    }
+                }
+            });
+        }else {
+            cbDel.setVisibility(View.VISIBLE);
+            helper.itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (cbDel.isChecked()){
+                        cbDel.setChecked(false);
+                    }else {
+                        cbDel.setChecked(true);
+
+                    }
+                }
+            });
+            cbDel.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (isChecked){
+                        checkBoxIDList.add(listData.get(helper.getAdapterPosition()).getId());
+                    }else {
+                        checkBoxIDList.remove(listData.get(helper.getAdapterPosition()).getId());
+                    }
+                }
+            });
+        }
+
+    }
+
+    public void setIsShow(Boolean isShow){
+        this.isShow = isShow;
+        notifyDataSetChanged();
+    }
+
+    public Boolean getShow() {
+        return isShow;
+    }
+
+    private void checkStatus(ConnectDeviceBean.CameradataBean.DataListBean data, TextView tvState) {
+        String status = data.getStatus();
+        if ("1".equals(status)){
+            tvState.setText(R.string.state_online);
+            tvState.setTextColor(Color.rgb(78,105,255));
+        }else {
+            tvState.setText(R.string.state_outline);
+            tvState.setTextColor(Color.rgb(204,204,204));
+        }
+    }
+
+    public List<String> getCheckBoxIdList(){
+        return checkBoxIDList;
+    }
+
+    public void removeAdapterItem(){
+        if (checkBoxIDList.size() > 0){
+            for (int i = 0; i<listData.size(); i++){
+                String id = listData.get(i).getId();
+                for (int j = 0; j < checkBoxIDList.size(); j++){
+                    if (checkBoxIDList.get(j).equals(id)){
+                        listData.remove(i);
+                        notifyItemRemoved(i);
+                    }
+                }
+            }
+        }
+        checkBoxIDList.clear();
+    }
+
+    OnItemClickListener mListener;
+
+    public interface OnItemClickListener{
+        void OnItemClick(View v, int position);
+    }
+
+    public void setOnItemClickListener(OnItemClickListener mListener){
+        this.mListener = mListener;
+    }
+}

+ 133 - 0
app/src/main/java/com/silence/commonframe/adapter/ContextManagementFireDetailAdapter.java

@@ -0,0 +1,133 @@
+package com.silence.commonframe.adapter;
+
+import android.content.res.Resources;
+import android.graphics.Color;
+import android.support.annotation.Nullable;
+import android.view.View;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+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.commonframe.bean.ConnectDeviceBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ContextManagementFireDetailAdapter extends BaseQuickAdapter<ConnectDeviceBean.FiredataBean.DataListBeanX, BaseViewHolder> {
+
+    private List<ConnectDeviceBean.FiredataBean.DataListBeanX> listData;
+    private Boolean isShow = false;     //默认看不到checkbox
+
+    private List<String> checkBoxIDList = new ArrayList<>();  //选择的关联的设备
+
+    public ContextManagementFireDetailAdapter(@Nullable List<ConnectDeviceBean.FiredataBean.DataListBeanX> data) {
+        super(R.layout.item_device_context_manager,data);
+        this.listData = data;
+    }
+
+    @Override
+    protected void convert(BaseViewHolder helper, ConnectDeviceBean.FiredataBean.DataListBeanX data) {
+        CheckBox cbDel = helper.itemView.findViewById(R.id.device_context_checkbox);
+        TextView tvName = helper.itemView.findViewById(R.id.device_context_name);
+        TextView tvLocation = helper.itemView.findViewById(R.id.device_context_location);
+        TextView tvState = helper.itemView.findViewById(R.id.device_context_state);
+
+        tvName.setText(data.getDeviceName());
+        tvLocation.setText(data.getLocation());
+
+        //判断状态
+        checkStatus(data, tvState);
+
+        if (!isShow){
+            cbDel.setVisibility(View.GONE);
+            helper.itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (mListener != null){
+                        mListener.OnItemClick(v,helper.getAdapterPosition());
+                    }
+                }
+            });
+        }else {
+            cbDel.setVisibility(View.VISIBLE);
+            helper.itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (cbDel.isChecked()){
+                        cbDel.setChecked(false);
+                    }else {
+                        cbDel.setChecked(true);
+
+                    }
+                }
+            });
+            cbDel.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                @Override
+                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                    if (isChecked){
+                        checkBoxIDList.add(listData.get(helper.getAdapterPosition()).getId());
+                    }else {
+                        checkBoxIDList.remove(listData.get(helper.getAdapterPosition()).getId());
+                    }
+                }
+            });
+        }
+
+    }
+
+    public void setIsShow(Boolean isShow){
+        this.isShow = isShow;
+        notifyDataSetChanged();
+    }
+
+    public Boolean getShow() {
+        return isShow;
+    }
+
+    private void checkStatus(ConnectDeviceBean.FiredataBean.DataListBeanX data, TextView tvState) {
+        String status = data.getStatus();
+
+        if ("0".equals(status)){      //判断状态
+            tvState.setText(R.string.state_fault);
+            tvState.setTextColor(Color.rgb(255,144,0));
+        }else if ("1".equals(status)){
+            tvState.setText(R.string.state_fire);
+            tvState.setTextColor(Color.rgb(243,46,46));
+        }else {
+            tvState.setText(R.string.state_normal);
+            tvState.setTextColor(Color.rgb(78,105,255));
+        }
+    }
+
+    public List<String> getCheckBoxIdList(){
+        return checkBoxIDList;
+    }
+
+    public void removeAdapterItem(){
+        if (checkBoxIDList.size() > 0){
+            for (int i = 0; i<listData.size(); i++){
+                String id = listData.get(i).getId();
+                for (int j = 0; j < checkBoxIDList.size(); j++){
+                    if (checkBoxIDList.get(j).equals(id)){
+                        listData.remove(i);
+                        notifyItemRemoved(i);
+                    }
+                }
+            }
+        }
+        checkBoxIDList.clear();
+    }
+
+    OnItemClickListener mListener;
+
+    public interface OnItemClickListener{
+        void OnItemClick(View v,int position);
+    }
+
+    public void setOnItemClickListener(OnItemClickListener mListener){
+        this.mListener = mListener;
+    }
+}

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

@@ -34,7 +34,7 @@ public class DeviceContextAdapterCamera extends RecyclerView.Adapter<DeviceConte
     private Context context;
     private LayoutInflater mInflater;
     private List<HashMap<String,String>> listmap1;
-    private Boolean isShow = false;     //默认看不到checkbox
+    private Boolean isShow;     //默认看不到checkbox
 
     private List<String> checkBoxIDList;  //烟感关联的设备
 
@@ -82,8 +82,6 @@ public class DeviceContextAdapterCamera extends RecyclerView.Adapter<DeviceConte
             }
         }
 
-
-
         if (!isShow){
             myViewHolder.device_context_checkbox.setVisibility(View.GONE);
             checkBoxIDList.clear();

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

@@ -45,6 +45,8 @@ public interface UrlConstants {
     String ADD_SMOKE = "/addDevice";
     //检查设备是否存在
     String CHECK_DEVICE_ID = "/checkDeviceId";
+    //解除设备关联关系
+    String DELETE_DEVICE_CONNECT = "/deleteDeviceConnect";
 
     /*----------------------------------------------空气卫士接口---------------------------------------*/
     String BASE_LOCAl="http://192.168.1.111:8080/";

+ 0 - 1
app/src/main/java/com/silence/commonframe/fragment/FirstFragment.java

@@ -47,7 +47,6 @@ import com.silence.commonframe.R;
 import com.silence.commonframe.activity.FireAlarmActivity;
 import com.silence.commonframe.activity.home.Interface.HomeInterface;
 import com.silence.commonframe.activity.home.presenter.HomePresenter;
-import com.silence.commonframe.activity.site.activity.AddSiteActivity;
 import com.silence.commonframe.adapter.MyAdapter;
 import com.silence.commonframe.base.basemvp.BaseFragment;
 import com.silence.commonframe.bean.TroubleSiteBean;

+ 10 - 34
app/src/main/java/com/silence/commonframe/fragment/NewDeviceFragment.java

@@ -42,6 +42,7 @@ import com.silence.commonframe.fragment.presenter.NewDevicePresenter;
 import com.silence.commonframe.lib.funsdk.support.models.FunDevice;
 import com.silence.commonframe.utils.Data;
 import com.silence.commonframe.utils.TitlePopupMenu;
+import com.silence.commonframe.utils1.AddDeviceUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -52,8 +53,6 @@ import butterknife.OnClick;
 
 @SuppressLint("ValidFragment")
 public class NewDeviceFragment extends BaseFragment implements NewDeviceListener.View,DeviceListAdapter.IonSlidingViewClickListener,DeviceListAdapter.ItemClickListener {
-    @BindView(R.id.iv_add)
-    ImageView ivAdd;
     @BindView(R.id.rv_place)
     RecyclerView rvPlace;
     @BindView(R.id.device_type_title)
@@ -106,7 +105,15 @@ public class NewDeviceFragment extends BaseFragment implements NewDeviceListener
 
     @Override
     protected void initView() {
-        initAdd();
+        clickTitle(getActivity(),getResources().getString(R.string.text_tab_contact),R.mipmap.homeadd,false)
+                .setRightClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        titlePopup.show(v, TitlePopupMenu.STYLE_ALIGN_THIS_BOTTOM_WINDOW_RIGHT);
+                    }
+                });
+        titlePopup = new TitlePopupMenu(getActivity(), ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        new AddDeviceUtils().AddDevice(titlePopup,getActivity());
         //场所
         rvPlace.setLayoutManager(new StaggeredGridLayoutManager( 1, StaggeredGridLayoutManager.VERTICAL));
         placeListAdapter=new PlaceListAdapter(R.layout.recview_item,palceListDatas);
@@ -140,15 +147,6 @@ public class NewDeviceFragment extends BaseFragment implements NewDeviceListener
         }
     }
 
-    @OnClick({R.id.iv_add})
-    public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.iv_add:
-                titlePopup.show(view, TitlePopupMenu.STYLE_ALIGN_THIS_BOTTOM_WINDOW_RIGHT);
-                break;
-        }
-    }
-
     @Override
     public int getPage() {
         return page;
@@ -164,28 +162,6 @@ public class NewDeviceFragment extends BaseFragment implements NewDeviceListener
         return loginType;
     }
 
-    //添加“+”数据
-    private void initAdd() {
-        titlePopup = new TitlePopupMenu(getActivity(), ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        titlePopup.setItemOnClickListener(new TitlePopupMenu.OnItemOnClickListener() {
-            @Override
-            public void onItemClick(String desc) {
-                showToast(desc);
-            }
-        });
-        titlePopup.addItem(getResources().getDrawable(R.mipmap.homeadd1),
-                "添加设备");
-        titlePopup.addItem(getResources().getDrawable(R.mipmap.homeadd1),
-                "添加场所");
-    }
-    private void showToast(String msg) {
-        if (msg.equals("添加设备")) {
-            startActivityForResult(new Intent(getContext(),AdddeviceActivity.class),ADD_DEVICE_CODE);
-        }else if (msg.equals("添加场所")){
-            startActivityForResult(new Intent(getContext(),AddSiteActivity.class),ADD_DEVICE_CODE);
-        }
-    }
-
     //添加设备title数据
     private void AddDeviceTitleData(){
         List<String> title= Arrays.asList(getResources().getStringArray(R.array.device_type));

+ 27 - 5
app/src/main/java/com/silence/commonframe/utils1/AddDeviceUtils.java

@@ -1,14 +1,12 @@
 package com.silence.commonframe.utils1;
 
 import android.app.Activity;
-import android.content.Context;
 import android.content.Intent;
-import android.view.View;
-import android.view.ViewGroup;
 
 import com.silence.commonframe.R;
-import com.silence.commonframe.activity.AdddeviceActivity;
-import com.silence.commonframe.activity.site.activity.AddSiteActivity;
+import com.silence.commonframe.activity.home.activity.AddSiteActivity;
+import com.silence.commonframe.activity.home.activity.AdddeviceActivity;
+import com.silence.commonframe.utils.ManagePopupMenu;
 import com.silence.commonframe.utils.TitlePopupMenu;
 
 public class AddDeviceUtils {
@@ -28,4 +26,28 @@ public class AddDeviceUtils {
         titlePopup.addItem(mActivity.getResources().getDrawable(R.mipmap.homeadd1),
                 "添加场所");
     }
+
+    AddManageBack addManageBack;
+    public void AddManage(ManagePopupMenu manageMenu, Activity mActivity,AddManageBack addManageBack){
+        this.addManageBack = addManageBack;
+        manageMenu.setItemOnClickListener(new ManagePopupMenu.OnItemOnClickListener() {
+            @Override
+            public void onItemClick(String desc) {
+                if (desc.equals("添加")) {
+                    addManageBack.add();
+                } else if (desc.equals("删除")) {
+                    addManageBack.del();
+                }
+            }
+        });
+        manageMenu.addItem(mActivity.getResources().getDrawable(R.mipmap.homeadd1),
+                "添加");
+        manageMenu.addItem(mActivity.getResources().getDrawable(R.mipmap.del),
+                "删除");
+    }
+
+    public interface AddManageBack{
+        void add();
+        void del();
+    }
 }

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

@@ -16,6 +16,7 @@ public interface MoniListener {
 
         void onTroubleListSuccess(TroubleListBean.DataBean dataBean);
         void onTroubleTypeSuccess(List<TroubleTypeBean.DataBean> data);
+        void onError();
         void onFile(String msg);
     }
 

+ 7 - 2
app/src/main/java/com/silence/tech/ui/moni/activity/MoniFragment.java

@@ -74,11 +74,12 @@ public class MoniFragment extends BaseFragment implements MoniListener.View{
 
     @Override
     protected void initView() {
-        startLoading();
+
         setTitle(getActivity(),getResources().getString(R.string.text_tab_moni),"",false);
         mTroubleListAdapter = new MoniTroubleAdapter(R.layout.item_recylerview,listData,onclick);
         rvTroubleList.setLayoutManager(new LinearLayoutManager(getContext()));
         rvTroubleList.setAdapter(mTroubleListAdapter);
+        startLoading();
         presenter.getTroubleType();
         presenter.getTroubleList();
 
@@ -215,9 +216,13 @@ public class MoniFragment extends BaseFragment implements MoniListener.View{
     }
 
     @Override
+    public void onError() {
+        stopLoading();
+    }
+
+    @Override
     public void onFile(String msg){
         Toast.makeText(getContext(),""+msg,Toast.LENGTH_SHORT).show();
-        stopLoading();
     }
 
 }

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

@@ -41,6 +41,7 @@ public class MoniPresenter extends MoniListener.Presenter {
                         }else {
                             LoginIn.tokenOut(data.getCode(),mContext);
                             mView.onFile(data.getMsg());
+                            mView.onError();
                         }
                     }
 
@@ -48,6 +49,7 @@ public class MoniPresenter extends MoniListener.Presenter {
                     public void onError(Call call, Response response, Exception e) {
                         super.onError(call, response, e);
                         mView.onFile("信息获取失败");
+                        mView.onError();
                     }
                 });
     }
@@ -70,6 +72,7 @@ public class MoniPresenter extends MoniListener.Presenter {
                         }else {
                             LoginIn.tokenOut(data.getCode(),mContext);
                             mView.onFile(data.getMsg());
+                            mView.onError();
                         }
                     }
 
@@ -77,6 +80,7 @@ public class MoniPresenter extends MoniListener.Presenter {
                     public void onError(Call call, Response response, Exception e) {
                         super.onError(call, response, e);
                         mView.onFile("信息获取失败");
+                        mView.onError();
                     }
                 });
     }

+ 1 - 1
app/src/main/res/layout/activity_addlinkman.xml

@@ -33,7 +33,7 @@
                 android:layout_height="wrap_content"
                 android:gravity="center"
                 android:layout_marginTop="30dp"
-                android:text="暂无更多联系人~"
+                android:text="暂无联系人~"
                 android:textColor="@color/gray_333"
                 android:visibility="gone"
                 android:textSize="16dp"

+ 4 - 1
app/src/main/res/layout/activity_device_context_management.xml

@@ -10,7 +10,10 @@
         android:layout_height="match_parent"
         android:orientation="vertical">
 
-        <include layout="@layout/navi_head"/>
+        <com.silence.commonframe.base.basemvp.TitleBar
+            android:id="@+id/base_title_bar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
 
         <RelativeLayout
             android:layout_width="match_parent"

+ 16 - 102
app/src/main/res/layout/activity_device_detail_new.xml

@@ -5,42 +5,10 @@
     android:orientation="vertical"
     xmlns:android="http://schemas.android.com/apk/res/android">
 
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="55dp"
-            android:background="#4e69ff"
-            android:gravity="bottom"
-            android:orientation="horizontal">
-                <ImageView
-                    android:id="@+id/iv_back"
-                    android:layout_width="30dp"
-                    android:layout_height="30dp"
-                    android:padding="5dp"
-                    android:layout_marginBottom="5dp"
-                    android:layout_marginLeft="10dp"
-                    android:src="@mipmap/whiteback" />
-
-                <TextView
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:gravity="center"
-                    android:text="设备详情"
-                    android:textColor="#fff"
-                    android:textSize="19sp" />
-
-                <TextView
-                    android:id="@+id/tv_context_device_add"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentRight="true"
-                    android:padding="10dp"
-                    android:text="@string/devicecontext_management"
-                    android:textColor="@color/white"
-                    android:textSize="16sp"
-                    android:textStyle="bold" />
-
-            </LinearLayout>
+    <com.silence.commonframe.base.basemvp.TitleBar
+        android:id="@+id/base_title_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
 
     <ScrollView
         android:layout_width="match_parent"
@@ -52,51 +20,27 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginLeft="5dp"
+            android:layout_marginLeft="10dp"
             android:layout_marginTop="4dp"
             android:orientation="vertical">
 
-            <LinearLayout
-                android:layout_width="match_parent"
+            <TextView
+                android:id="@+id/tv_device_name"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
-
-                <TextView
-                    android:id="@+id/tv_device_name"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="5dp"
-                    android:text="独立式烟感探测器"
-                    android:textColor="@color/myblack"
-                    android:textSize="19sp"
-                    android:textStyle="bold" />
-
-                <View
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"></View>
-
-                <TextView
-
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginRight="9dp"
-                    android:text="火警"
-                    android:textColor="#fa5656"
-                    android:visibility="gone" />
-
-
-            </LinearLayout>
+                android:text="独立式烟感探测器"
+                android:textColor="@color/myblack"
+                android:textSize="19sp"
+                android:textStyle="bold" />
 
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="3dp"
+                android:layout_marginRight="10dp"
                 android:orientation="horizontal">
 
-
                 <ImageView
-
                     android:layout_width="70dp"
                     android:layout_height="70dp"
                     android:layout_gravity="center"
@@ -138,7 +82,6 @@
                                 android:layout_weight="1"
                                 android:textColor="@color/myblack"></View>
 
-
                         </LinearLayout>
 
                         <LinearLayout
@@ -175,16 +118,13 @@
                                 android:textColor="@color/myblack"
                                 android:textSize="14sp" />
 
-
                             <View
                                 android:layout_width="0dp"
                                 android:layout_height="match_parent"
                                 android:layout_weight="1"></View>
 
-
                         </LinearLayout>
 
-
                         <LinearLayout
                             android:layout_width="match_parent"
                             android:layout_height="match_parent"
@@ -219,7 +159,6 @@
                                 android:textColor="@color/myblack"
                                 android:textSize="14sp" />
 
-
                         </LinearLayout>
 
                         <LinearLayout
@@ -232,13 +171,12 @@
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:text="详细地址:杭州市余杭区海智海3栋"
+                                android:lineSpacingMultiplier="1.2"
                                 android:textColor="@color/myblack"
                                 android:textSize="14sp" />
 
-
                         </LinearLayout>
 
-
                     </LinearLayout>
 
                     <LinearLayout
@@ -252,23 +190,6 @@
                             android:layout_height="wrap_content"
                             android:layout_marginRight="5dp">
 
-                            <!--<TextView-->
-
-                            <!--android:layout_width="wrap_content"-->
-                            <!--android:layout_height="wrap_content"-->
-                            <!--android:textColor="@color/myblack"-->
-                            <!--android:textSize="14sp"-->
-                            <!--android:text="电池电压:" />-->
-
-                            <!--<TextView-->
-
-                            <!--android:layout_width="wrap_content"-->
-                            <!--android:layout_height="wrap_content"-->
-
-                            <!--android:textColor="@color/myblack"-->
-                            <!--android:textSize="14sp"-->
-                            <!--android:text="3.0V" />-->
-
                         </LinearLayout>
 
                         <LinearLayout
@@ -286,13 +207,10 @@
                         </LinearLayout>
                     </LinearLayout>
 
-
                 </RelativeLayout>
 
-
             </LinearLayout>
 
-
         </LinearLayout>
 
         <View
@@ -336,13 +254,11 @@
 
             <ImageView
                 android:id="@+id/iv_add_device"
-                android:layout_width="30dp"
-                android:layout_height="30dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
                 android:padding="5dp"
-                android:layout_marginRight="10dp"
                 android:src="@mipmap/homeadd1" />
 
-
         </LinearLayout>
             <LinearLayout
                 android:layout_width="match_parent"
@@ -352,7 +268,6 @@
                 android:layout_marginRight="10dp"
                 android:orientation="vertical">
 
-
                 <RelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content">
@@ -440,7 +355,6 @@
 
                 </android.support.v7.widget.RecyclerView>
 
-
             </LinearLayout>
         </LinearLayout>
         </ScrollView>

+ 24 - 5
app/src/main/res/layout/activity_fire_message.xml

@@ -17,13 +17,32 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
-        <android.support.v7.widget.RecyclerView
-            android:id="@+id/my_recycler_view"
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:scrollbars="vertical"
-            tools:layout_editor_absoluteX="0dp"
-            tools:layout_editor_absoluteY="68dp" />
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_no_message"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="40dp"
+                android:gravity="center"
+                android:textColor="@color/myblack"
+                android:textSize="17sp"
+                android:text="@string/no_site"/>
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/my_recycler_view"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:scrollbars="vertical"
+                tools:layout_editor_absoluteX="0dp"
+                tools:layout_editor_absoluteY="68dp" />
+
+        </LinearLayout>
+
+
 
     </com.scwang.smartrefresh.layout.SmartRefreshLayout>
 

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

@@ -24,6 +24,7 @@
     <string name="no_message">暂时没有消息</string>
     <string name="no_trouble_message">暂无设备异常</string>
     <string name="firemessage_nothing">空空如也</string>
+    <string name="no_site">请先添加场所</string>
 
     <!-- 弹窗 -->
     <string name="tips">提示</string>