Browse Source

1.增加主题
2.监听厕所但不清晰

Administrator 4 years ago
parent
commit
3934b4975f
48 changed files with 758 additions and 864 deletions
  1. 2 2
      app/build.gradle
  2. 0 1
      app/src/main/AndroidManifest.xml
  3. 16 15
      app/src/main/java/com/sunzee/adapter/DebugParameterAdapter.java
  4. 5 4
      app/src/main/java/com/sunzee/base/BaseApplication.java
  5. 1 1
      app/src/main/java/com/sunzee/model/Heartbeat.java
  6. 3 3
      app/src/main/java/com/sunzee/model/HoleInformation.java
  7. 3 3
      app/src/main/java/com/sunzee/model/domain/HeartbeatBean.java
  8. 6 0
      app/src/main/java/com/sunzee/model/domain/Name.java
  9. 2 2
      app/src/main/java/com/sunzee/mvp/advertising/AdvertisingPresenter.java
  10. 28 3
      app/src/main/java/com/sunzee/mvp/debug/DebugPresenter.java
  11. 1 1
      app/src/main/java/com/sunzee/mvp/home/HomePresenter.java
  12. 10 10
      app/src/main/java/com/sunzee/mvp/homeactivity/HomePageAPresenter.java
  13. 8 128
      app/src/main/java/com/sunzee/service/MyIntentService.java
  14. 216 594
      app/src/main/java/com/sunzee/service/MyService.java
  15. 10 0
      app/src/main/java/com/sunzee/thread/debugparameter/DebugParameterTask.java
  16. 4 0
      app/src/main/java/com/sunzee/thread/debugparameter/DebugParameterThreadType.java
  17. 21 6
      app/src/main/java/com/sunzee/thread/debugparameter/ThreadPoolDebugParameter.java
  18. 11 1
      app/src/main/java/com/sunzee/ui/activity/AdvertisingActivity.java
  19. 8 5
      app/src/main/java/com/sunzee/ui/activity/HomeActivity.java
  20. 99 23
      app/src/main/java/com/sunzee/ui/activity/HomePageAActivity.java
  21. 1 1
      app/src/main/java/com/sunzee/ui/activity/LoginActivity.java
  22. 5 2
      app/src/main/java/com/sunzee/ui/fragment/AdvanceParameterFragment.java
  23. 5 3
      app/src/main/java/com/sunzee/ui/fragment/DebugFragment.java
  24. 2 1
      app/src/main/java/com/sunzee/ui/fragment/GeneralParameterFragment.java
  25. 2 1
      app/src/main/java/com/sunzee/ui/fragment/HomepageFragment.java
  26. 53 5
      app/src/main/java/com/sunzee/ui/fragment/OtherFragment.java
  27. 2 42
      app/src/main/java/com/sunzee/utils/FileUtil.java
  28. 164 0
      app/src/main/java/com/sunzee/utils/LogUtils.java
  29. BIN
      app/src/main/res/drawable-hdpi/sketchmap.png
  30. BIN
      app/src/main/res/drawable-hdpi/sketchmap2.png
  31. BIN
      app/src/main/res/drawable-hdpi/sketchmaps.png
  32. BIN
      app/src/main/res/drawable-mdpi/sketchmap.png
  33. BIN
      app/src/main/res/drawable-mdpi/sketchmap2.png
  34. BIN
      app/src/main/res/drawable-mdpi/sketchmaps.png
  35. BIN
      app/src/main/res/drawable-xhdpi/sketchmap.png
  36. BIN
      app/src/main/res/drawable-xhdpi/sketchmap2.png
  37. BIN
      app/src/main/res/drawable-xhdpi/sketchmaps.png
  38. BIN
      app/src/main/res/drawable-xxhdpi/sketchmap.png
  39. BIN
      app/src/main/res/drawable-xxhdpi/sketchmap2.png
  40. BIN
      app/src/main/res/drawable-xxhdpi/sketchmaps.png
  41. BIN
      app/src/main/res/drawable-xxxhdpi/sketchmap.png
  42. BIN
      app/src/main/res/drawable-xxxhdpi/sketchmap2.png
  43. BIN
      app/src/main/res/drawable-xxxhdpi/sketchmaps.png
  44. 21 1
      app/src/main/res/layout/activity_homeactivity.xml
  45. 3 4
      app/src/main/res/layout/activity_homeactivity25d.xml
  46. 42 1
      app/src/main/res/layout/fragment_other.xml
  47. 2 1
      app/src/main/res/layout/spinner_text.xml
  48. 2 0
      app/src/main/res/values/strings.xml

+ 2 - 2
app/build.gradle

@@ -15,8 +15,8 @@ android {
         applicationId "com.sunzee.cleanMachine"
         minSdkVersion 14
         targetSdkVersion 28
-        versionCode 8
-        versionName "1.0.8"
+        versionCode 12
+        versionName "1.0.12"
         manifestPlaceholders = [
                 //个推应用参数,请填写您申请的 GETUI_APP_ID,GETUI_APP_KEY,GETUI_APP_SECRET 值
                 GETUI_APP_ID    : "n4vsaIAi0eAbAkfBfqsUL7",

+ 0 - 1
app/src/main/AndroidManifest.xml

@@ -51,7 +51,6 @@
         <activity android:name=".ui.activity.HomePageAActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>

+ 16 - 15
app/src/main/java/com/sunzee/adapter/DebugParameterAdapter.java

@@ -31,26 +31,27 @@ public class DebugParameterAdapter extends RecyclerView.Adapter<DebugParameterAd
             R.string.debug_7, R.string.hole_lamp1,
             R.string.hole_lamp2, R.string.hole_lamp3,
             R.string.hole_lamp4, R.string.hole_lamp5,
-            R.string.hole_lamp6,R.string.x_add,
-            R.string.x_subtract,R.string.y_add,
-            R.string.y_subtract,R.string.z_top,
-            R.string.z_bottom,R.string.e_add,
-            R.string.e_subtract,R.string.a_top,
-            R.string.a_bottom,R.string.x_back_zero,
-            R.string.y_back_zero,R.string.z_back_zero,
-            R.string.e_back_zero,R.string.a_back_zero,
-            R.string.jerk
+            R.string.hole_lamp6, R.string.x_add,
+            R.string.x_subtract, R.string.y_add,
+            R.string.y_subtract, R.string.z_top,
+            R.string.z_bottom, R.string.e_add,
+            R.string.e_subtract, R.string.a_top,
+            R.string.a_bottom, R.string.x_back_zero,
+            R.string.y_back_zero, R.string.z_back_zero,
+            R.string.e_back_zero, R.string.a_back_zero,
+            R.string.jerk,R.string.disinfectant,
+            R.string.detergent
 
     };
     private final String[] paraAddress = {
             "M1411", "M1412", "M313", "M315",
             "M316", "M317", "M318", "M320",
             "M321", "M322", "M323", "M324",
-            "M325","M1002","M1003","M1102",
-            "M1103","M1203","M1202","M1302",
-            "M1303","M1403","M1402","M1010",
-            "M1110","M1210","M1310","M1410",
-            "M10"};
+            "M325", "M1002", "M1003", "M1102",
+            "M1103", "M1203", "M1202", "M1302",
+            "M1303", "M1403", "M1402", "M1010",
+            "M1110", "M1210", "M1310", "M1410",
+            "M10", "M135", "M137"};
 
     public DebugParameterAdapter() {
 
@@ -89,7 +90,7 @@ public class DebugParameterAdapter extends RecyclerView.Adapter<DebugParameterAd
                     checkBox.setChecked(!checkBox.isChecked());
                     return;
                 }
-                Log.d(TAG, "onClick: "+i);
+                Log.d(TAG, "onClick: " + i);
 
                 listener.onItemListener(view, i, paraAddress[i]);
             }

+ 5 - 4
app/src/main/java/com/sunzee/base/BaseApplication.java

@@ -56,28 +56,29 @@ public class BaseApplication extends Application {
         Heartbeat.managerId = (String) SharedPreferencesUtils.getParam(Name.SYSTEM_ID, "");
         SerialPortDevice device = new SerialPortDevice(Global.dev, "9600");
         SerialPortManager.getInstance().open(device);
-        startMyService();
+        //startMyService();
         firstHeartbeat();
         setDatabase();
         getScreenWidthHeight();
-        Log.d(TAG, "onCreate: " + Heartbeat.deviceId);
         String deviceId = "";
         if (Heartbeat.deviceId != null && Heartbeat.deviceId.length() > 7) {
             deviceId = Heartbeat.deviceId.substring(Heartbeat.deviceId.length() - 6);
         } else {
-            deviceId = "zengwenlong";
+            deviceId = "";
         }
+        //友盟注册
         UMConfigure.init(this, "5ee80e9fdbc2ec076dd49301", deviceId, UMConfigure.DEVICE_TYPE_PHONE, "");
         String ch = (String)SharedPreferencesUtils.getParam(Name.LANGUAGE_TYPE, "ch");
         LanguageUtils.set(ch);
         // 这里实现SDK初始化,appId替换成你的在Bugly平台申请的appId
         // 调试时,将第三个参数改为true
-        Bugly.init(this,"b764cadec8",true);
+        //Bugly.init(this,"b764cadec8",true);//有了友盟,这个bugly就不需要了。
     }
 
     @Override
     protected void attachBaseContext(Context base) {
         super.attachBaseContext(base);
+        //热更新
         // you must install multiDex whatever tinker is installed!
         MultiDex.install(base);
         // 安装tinker

+ 1 - 1
app/src/main/java/com/sunzee/model/Heartbeat.java

@@ -19,7 +19,7 @@ public class Heartbeat {
     //消毒水余量
     public static int disinfectant= 0;
     //气味浓度
-    public static Integer odorConcentration= 2;
+    public static String odorConcentration= "0";
     //清洁剂余量
     public static int cleaner= 0;
 

+ 3 - 3
app/src/main/java/com/sunzee/model/HoleInformation.java

@@ -23,9 +23,9 @@ public class HoleInformation {
 
     /**
      * 人体传感器的状态
-     * 2:表示还没用过。
-     * 0:表示没人
-     * 1:表示有人
+     * 0:表示没人【1:表示没上厕所。】
+     * 1:表示有人【0:表示处于上厕所状态。】
+     * 2:表示还没用过。【 2.表示什么状态都没有。】
      */
     private String bodySensor = "2";
 

+ 3 - 3
app/src/main/java/com/sunzee/model/domain/HeartbeatBean.java

@@ -17,7 +17,7 @@ public class HeartbeatBean {
     //消毒水余量
     private int disinfectant;
     //气味浓度
-    private Integer odorConcentration;
+    private String odorConcentration;
     //清洁剂余量
     private int cleaner;
 
@@ -47,11 +47,11 @@ public class HeartbeatBean {
         this.disinfectant = disinfectant;
     }
 
-    public Integer getOdorConcentration() {
+    public String getOdorConcentration() {
         return odorConcentration;
     }
 
-    public void setOdorConcentration(Integer odorConcentration) {
+    public void setOdorConcentration(String odorConcentration) {
         this.odorConcentration = odorConcentration;
     }
 

+ 6 - 0
app/src/main/java/com/sunzee/model/domain/Name.java

@@ -89,4 +89,10 @@ public interface Name {
 
     //示意图标移动
     String WCLOCALTION = "wclocaltion";
+
+    //厕所状态主题
+    String WCTHEMENAME = "wctheme";
+
+    //厕所状态主题序号
+    String WCTHEMEPOSITION = "wcthemeposition";
 }

+ 2 - 2
app/src/main/java/com/sunzee/mvp/advertising/AdvertisingPresenter.java

@@ -303,7 +303,7 @@ public class AdvertisingPresenter extends BasePresenter<AdvertisingView> {
                 String remaining = model.getRemaining();
                 if (TextUtils.isEmpty(overdueDate)) {
                     //如果为空
-                    Hawk.put(Name.OVERDUE_DATE, null);
+                    Hawk.put(Name.OVERDUE_DATE,  0L);
                 } else {
                     try {
                         Calendar calendar = Calendar.getInstance();
@@ -311,7 +311,7 @@ public class AdvertisingPresenter extends BasePresenter<AdvertisingView> {
                         Hawk.put(Name.OVERDUE_DATE, calendar.getTimeInMillis());
                     } catch (Exception e) {
                         e.printStackTrace();
-                        Hawk.put(Name.OVERDUE_DATE, null);
+                        Hawk.put(Name.OVERDUE_DATE,  0L);
                     }
                 }
                 if (TextUtils.isEmpty(remaining)) {

+ 28 - 3
app/src/main/java/com/sunzee/mvp/debug/DebugPresenter.java

@@ -4,6 +4,7 @@ import android.util.Log;
 
 import com.hboxs.serialport.frame.ResponseFrame;
 import com.hboxs.serialport.message.Message;
+import com.hboxs.serialport.util.AsciiUtils;
 import com.sunzee.base.BasePresenter;
 import com.sunzee.thread.debugparameter.ThreadPoolDebugParameter;
 import com.sunzee.utils.HexadecimalUtil;
@@ -39,10 +40,11 @@ public class DebugPresenter extends BasePresenter<DebugView> {
             "0", "0","0","0"));
 
     public void setDebugParameter(String name, ArrayList<String> results, ThreadPoolDebugParameter threadGetParameter1) {
+        Log.d(TAG, "setDebugParameter: "+name);
         if (name.equals("M311")) {
             if (!threadGetParameter1.isReceive1()) {
                 threadGetParameter1.setReceive1(true);
-                threadGetParameter1.stopReadM311();
+//                threadGetParameter1.stopReadM311();
                 //参数19 D218
                 threadGetParameter1.getValues().set(2, results.get(9));
                 threadGetParameter1.getValues().set(3, results.get(11));
@@ -54,7 +56,7 @@ public class DebugPresenter extends BasePresenter<DebugView> {
         } else if (name.equals("M320")) {
             if (!threadGetParameter1.isReceive2()) {
                 threadGetParameter1.setReceive2(true);
-                threadGetParameter1.stopReadM320();
+//                threadGetParameter1.stopReadM320();
                 //参数19 D218
                 threadGetParameter1.getValues().set(7, results.get(0));
                 threadGetParameter1.getValues().set(8, results.get(1));
@@ -67,12 +69,22 @@ public class DebugPresenter extends BasePresenter<DebugView> {
         }else if(name.equals("M10")){
             if (!threadGetParameter1.isReceive3()) {
                 threadGetParameter1.setReceive3(true);
-                threadGetParameter1.stopReadM10();
+//                threadGetParameter1.stopReadM10();
                 threadGetParameter1.getValues().set(28, results.get(2));
                 String s = Arrays.toString(results.toArray());
                 LogUtil.d(TAG,"setDebugParameter:"+s);
                 LogUtil.d(TAG,"setDebugParameter: " + threadGetParameter1.getValues());
             }
+        }else if(name.equals("M135")){
+            if (!threadGetParameter1.isReceive4()) {
+                threadGetParameter1.setReceive4(true);
+//                threadGetParameter1.stopReadM135();
+                threadGetParameter1.getValues().set(29, results.get(7));
+                threadGetParameter1.getValues().set(30, results.get(9));
+                String s = Arrays.toString(results.toArray());
+                LogUtil.d(TAG,"315setData1:"+s);
+                LogUtil.d(TAG,"315setData2: " + threadGetParameter1.getValues());
+            }
         }
         if (threadGetParameter1.isReceive1() && threadGetParameter1.isReceive2()&& threadGetParameter1.isReceive3()) {
             mvpView.getDataSuccess();
@@ -80,6 +92,7 @@ public class DebugPresenter extends BasePresenter<DebugView> {
             threadGetParameter1.setReceive1(false);
             threadGetParameter1.setReceive2(false);
             threadGetParameter1.setReceive3(false);
+            threadGetParameter1.setReceive4(false);
         }
     }
 
@@ -198,6 +211,18 @@ public class DebugPresenter extends BasePresenter<DebugView> {
             ArrayList<String> list = new ArrayList(lis);
             list.remove(0);
             setDebugParameter(name, list, poolDebugParameter);
+        }else if("M135".equals(name)){
+            //    转成2进制
+            String s = HexadecimalUtil.hexStringToByte(AsciiUtils.asciiByteArray2HexStr(responseFrame.getData()));
+            //翻转后的数据
+            String s1 = HexadecimalUtil.flipString(s, 8);
+            List<String> lis = Arrays.asList(s1.split(""));
+            ArrayList<String> list = new ArrayList(lis);
+            list.remove(0);
+            for (String s2 : list) {
+                Log.d(TAG, "315setData12: "+s2);
+            }
+            setDebugParameter(name, list, poolDebugParameter);
         }
     }
 }

+ 1 - 1
app/src/main/java/com/sunzee/mvp/home/HomePresenter.java

@@ -140,7 +140,7 @@ public class HomePresenter extends BasePresenter<HomeView> {
                     Calendar calendar = Calendar.getInstance();
                     calendar.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timedata));
                     //第一次就会出现报错。
-                    Long overdueDate = (Long) Hawk.get(Name.OVERDUE_DATE);//购买的到期的时间
+                    Long overdueDate = (Long) Hawk.get(Name.OVERDUE_DATE,0L);//购买的到期的时间
                     Long timeInMillis = calendar.getTimeInMillis();//当前时间
                     String data = (String) Hawk.get(Name.REMAINING);
                     long remaining = Long.valueOf(data);

+ 10 - 10
app/src/main/java/com/sunzee/mvp/homeactivity/HomePageAPresenter.java

@@ -111,7 +111,7 @@ public class HomePageAPresenter extends BasePresenter<HomePageAView> {
                 String remaining = model.getRemaining();
                 if (TextUtils.isEmpty(overdueDate)) {
                     //如果为空
-                    Hawk.put(Name.OVERDUE_DATE, null);
+                    Hawk.put(Name.OVERDUE_DATE,  0L);
                 } else {
                     try {
                         Calendar calendar = Calendar.getInstance();
@@ -119,7 +119,7 @@ public class HomePageAPresenter extends BasePresenter<HomePageAView> {
                         Hawk.put(Name.OVERDUE_DATE, calendar.getTimeInMillis());
                     } catch (Exception e) {
                         e.printStackTrace();
-                        Hawk.put(Name.OVERDUE_DATE, null);
+                        Hawk.put(Name.OVERDUE_DATE,  0L);
                     }
                 }
                 if (TextUtils.isEmpty(remaining)) {
@@ -148,14 +148,14 @@ public class HomePageAPresenter extends BasePresenter<HomePageAView> {
             if (!threadGetParameter1.isReceive2()) {
                 threadGetParameter1.setReceive2(true);
                 threadGetParameter1.stopReadD418();
-                threadGetParameter1.getValues()[6] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(0))));
-                threadGetParameter1.getValues()[7] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(1))));
-                threadGetParameter1.getValues()[0] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(2))));
-                threadGetParameter1.getValues()[1] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(3))));
-                threadGetParameter1.getValues()[2] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(4))));
-                threadGetParameter1.getValues()[3] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(5))));
-                threadGetParameter1.getValues()[4] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(6))));
-                threadGetParameter1.getValues()[5] = String.valueOf(get177Data(HexadecimalUtil.hex2dec(results.get(7))));
+                threadGetParameter1.getValues()[6] = get177Data(HexadecimalUtil.hex2dec(results.get(0)));
+                threadGetParameter1.getValues()[7] = get177Data(HexadecimalUtil.hex2dec(results.get(1)));
+                threadGetParameter1.getValues()[0] = get177Data(HexadecimalUtil.hex2dec(results.get(2)));
+                threadGetParameter1.getValues()[1] = get177Data(HexadecimalUtil.hex2dec(results.get(3)));
+                threadGetParameter1.getValues()[2] = get177Data(HexadecimalUtil.hex2dec(results.get(4)));
+                threadGetParameter1.getValues()[3] = get177Data(HexadecimalUtil.hex2dec(results.get(5)));
+                threadGetParameter1.getValues()[4] = get177Data(HexadecimalUtil.hex2dec(results.get(6)));
+                threadGetParameter1.getValues()[5] = get177Data(HexadecimalUtil.hex2dec(results.get(7)));
 
                 Log.d(TAG, "D418setAdvanced: " + results.size());
             }

+ 8 - 128
app/src/main/java/com/sunzee/service/MyIntentService.java

@@ -1,22 +1,13 @@
 package com.sunzee.service;
 
 import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
 
 import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
 import com.hboxs.serialport.SerialPortDevice;
 import com.hboxs.serialport.SerialPortManager;
-import com.hboxs.serialport.SerialPortSendQueue;
-import com.hboxs.serialport.frame.RstCommandFrame;
-import com.hboxs.serialport.frame.SetCommandFrame;
-import com.hboxs.serialport.frame.WriteCommandFrame;
 import com.hboxs.serialport.message.Message;
-import com.hboxs.serialport.util.ByteUtils;
-import com.hboxs.serialport.util.HexUtils;
 import com.igexin.sdk.GTIntentService;
 import com.igexin.sdk.message.GTCmdMessage;
 import com.igexin.sdk.message.GTNotificationMessage;
@@ -25,17 +16,13 @@ import com.orhanobut.hawk.Hawk;
 import com.sunzee.base.BaseApplication;
 import com.sunzee.model.Global;
 import com.sunzee.model.Heartbeat;
-import com.sunzee.model.HttpResult;
 import com.sunzee.model.HttpResult2;
 import com.sunzee.model.domain.GeTuiBean;
-import com.sunzee.model.domain.GetAdBean;
 import com.sunzee.model.domain.Name;
-import com.sunzee.model.domain.TimeRuleBean;
 import com.sunzee.model.message.ApiMessageEvent;
 import com.sunzee.retrofit.ApiCallback;
 import com.sunzee.retrofit.ApiClient;
 import com.sunzee.retrofit.ApiStores;
-import com.sunzee.ui.activity.HomeActivity;
 import com.sunzee.utils.AlarmManagerUtil;
 import com.sunzee.utils.SharedPreferencesUtils;
 import com.sunzee.utils.ToastUtil;
@@ -46,13 +33,9 @@ import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
 
 import io.reactivex.Observable;
 import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -75,7 +58,8 @@ public class MyIntentService extends GTIntentService {
     @Override
     public void onCreate() {
         super.onCreate();
-        EventBus.getDefault().register(this);
+        if (!EventBus.getDefault().isRegistered(this))
+          EventBus.getDefault().register(this);
     }
 
     @Override
@@ -161,11 +145,6 @@ public class MyIntentService extends GTIntentService {
                 //申请初始化回调
                 statusType(gson, geTuiBean, kind);
                 break;
-            case "pushTimeRule":
-                LogUtil.d(TAG, "MyIntentServicepushTimeRule: ");
-                //广告规则
-                changeAdRules(geTuiBean);
-                break;
             case "Param":
                 //更新参数。
                 LogUtil.d(TAG, "onReceiveMessageData: Param");
@@ -190,6 +169,10 @@ public class MyIntentService extends GTIntentService {
                 //刷新签到码
                 EventBus.getDefault().post(new ApiMessageEvent("signed",null));
                 break;
+            case "log":
+                //上传log日志
+                EventBus.getDefault().post(new ApiMessageEvent("log",geTuiBean.getKind_data()));
+                break;
         }
 
     }
@@ -198,7 +181,6 @@ public class MyIntentService extends GTIntentService {
         String kind_data = geTuiBean.getKind_data();
         if (kind_data.equals("1")) {
             //开机
-//            EventBus.getDefault().post(new ApiMessageEvent(Name.BOOTIME, "开机"));
             EventBus.getDefault().post(new ApiMessageEvent(Name.ALLCLEANING,0));
         }
     }
@@ -214,7 +196,7 @@ public class MyIntentService extends GTIntentService {
                 String remaining = model.getRemaining();
                 if (TextUtils.isEmpty(overdueDate)) {
                     //如果为空
-                    Hawk.put(Name.OVERDUE_DATE, null);
+                    Hawk.put(Name.OVERDUE_DATE, 0L);
                 } else {
                     try {
                         Calendar calendar = Calendar.getInstance();
@@ -222,7 +204,7 @@ public class MyIntentService extends GTIntentService {
                         Hawk.put(Name.OVERDUE_DATE, calendar.getTimeInMillis());
                     } catch (Exception e) {
                         e.printStackTrace();
-                        Hawk.put(Name.OVERDUE_DATE, null);
+                        Hawk.put(Name.OVERDUE_DATE,  0L);
                     }
                 }
                 if (TextUtils.isEmpty(remaining)) {
@@ -309,14 +291,6 @@ public class MyIntentService extends GTIntentService {
         }
     }
 
-
-    private void startWrite(final String address, final String data) {
-        String text = ByteUtils.decimal2fitHex(Integer.valueOf(data));
-        SerialPortManager.getInstance().sendCommandFrame(new WriteCommandFrame(address, HexUtils.hexStr2BinStr(text)), address);
-
-    }
-
-
     private CompositeDisposable mDisposables;
     protected ApiStores apiStores = ApiClient.retrofit().create(ApiStores.class);
 
@@ -333,100 +307,6 @@ public class MyIntentService extends GTIntentService {
     }
 
     /**
-     * 改变广告规则
-     *
-     * @param geTuiBean 广告规则数据
-     */
-    private void changeAdRules(GeTuiBean geTuiBean) {
-        String json = geTuiBean.getKind_data();
-        saveAdRules(json);
-    }
-
-    /**
-     * 保存广告id
-     */
-    private void saveAdRules(String id) {
-        LogUtil.d(TAG, "ad_id ->" + id);
-        Long lid = Long.valueOf(id);
-        Map<String, Long> params = new HashMap<>();
-        params.put("id", lid);
-        addSubscription(apiStores.getTimeRule(params), new ApiCallback<HttpResult<String>>() {
-
-            @Override
-            public void onSuccess(HttpResult<String> rule) {
-                Log.d(TAG, "onSuccess: ");
-                String data = rule.getData();
-                //广告数据
-                ArrayList<GetAdBean> adBeans = Hawk.get("showAd", new ArrayList<GetAdBean>());  //数据为空
-                Gson gson = new Gson();
-                Log.d(TAG, "onSuccess: 1" + adBeans);
-                List<TimeRuleBean> list = gson.fromJson(data, new TypeToken<List<TimeRuleBean>>() {
-                }.getType());
-                Log.d(TAG, "onSuccess: 2");
-                //每个id对应的时间数
-                Map<String, String> adRulesMap = new HashMap<>();
-                for (int i = 0; i < adBeans.size(); i++) {
-                    GetAdBean getAdBean = adBeans.get(i);
-                    StringBuilder sb = new StringBuilder();
-                    for (int j = 0; j < list.size(); j++) {
-                        //每个规则里对应的广告
-                        List<String> ad = list.get(j).getAd();
-                        for (int k = 0; k < ad.size(); k++) {
-                            if (ad.get(k).equals(getAdBean.getId())) {
-                                sb.append(list.get(j).getTime() + "、");
-                            }
-                        }
-                    }
-                    if (sb.length() > 0) {
-                        sb.deleteCharAt(sb.length() - 1);
-                    }
-                    LogUtil.e(TAG, "onNext: " + "ad_id=" + getAdBean.getId() + " rules=" + sb.toString());
-                    adRulesMap.put(getAdBean.getId(), sb.toString());
-                }
-                Log.d(TAG, "onSuccess: 3" + adRulesMap);
-                //保存对应的id对应的广告规则
-                Hawk.put("ad_rules_map", adRulesMap);
-                //发送设备id
-                deviceIdPostApi();
-            }
-
-            @Override
-            public void onFailure(String msg) {
-                Log.d(TAG, "onFailure: " + msg);
-            }
-
-            @Override
-            public void onFinish() {
-
-            }
-        });
-    }
-
-    /**
-     * 上传设备id,返回该id的的广告资源
-     */
-    private void deviceIdPostApi() {
-        Map<String, String> params = new HashMap<>();
-        params.put("clientId", Heartbeat.deviceId + "");
-        addSubscription(apiStores.uploadID(params), new ApiCallback<HttpResult<String>>() {
-
-            @Override
-            public void onSuccess(HttpResult<String> model) {
-                EventBus.getDefault().post(new ApiMessageEvent("DOWNKOADADCID", model.getData()));
-            }
-
-            @Override
-            public void onFailure(String msg) {
-            }
-
-            @Override
-            public void onFinish() {
-
-            }
-        });
-    }
-
-    /**
      * 开始清洗
      *
      * @param gson

File diff suppressed because it is too large
+ 216 - 594
app/src/main/java/com/sunzee/service/MyService.java


+ 10 - 0
app/src/main/java/com/sunzee/thread/debugparameter/DebugParameterTask.java

@@ -6,6 +6,7 @@ import com.hboxs.serialport.frame.RstCommandFrame;
 import com.hboxs.serialport.frame.SetCommandFrame;
 
 import static com.sunzee.thread.debugparameter.DebugParameterThreadType.runM10;
+import static com.sunzee.thread.debugparameter.DebugParameterThreadType.runM135;
 import static com.sunzee.thread.debugparameter.DebugParameterThreadType.runM1411;
 import static com.sunzee.thread.debugparameter.DebugParameterThreadType.runM320;
 import static com.sunzee.thread.debugparameter.DebugParameterThreadType.runRst;
@@ -102,10 +103,19 @@ public class DebugParameterTask implements Runnable {
             case runM10:
                 runReadM10();
                 break;
+            case runM135:
+                runM135();
+                break;
 
         }
     }
 
+    private void runM135() {
+        if (getIsRun()) {
+            SerialPortSendQueue.sendCommand(new ReadCommandFrame("M135", 2), 135, "M135");
+        }
+    }
+
     private void runReadM10() {
         if (getIsRun()) {
             SerialPortSendQueue.sendCommand(new ReadCommandFrame("M10", 2), 10, "M10");

+ 4 - 0
app/src/main/java/com/sunzee/thread/debugparameter/DebugParameterThreadType.java

@@ -12,4 +12,8 @@ public interface DebugParameterThreadType {
     int runY = 3;
 
     int runM10 = 10;
+
+    int runM135 = 135;//消毒水
+
+
 }

+ 21 - 6
app/src/main/java/com/sunzee/thread/debugparameter/ThreadPoolDebugParameter.java

@@ -15,10 +15,10 @@ public class ThreadPoolDebugParameter {
 
     private ScheduledFuture<?>
             mScheduledFutureM1411, mScheduledFutureM311, mScheduledFutureRst, mScheduledFutureSet,
-            mScheduledFutureX, mScheduledFutureY,mScheduledFutureM10;
+            mScheduledFutureX, mScheduledFutureY, mScheduledFutureM10, mScheduledFutureM135;
     private DebugParameterTask
             mTaskRunM1411, mTaskRunM311, mTaskRunMRst, mTaskRunMSet,
-            mTaskRunX, mTaskRunY,mTaskRunM10;
+            mTaskRunX, mTaskRunY, mTaskRunM10, mTaskRunM135;
     private DebugParameterTask mTaskRunM320;
     private ScheduledFuture<?> mScheduledFutureM320;
 
@@ -31,7 +31,7 @@ public class ThreadPoolDebugParameter {
             "0", "0", "0", "0", "0", "0", "0",
             "0", "0", "0", "0", "0", "0", "0",
             "0", "0", "0", "0", "0", "0", "0",
-            "0"));
+            "0", "0", "0"));
 
     public ThreadPoolDebugParameter() {
         scheduled = new ScheduledThreadPoolExecutor(7);
@@ -64,11 +64,14 @@ public class ThreadPoolDebugParameter {
         mTaskRunM320 = new DebugParameterTask(DebugParameterThreadType.runM320);
         mScheduledFutureM320 = scheduled.scheduleAtFixedRate(mTaskRunM320, 50, 1000, TimeUnit.MILLISECONDS);
 
-
         //读取急停
         mTaskRunM10 = new DebugParameterTask(DebugParameterThreadType.runM10);
         mScheduledFutureM10 = scheduled.scheduleAtFixedRate(mTaskRunM10, 60, 1000, TimeUnit.MILLISECONDS);
 
+        //读取急停消毒水,清洁剂
+        mTaskRunM135 = new DebugParameterTask(DebugParameterThreadType.runM135);
+        mScheduledFutureM135 = scheduled.scheduleAtFixedRate(mTaskRunM135, 60, 1000, TimeUnit.MILLISECONDS);
+
 
     }
 
@@ -81,14 +84,14 @@ public class ThreadPoolDebugParameter {
         stopReadX();
         stopReadY();
         stopReadM10();
+        stopReadM135();
     }
 
 
-
     private boolean isReceive1 = false;
     private boolean isReceive2 = false;
     private boolean isReceive3 = false;
-
+    private boolean isReceive4 = false;
 
 
     public boolean isReceive2() {
@@ -115,6 +118,14 @@ public class ThreadPoolDebugParameter {
         isReceive3 = receive3;
     }
 
+    public boolean isReceive4() {
+        return isReceive4;
+    }
+
+    public void setReceive4(boolean receive4) {
+        isReceive4 = receive4;
+    }
+
     public void stopReadM320() {
         stopRead(mTaskRunM320, mScheduledFutureM320);
     }
@@ -139,6 +150,10 @@ public class ThreadPoolDebugParameter {
         stopRead(mTaskRunY, mScheduledFutureY);
     }
 
+    public void stopReadM135() {
+        stopRead(mTaskRunM135, mScheduledFutureM135);
+    }
+
     //-------------------------------------------stop read-----------------------------------------------------
 
     public static void stopRead(DebugParameterTask threadTask, ScheduledFuture<?> scheduledFuture1) {

+ 11 - 1
app/src/main/java/com/sunzee/ui/activity/AdvertisingActivity.java

@@ -71,7 +71,8 @@ public class AdvertisingActivity extends MvpActivity<AdvertisingPresenter> imple
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_advertising);
-        EventBus.getDefault().register(this);
+        if (!EventBus.getDefault().isRegistered(this))
+            EventBus.getDefault().register(this);
         mGeTuiUtil = new GeTuiUtil(this);
         mGeTuiUtil.geTui();
         initView();
@@ -79,6 +80,7 @@ public class AdvertisingActivity extends MvpActivity<AdvertisingPresenter> imple
         WindowManager manager = this.getWindowManager();
         DisplayMetrics outMetrics = new DisplayMetrics();
         manager.getDefaultDisplay().getMetrics(outMetrics);
+        Log.d(TAG, "on1Create: ");
     }
 
     private void initEvent() {
@@ -173,10 +175,17 @@ public class AdvertisingActivity extends MvpActivity<AdvertisingPresenter> imple
         super.onStop();
         mLeftsimplePlayer.onDestroy();
         mRightsimplePlayer.onDestroy();
+        Log.d(TAG, "on1Stop: ");
 
     }
 
     @Override
+    protected void onStart() {
+        super.onStart();
+        Log.d(TAG, "on1Start: ");
+    }
+
+    @Override
     protected void onDestroy() {
         super.onDestroy();
         mPoolAdvanceParameter.stopAll();
@@ -184,6 +193,7 @@ public class AdvertisingActivity extends MvpActivity<AdvertisingPresenter> imple
         myHandler.removeCallbacksAndMessages(null);
         myHandler = null;
         stopRefreshTime();
+        Log.d(TAG, "on1Destroy: ");
     }
 
     private long mPressTime = 0L;

+ 8 - 5
app/src/main/java/com/sunzee/ui/activity/HomeActivity.java

@@ -80,7 +80,6 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
     private FragmentManager mFragmentManager;
 
     private TextView mTvConnectionSystem;
-    private String systemId;
     private TextView mTvSystemId;
     private ManagementSystemDialog mManagementSystemDialog;
     private static final String TAG = "HomeActivity";
@@ -96,6 +95,9 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_home);
+        if (!EventBus.getDefault().isRegistered(this))
+            EventBus.getDefault().register(this);
+        Log.d(TAG, "on1Create: ");
         initView();
         initEvent();
     }
@@ -103,7 +105,7 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
     @Override
     protected void onStart() {
         super.onStart();
-        EventBus.getDefault().register(this);
+        Log.d(TAG, "on1Start: ");
     }
 
     private void initView() {
@@ -118,6 +120,7 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
         mTvConnectionSystem = findViewById(R.id.connection_system);
         mTvSystemId = findViewById(R.id.tv_system_id);
         flHomeContent = findViewById(R.id.fl_home_content);
+
         String managerId = (String) SharedPreferencesUtils.getParam(Name.SYSTEM_ID, "");
         if (managerId != null && !TextUtils.isEmpty(managerId)) {
             cheeckConnectState(false);
@@ -130,7 +133,6 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
         if (location == null) {
             Log.d(TAG, "获取基站信息失败: ");
         }
-
     }
 
     public String getVersionName() {
@@ -243,7 +245,6 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
                             ToastUtil.showToast(UiUtil.getStringRes(R.string.idsb));
                             return;
                         }
-                        systemId = text;
                         mvpPresenter.connectionSystem(text);
                         SharedPreferencesUtils.setParam(Name.CONNECT_STATE, 1);
                         mTvSystemId.setText("连接申请中");
@@ -346,12 +347,14 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
     protected void onStop() {
         super.onStop();
         stopTimerSet();
-        EventBus.getDefault().unregister(this);
+        Log.d(TAG, "on1Stop: ");
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        EventBus.getDefault().unregister(this);
+        Log.d(TAG, "on1Destroy: ");
     }
 
     @Override

+ 99 - 23
app/src/main/java/com/sunzee/ui/activity/HomePageAActivity.java

@@ -58,6 +58,7 @@ import com.sunzee.ui.view.CustomViewSketchMapGrounp;
 import com.sunzee.utils.AdvacedUtil;
 import com.sunzee.utils.GeTuiUtil;
 import com.sunzee.utils.HexadecimalUtil;
+import com.sunzee.utils.LogUtils;
 import com.sunzee.utils.LongClickUtils;
 import com.sunzee.utils.PreventSpeedClickUtil;
 import com.sunzee.utils.ToastUtil;
@@ -82,7 +83,7 @@ import java.util.TimerTask;
  */
 public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implements HomePageAView {
 
-    private static final String TAG = "AdvertisingActivity";
+    private static final String TAG = "HomePageAActivity";
     private GeTuiUtil mGeTuiUtil;
     private TextView mTvTime;
     private MyHandler myHandler;
@@ -117,14 +118,16 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
     private LinearLayout llSigninCodeError;
     private Button btnFlushCheckCode;
     private TextView mTvCommit;
-    private static boolean sIsLocation = false;
     private Boolean wcLocaltion;
+    private ImageView ivSketChmap;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_homeactivity25d);
-        EventBus.getDefault().register(this);
+//        setContentView(R.layout.activity_homeactivity);
+        if (!EventBus.getDefault().isRegistered(this))
+            EventBus.getDefault().register(this);
         //打开个推
         mGeTuiUtil = new GeTuiUtil(this);
         mGeTuiUtil.geTui();
@@ -136,14 +139,22 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
         DisplayMetrics outMetrics = new DisplayMetrics();
         manager.getDefaultDisplay().getMetrics(outMetrics);
         mvpPresenter.getCheckCode();
+        Log.d(TAG, "on1Create: ");
     }
 
     private CustomViewSketchMapGrounp mCustomViewGrounp;
 
+    @Override
+    protected void onStart() {
+        super.onStart();
+        Log.d(TAG, "on1Start: ");
+    }
+
     private void initViewCV() {
         //为控件设置数据
         mCustomViewGrounp = findViewById(R.id.cv_custom);
         List<String> list = new ArrayList<>();
+        Log.d(TAG, "initViewCV111: "+MyService.TOTAL_SUM);
         for (int i = 0; i < MyService.TOTAL_SUM + 1; i++) {//厕所个数可控。
             list.add(i + 1 + "");
         }
@@ -314,8 +325,12 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
         tvContacts = findViewById(R.id.tv_contacts);
         llSigin = findViewById(R.id.ll_sigin);
         ivSigninCode = findViewById(R.id.iv_signin_code);
+        ivSketChmap = findViewById(R.id.iv_sketchmap);
         llSigninCodeError = findViewById(R.id.ll_signin_code_error);
         mTvCommit = findViewById(R.id.tv_commit);
+        Log.d(TAG, "sketchmapinitView: " + UiUtil.getResId(Hawk.get(Name.WCTHEMENAME, "sketchmap"), R.drawable.class));
+        Log.d(TAG, "sketchmapinitView: " + R.drawable.sketchmap);
+        ivSketChmap.setImageResource(UiUtil.getResId(Hawk.get(Name.WCTHEMENAME, "sketchmap"), R.drawable.class));
         wcLocaltion = Hawk.get(Name.WCLOCALTION, false);
         if (wcLocaltion) {
             mTvCommit.setVisibility(View.VISIBLE);
@@ -420,19 +435,19 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
     @Override
     protected void onStop() {
         super.onStop();
-        Log.d(TAG, "onStoponStop: ");
-
+        Log.d(TAG, "on1StoponStop: ");
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        EventBus.getDefault().unregister(this);
         stopRefreshTime();
         mPoolAdvanceParameter.stopAll();
         threadPoolHomepageA.stopALLRead();
         myHandler.removeCallbacksAndMessages(null);
         myHandler = null;
+        Log.d(TAG, "on1Destroy: ");
+        EventBus.getDefault().unregister(this);
     }
 
     private long mPressTime = 0L;
@@ -501,16 +516,16 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
                         tvHumidity.setText(Heartbeat.cabinetHd + "%");
                     } else if ("D172".equals(name)) {
                         try {
-                            Integer integer = Integer.valueOf(getRealData(results));
-                            if (integer < 0) {
-                                Heartbeat.odorConcentration = 0;
+                            String realData = getRealData(results);
+//                            Integer integer = Integer.valueOf(getRealData(results));
+                            if ("0".equals(realData)) {
+                                Heartbeat.odorConcentration = "0";
                             } else {
-                                Heartbeat.odorConcentration = integer;
+                                Heartbeat.odorConcentration = realData;
                             }
                         } catch (Exception e) {
                         }
-                        ;
-                        tvAmmonia.setText(Heartbeat.odorConcentration + "");
+                        tvAmmonia.setText(Heartbeat.odorConcentration);
                     } else {
                         mvpPresenter.setAdvanced(name, results, mPoolAdvanceParameter);
                     }
@@ -525,11 +540,13 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
         String s = String.valueOf(HexadecimalUtil.hex2dec(results.get(0)));
         Integer integer = Integer.valueOf(s);
         long l = HexadecimalUtil.hex2dec(results.get(0));
+        double d = l / 10.0D;//得出小数点
         //2进制
         String s1 = Integer.toBinaryString(integer);
         if (s1.length() < 16) {
             //正数
-            realData = String.valueOf(Math.round((l / Global.num) * 10));
+            // realData = String.valueOf(Math.round((l / Global.num) * 10));错误的
+            realData = String.valueOf(d);
         } else {
             //负数
             realData = AdvacedUtil.getRealData(s1);
@@ -573,11 +590,27 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
                     activity.tvWcUser.setText(activity.use + "");
                     activity.tvWcEmpty.setText(activity.empty + "");
                     //厕所示意图
-                    for (int i = 0; i < MyService.sHoleInformationList.size(); i++) {
-                        getXValue(MyService.sHoleInformationList.get(i), i, activity.rvToiletState);
+//                    for (int i = 0; i < MyService.sHoleInformationList.size(); i++) {
+//                        getXValue(MyService.sHoleInformationList.get(i), i, activity.rvToiletState);
+//                    }
+                    for (int i = 0; i < MyService.sHomePageLocationList.size(); i++) {
+                        getXValue(MyService.sHomePageLocationList.get(i),i,activity.rvToiletState);
                     }
                     if (!wcLocaltion) {
-                        for (int i = 0; i < MyService.sHoleInformationList.size(); i++) {
+                        Log.d(TAG, "handleMessage111: "+MyService.sHomePageLocationList.size());
+                        for (int i = 0; i < MyService.sHomePageLocationList.size(); i++) {
+                            CustomSketchMapView childAt = (CustomSketchMapView) mCustomViewGrounp.getChildAt(i);
+                            String s = MyService.sHomePageLocationList.get(i);
+                            if ("1".equals(s)) {
+                                childAt.setText("有");
+                                childAt.setVisibility(View.VISIBLE);
+                            } else {
+                                childAt.setText("无");
+                                childAt.setVisibility(View.GONE);
+                            }
+                        }
+
+                      /*  for (int i = 0; i < MyService.sHoleInformationList.size(); i++) {
                             CustomSketchMapView childAt = (CustomSketchMapView) mCustomViewGrounp.getChildAt(i);
                             HoleInformation holeInformation = MyService.sHoleInformationList.get(i);
                             if (holeInformation.isUserAndEmpty()) {
@@ -587,7 +620,7 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
                                 childAt.setText("无");
                                 childAt.setVisibility(View.GONE);
                             }
-                        }
+                        }*/
                     }
 
                     break;
@@ -631,6 +664,30 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
 
             }
         }
+
+        /**
+         * 改变对应的状态
+         *
+         * @param position 要改变的图片的位置
+         */
+        private void getXValue(String holeInformation, int position, RecyclerView recyclerView) {
+            View view = recyclerView.getLayoutManager().findViewByPosition(position);
+            if (view == null) {
+                Log.d("空1", "getXYValue: p=" + position + "  index=" + position);
+            } else {
+                HomePageAAdapter.TitleViewHolder viewHolder = (HomePageAAdapter.TitleViewHolder) recyclerView.getChildViewHolder(view);
+                if ("1".equals(holeInformation)) {
+                    viewHolder.getTv_toiletdiagram().setBackgroundResource(R.drawable.shape_home_mannedtoilet);
+                    viewHolder.getTv_toiletdiagram().setText("有人");
+                    viewHolder.getTv_toiletdiagram().setTextColor(Color.WHITE);
+                } else {
+                    viewHolder.getTv_toiletdiagram().setBackgroundResource(R.drawable.icon9);
+                    viewHolder.getTv_toiletdiagram().setText("无人");
+                    viewHolder.getTv_toiletdiagram().setTextColor(getResources().getColor(R.color.state_green));
+                }
+
+            }
+        }
     }
 
     private Timer timerGetTime;
@@ -723,14 +780,14 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
      * 查看使用状态和空置状态
      */
     private void showUseEmptyWC() {
-        if (MyService.sHoleInformationList != null) {
-            use = 0;
-            empty = 0;
+        if (MyService.sHomePageLocationList != null) {
             if (MyService.sCleaningLocationList != null) {
+                use = 0;
+                empty = 0;
                 synchronized (MyService.sCleaningLocationList) {
-                    for (int i = 0; i < MyService.sHoleInformationList.size(); i++) {
-                        HoleInformation holeInformation = MyService.sHoleInformationList.get(i);
-                        if (holeInformation.isUserAndEmpty()) {//有人
+                    for (int i = 0; i < MyService.sHomePageLocationList.size(); i++) {
+                        String s = MyService.sHomePageLocationList.get(i);
+                        if ("1".equals(s)) {//有人
                             use++;
                         } else {                                  //无人
                             empty++;
@@ -742,6 +799,25 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
                 }
             }
         }
+//        if (MyService.sHomePageLocationList != null) {
+//            if (MyService.sCleaningLocationList != null) {
+//                use = 0;
+//                empty = 0;
+//                synchronized (MyService.sCleaningLocationList) {
+//                    for (int i = 0; i < MyService.sHoleInformationList.size(); i++) {
+//                        HoleInformation holeInformation = MyService.sHoleInformationList.get(i);
+//                        if (holeInformation.isUserAndEmpty()) {//有人
+//                            use++;
+//                        } else {                                  //无人
+//                            empty++;
+//                        }
+//                    }
+//                    if (myHandler != null) {
+//                        myHandler.sendEmptyMessage(2);
+//                    }
+//                }
+//            }
+//        }
     }
 
 

+ 1 - 1
app/src/main/java/com/sunzee/ui/activity/LoginActivity.java

@@ -112,7 +112,7 @@ public class LoginActivity extends MvpActivity<LoginPresenter> implements LoginV
 
     private Timer countDownTimer;
     private TimerTask timerTask;
-    private static int time = 120;
+    private static int time = 60;
 
     /**
      * 开始倒计时

+ 5 - 2
app/src/main/java/com/sunzee/ui/fragment/AdvanceParameterFragment.java

@@ -56,6 +56,9 @@ public class AdvanceParameterFragment extends MvpFragment<AdvanceParameterPresen
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View inflate = inflater.inflate(R.layout.fragment_general_parameter, container, false);
+        if (!EventBus.getDefault().isRegistered(this))
+          EventBus.getDefault().register(this);
+        Log.d(TAG, "on1CreateView: ");
         initView(inflate);
         initEvent();
         return inflate;
@@ -65,7 +68,6 @@ public class AdvanceParameterFragment extends MvpFragment<AdvanceParameterPresen
     public void onStart() {
         super.onStart();
         Log.d(TAG, "onStart: ");
-        EventBus.getDefault().register(this);
         showLoading();
         mPoolAdvanceParameter.stopAll();
         mPoolAdvanceParameter.stopReadD79();
@@ -78,8 +80,9 @@ public class AdvanceParameterFragment extends MvpFragment<AdvanceParameterPresen
         EventBus.getDefault().unregister(this);
         mPoolAdvanceParameter.stopAll();
         mPoolAdvanceParameter.stopReadD79();
-        Log.d(TAG, "onDestroyView: ");
+        Log.d(TAG, "on1DestroyView: ");
         super.onDestroyView();
+
     }
 
     private void initEvent() {

+ 5 - 3
app/src/main/java/com/sunzee/ui/fragment/DebugFragment.java

@@ -58,6 +58,8 @@ public class DebugFragment extends MvpFragment<DebugPresenter> implements DebugV
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View inflate = inflater.inflate(R.layout.fragment_debug, container, false);
+        if (!EventBus.getDefault().isRegistered(this))
+            EventBus.getDefault().register(this);
         initView(inflate);
         initEvent();
         return inflate;
@@ -66,10 +68,10 @@ public class DebugFragment extends MvpFragment<DebugPresenter> implements DebugV
     @Override
     public void onStart() {
         super.onStart();
-        EventBus.getDefault().register(this);
         showLoading();
         mPoolDebugParameter.stopAll();
         mPoolDebugParameter.startALLRead();
+        Log.d(TAG, "onStart: ");
     }
 
     @Override
@@ -242,10 +244,10 @@ public class DebugFragment extends MvpFragment<DebugPresenter> implements DebugV
             View view = mRvDebugList.getChildAt(i);
             if (null != mRvDebugList.getChildViewHolder(view)) {
                 DebugParameterAdapter.ViewHolder viewHolder = (DebugParameterAdapter.ViewHolder) mRvDebugList.getChildViewHolder(view);
-                if (i==1||i ==0) {
+                /*if (i==1||i ==0) {
                     viewHolder.cbManual.setChecked(!viewHolder.cbManual.isChecked());
                     continue;
-                }
+                }*/
                 if (!value.get(i).equals("0")) {
                     //当它为选择状态时,无需设置,避免闪硕
                     if (!viewHolder.cbManual.isChecked()) {

+ 2 - 1
app/src/main/java/com/sunzee/ui/fragment/GeneralParameterFragment.java

@@ -51,6 +51,8 @@ public class GeneralParameterFragment extends MvpFragment<GeneralParameterPresen
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View inflate = inflater.inflate(R.layout.fragment_general_parameter, container, false);
+        if (!EventBus.getDefault().isRegistered(this))
+            EventBus.getDefault().register(this);
         initView(inflate);
         initEvent();
         return inflate;
@@ -59,7 +61,6 @@ public class GeneralParameterFragment extends MvpFragment<GeneralParameterPresen
     @Override
     public void onStart() {
         super.onStart();
-        EventBus.getDefault().register(this);
         showLoading();
         mPoolGeneralParameter.stopAll();
         mPoolGeneralParameter.startALLRead();

+ 2 - 1
app/src/main/java/com/sunzee/ui/fragment/HomepageFragment.java

@@ -53,7 +53,8 @@ public class HomepageFragment extends MvpFragment<HomePagePresenter> implements
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View inflate = inflater.inflate(R.layout.fragment_home2, container, false);
-        EventBus.getDefault().register(this);
+        if (!EventBus.getDefault().isRegistered(this))
+            EventBus.getDefault().register(this);
         initView(inflate);
         initEvent();
         return inflate;

+ 53 - 5
app/src/main/java/com/sunzee/ui/fragment/OtherFragment.java

@@ -21,6 +21,8 @@ import android.view.ViewGroup;
 import android.view.Window;
 import android.view.WindowManager;
 import android.view.inputmethod.InputMethodManager;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.LinearLayout;
@@ -28,11 +30,13 @@ import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.RelativeLayout;
 import android.widget.SeekBar;
+import android.widget.Spinner;
 
 import com.orhanobut.hawk.Hawk;
 import com.sunzee.R;
 import com.sunzee.base.BaseApplication;
 import com.sunzee.base.MvpFragment;
+import com.sunzee.model.HoleInformation;
 import com.sunzee.model.domain.Name;
 import com.sunzee.model.message.NetMessageEvent;
 import com.sunzee.mvp.other.OtherPresenter;
@@ -89,13 +93,22 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
     private RadioGroup rgIcomMove;
     private RadioButton rbOpen;
     private RadioButton rbClose;
+    private ArrayAdapter<String> themeAdapter;
+    private String[] themeNames ={"sketchmap","sketchmap2"};
+    private Spinner spModle;
+    private Button btnTheme;
+    private int themePosition = 0;
+
 
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View inflate = inflater.inflate(R.layout.fragment_other, container, false);
+        if (!EventBus.getDefault().isRegistered(this))
+            EventBus.getDefault().register(this);
         initView(inflate);
         initEvent();
+        Log.d(TAG, "on1CreateView: ");
         return inflate;
     }
 
@@ -108,6 +121,7 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
         btnPCheckUpdate.setOnClickListener(this);
         mRbWifi.setOnClickListener(this);
         btnCleanCount.setOnClickListener(this);
+        btnTheme.setOnClickListener(this);
         rlOther.setOnTouchListener(new View.OnTouchListener() {
             @SuppressLint("ClickableViewAccessibility")
             @Override
@@ -120,6 +134,19 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
                 return false;
             }
         });
+        spModle.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
+
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                themePosition = position;
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+
+            }
+        });
         btnPlcContentUdate.setOnClickListener(this);
         btnSquattingContentUdate.setOnClickListener(this);
         btnCheckUpdate.setOnClickListener(this);
@@ -153,13 +180,20 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
         rgIcomMove.setOnCheckedChangeListener(this);
         rbOpen = inflate.findViewById(R.id.rb_moveopen);
         rbClose = inflate.findViewById(R.id.rb_moveclose);
+        spModle = inflate.findViewById(R.id.sp_model2);
+        btnTheme = inflate.findViewById(R.id.btn_theme);
+        themeAdapter = new ArrayAdapter<>(this.getContext(),R.layout.spinner_text);
+        for (String themeName : themeNames) {
+            themeAdapter.add(themeName);
+        }
+        spModle.setAdapter(themeAdapter);
+        spModle.setSelection(Hawk.get(Name.WCTHEMEPOSITION,0));
         if (Hawk.get(Name.WCLOCALTION, false)) {
             rbOpen.setChecked(true);
             Log.d(TAG, "WCLOCALTION rbOpen: "+Hawk.get(Name.WCLOCALTION, false));
         } else {
             rbClose.setChecked(true);
             Log.d(TAG, "WCLOCALTION rbClose: "+Hawk.get(Name.WCLOCALTION, false));
-
         }
         appCompatCheckBoxes = new AppCompatCheckBox[MyService.TOTAL_SUM];
         appCompatPeopleCheckBoxes = new AppCompatCheckBox[MyService.TOTAL_SUM];
@@ -180,6 +214,7 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
                 isSelectPeopleCheckbox = initTotileCheckBox();
             }
         }
+
         for (int i = 0; i < MyService.TOTAL_SUM; i++) {
             //生成一个厕所状态checkbox按钮
             AppCompatCheckBox aCheckBox = getAppCompatCheckBox(i, isSelectPeopleCheckbox[i]);
@@ -235,7 +270,6 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
     @Override
     public void onStart() {
         super.onStart();
-        EventBus.getDefault().register(this);
         //每次界面刷新都需要重新获取音量和亮度
         initSeekBar();
         //初始化选择的网络:wifi还是移动4g
@@ -245,16 +279,18 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
     @Override
     public void onStop() {
         super.onStop();
-        EventBus.getDefault().unregister(this);
         getActivity().unregisterReceiver(receiver);
     }
 
     @Override
     public void onDestroy() {
         super.onDestroy();
-
+        EventBus.getDefault().unregister(this);
+        Log.d(TAG, "on1Destroy: ");
     }
 
+
+
     /**
      * 初始化网络类型
      * 1.开启广播监听当前网络类型时
@@ -457,7 +493,14 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
                     ToastUtil.showToast("请输入个数");
                     break;
                 }
-                MyService.TOTAL_SUM = Integer.valueOf(squattingContent);
+                synchronized (MyService.sCleaningLocationList) {//多线程操作需要加上同步锁
+                    MyService.TOTAL_SUM = Integer.valueOf(squattingContent);
+                    MyService.sHoleInformationList.clear();
+                    MyService.sCleaningLocationList.clear();
+                    for (int i = 0; i < MyService.TOTAL_SUM; i++) {
+                        MyService.sHoleInformationList.add(new HoleInformation(2, 0));//初始化
+                    }
+                }
                 Hawk.put(Name.TOILETSNUMBER, Integer.valueOf(squattingContent));
                 ToastUtil.showToast(UiUtil.getStringRes(R.string.update_success) + ",重启触摸屏后生效");
                 break;
@@ -505,6 +548,11 @@ public class OtherFragment extends MvpFragment<OtherPresenter> implements OtherV
                 Log.d(TAG, "btn_contract_updateonClick: " + contract + ":" + wayContacts);
                 ToastUtil.showToast(UiUtil.getStringRes(R.string.update_success));
                 break;
+            case R.id.btn_theme:
+                Hawk.put(Name.WCTHEMENAME,themeNames[themePosition]);//保存主题
+                Hawk.put(Name.WCTHEMEPOSITION,themePosition);
+                ToastUtil.showToast(UiUtil.getStringRes(R.string.update_success));
+                break;
         }
     }
 

+ 2 - 42
app/src/main/java/com/sunzee/utils/FileUtil.java

@@ -164,7 +164,7 @@ public class FileUtil {
 
 //生成文件
 
-    private static File makeFilePath(String filePath, String fileName) {
+    public static File makeFilePath(String filePath, String fileName) {
         File file = null;
         makeRootDirectory(filePath);
         try {
@@ -267,41 +267,6 @@ public class FileUtil {
         }
     }
 
-    /**
-     * 删除超过7天的log文件
-     */
-    public static void pastDueLog() {
-        File logFolder = new File(FILEPATH);
-        if (logFolder.exists()) {
-            File[] logFiles = logFolder.listFiles();
-            for (File file : logFiles) {
-                SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
-                String nowDate = format.format(new Date(System.currentTimeMillis()));
-                //LogUtil.d(TAG, "duibi: " + nowDate);
-                try {
-                    String replace = file.getName().replace("-" + FileUtil.getDeviceId() + ".txt", "");
-                    LogUtil.d(TAG, "pastDueLog: " + replace);
-                    Date dateFile = format.parse(replace);
-                    Date dataNow = format.parse(nowDate);
-                    long fileTime = dateFile.getTime();
-                    long nowTime = dataNow.getTime();
-                    if (nowTime - fileTime > SEVENT_DAYS) {
-                        //如果超过7天,我们就进行删除指定的文件,否则就什么都不做。
-                        //LogUtil.d(TAG, "duibi: "+fileTime);
-                        //删除
-                        file.delete();
-                    }
-                    //LogUtil.d(TAG, "duibi: "+dataNow);
-                    //LogUtil.d(TAG, "duibi: " + file.getName());
-                } catch (ParseException e) {
-                    //604800000 7天
-                    e.printStackTrace();
-                }
-
-            }
-        }
-
-    }
 
     /**
      * 获取当前时间
@@ -314,10 +279,5 @@ public class FileUtil {
         return date;
     }
 
-    /**
-     * 創建log文件
-     */
-    public static File createLogFile() {
-        return makeFilePath(FILEPATH, FileUtil.getFileName());
-    }
+
 }

+ 164 - 0
app/src/main/java/com/sunzee/utils/LogUtils.java

@@ -0,0 +1,164 @@
+package com.sunzee.utils;
+
+import com.sunzee.retrofit.ApiStores;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class LogUtils {
+    private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+    private static FileOutputStream mFileOutputStream;
+    public static final long SEVENT_DAYS = 604800000;//7天的毫秒数
+
+    /**
+     * 写入数据
+     * @param logDate
+     */
+    public static void logWrite(String logDate){
+        String content = format.format(new Date(System.currentTimeMillis()))+":" + logDate + "\r\n";
+        try {
+            mFileOutputStream = new FileOutputStream(createLogFile(), true);
+            mFileOutputStream.write(content.getBytes());
+            mFileOutputStream.close();
+        } catch (Exception e) {
+        }
+    }
+
+    /**
+     * 删除超过7天的log文件
+     */
+    public static void pastDueLog() {
+        File logFolder = new File(FileUtil.FILEPATH);
+        if (logFolder.exists()) {
+            File[] logFiles = logFolder.listFiles();
+            if (logFiles == null) {
+                return;
+            }
+            for (File file : logFiles) {
+                SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+                String nowDate = format.format(new Date(System.currentTimeMillis()));
+                try {
+                    String replace = file.getName().replace("-" + FileUtil.getDeviceId() + ".txt", "");
+                    Date dateFile = format.parse(replace);
+                    Date dataNow = format.parse(nowDate);
+                    long fileTime = dateFile.getTime();
+                    long nowTime = dataNow.getTime();
+                    if (nowTime - fileTime > SEVENT_DAYS) {
+                        //如果超过7天,我们就进行删除指定的文件,否则就什么都不做。
+                        //删除
+                        file.delete();
+                    }
+                } catch (ParseException e) {
+                    //604800000 7天
+                    e.printStackTrace();
+                }
+
+            }
+        }
+    }
+
+    /**
+     * 創建log文件,以及文件的路径。
+     */
+    public static File createLogFile() {
+        return FileUtil.makeFilePath(FileUtil.FILEPATH, FileUtil.getFileName());
+    }
+
+    /**
+     * 上传数据到后台
+     */
+    public static void uploadLogApi(String kindData) {
+        File file = new File("/storage/emulated/0/logdata/" + kindData + ".txt");
+        if (file.exists()) {
+            if (file.isFile()) {
+                DataInputStream in = null;
+                OutputStream out = null;
+                HttpURLConnection conn = null;
+                InputStream ins = null;
+                ByteArrayOutputStream outStream = null;
+                try {
+                    URL url = new URL(ApiStores.API_SERVER_URL + "/api/app_equipment/index/sendLog.htm?fileName=" + kindData);
+
+                    conn = (HttpURLConnection) url.openConnection();
+                    // 发送POST请求必须设置如下两行
+                    conn.setDoOutput(true);
+                    conn.setUseCaches(false);
+                    conn.setRequestMethod("POST");
+                    conn.setRequestProperty("Content-Type", "text/html");
+                    conn.setRequestProperty("Cache-Control", "no-cache");
+                    conn.setRequestProperty("Charsert", "UTF-8");
+                    conn.connect();
+                    conn.setConnectTimeout(10000);
+                    out = conn.getOutputStream();
+                    in = new DataInputStream(new FileInputStream(file));
+
+                    int bytes = 0;
+                    byte[] buffer = new byte[1024];
+                    while ((bytes = in.read(buffer)) != -1) {
+                        out.write(buffer, 0, bytes);
+                    }
+
+                    out.flush();
+
+                    // 返回流
+                    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
+                        ins = conn.getInputStream();
+                        outStream = new ByteArrayOutputStream();
+                        byte[] data = new byte[1024];
+                        int count = -1;
+                        while ((count = ins.read(data, 0, 1024)) != -1) {
+                            outStream.write(data, 0, count);
+                        }
+
+                    } else {
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                } finally {
+                    if (in != null) {
+                        try {
+                            in.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if (out != null) {
+                        try {
+                            out.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if (ins != null) {
+                        try {
+                            ins.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if (outStream != null) {
+                        try {
+                            outStream.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if (conn != null) {
+                        conn.disconnect();
+                    }
+                }
+            }
+        }
+    }
+}

BIN
app/src/main/res/drawable-hdpi/sketchmap.png


BIN
app/src/main/res/drawable-hdpi/sketchmap2.png


BIN
app/src/main/res/drawable-hdpi/sketchmaps.png


BIN
app/src/main/res/drawable-mdpi/sketchmap.png


BIN
app/src/main/res/drawable-mdpi/sketchmap2.png


BIN
app/src/main/res/drawable-mdpi/sketchmaps.png


BIN
app/src/main/res/drawable-xhdpi/sketchmap.png


BIN
app/src/main/res/drawable-xhdpi/sketchmap2.png


BIN
app/src/main/res/drawable-xhdpi/sketchmaps.png


BIN
app/src/main/res/drawable-xxhdpi/sketchmap.png


BIN
app/src/main/res/drawable-xxhdpi/sketchmap2.png


BIN
app/src/main/res/drawable-xxhdpi/sketchmaps.png


BIN
app/src/main/res/drawable-xxxhdpi/sketchmap.png


BIN
app/src/main/res/drawable-xxxhdpi/sketchmap2.png


BIN
app/src/main/res/drawable-xxxhdpi/sketchmaps.png


+ 21 - 1
app/src/main/res/layout/activity_homeactivity.xml

@@ -27,7 +27,27 @@
             android:text="> 厕所示意图"
             android:textColor="#bfc0c1"
             android:textSize="@dimen/sp_6" />
-
+        <TextView
+            android:id="@+id/tv_commit"
+            android:layout_width="@dimen/dp_50"
+            android:layout_height="@dimen/dp_20"
+            android:layout_marginRight="@dimen/dp_10"
+            android:layout_marginTop="@dimen/dp_10"
+            android:background="@drawable/shape_login_rounded_rectangle"
+            android:gravity="center"
+            android:text="保存位置修改"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_6" />
+        <com.sunzee.ui.view.CustomViewSketchMapGrounp
+            android:id="@+id/cv_custom"
+            android:visibility="gone"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+        <ImageView
+            android:id="@+id/iv_sketchmap"
+            android:layout_width="@dimen/dp_345"
+            android:visibility="gone"
+            android:layout_height="match_parent"/>
         <TextView
             android:id="@+id/tv_equipment_no1"
             android:layout_width="wrap_content"

+ 3 - 4
app/src/main/res/layout/activity_homeactivity25d.xml

@@ -38,8 +38,7 @@
             <ImageView
                 android:id="@+id/iv_sketchmap"
                 android:layout_width="@dimen/dp_345"
-                android:layout_height="match_parent"
-                android:background="@drawable/sketchmap" />
+                android:layout_height="match_parent"/>
             <com.sunzee.ui.view.CustomViewSketchMapGrounp
                 android:id="@+id/cv_custom"
                 android:layout_width="match_parent"
@@ -133,7 +132,7 @@
 
                     <TextView
                         android:id="@+id/tv_date"
-                        android:layout_width="@dimen/dp_180"
+                        android:layout_width="@dimen/dp_185"
                         android:layout_height="wrap_content"
                         android:layout_alignParentRight="true"
                         android:layout_marginTop="@dimen/dp_14"
@@ -340,7 +339,7 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="室内氨气(PPM)"
+                                android:text="气味浓度(PPM)"
                                 android:textColor="#E6EAFDFF"
                                 android:textSize="@dimen/sp_6" />
 

+ 42 - 1
app/src/main/res/layout/fragment_other.xml

@@ -301,8 +301,8 @@
                 android:layout_marginLeft="@dimen/dp_15"
                 android:layout_marginTop="@dimen/dp_40"
                 android:layout_toRightOf="@id/et_restorationway_contacts"
-                android:background="@drawable/shape_other_rounded_rectangle"
                 android:text="@string/update"
+                android:background="@drawable/shape_other_rounded_rectangle"
                 android:textColor="@color/white"
                 android:textSize="@dimen/dp_8" />
 
@@ -577,6 +577,7 @@
                 android:textSize="@dimen/dp_8" />
 
             <LinearLayout
+                android:id="@+id/ll_iconmove"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/tv_listeningPeople"
@@ -623,6 +624,46 @@
                         android:textColor="@color/logo_blue"
                         android:textSize="@dimen/sp_12" />
                 </RadioGroup>
+
+
+
+            </LinearLayout>
+
+            <LinearLayout
+
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/ll_iconmove"
+                android:layout_marginLeft="@dimen/dp_20"
+                android:orientation="horizontal">
+            <TextView
+                android:id="@+id/tv_sketchmap"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/dp_40"
+                android:text="示意图更换"
+                android:textColor="@color/logo_blue"
+                android:textSize="@dimen/dp_12" />
+                <Spinner
+                    android:id="@+id/sp_model2"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/dp_20"
+                    android:layout_marginTop="@dimen/dp_42"
+                    android:layout_marginBottom="@dimen/dp_10"
+                    android:layout_toRightOf="@id/tv_sketchmap"/>
+
+                <Button
+                    android:id="@+id/btn_theme"
+                    android:layout_width="@dimen/dp_44"
+                    android:layout_height="@dimen/dp_22"
+                    android:layout_marginLeft="@dimen/dp_15"
+                    android:layout_marginTop="@dimen/dp_40"
+                    android:layout_toRightOf="@id/sp_model2"
+                    android:text="@string/update"
+                    android:background="@drawable/shape_other_rounded_rectangle"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/dp_8" />
             </LinearLayout>
         </RelativeLayout>
     </ScrollView>

+ 2 - 1
app/src/main/res/layout/spinner_text.xml

@@ -4,7 +4,8 @@
     android:textColor="@color/logo_blue"
     android:textSize="@dimen/sp_8"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:layout_height="@dimen/dp_20"
     android:paddingStart="@dimen/dp_8"
     android:paddingLeft="@dimen/dp_8"
     android:paddingRight="@dimen/dp_8"/>

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

@@ -486,5 +486,7 @@
     <string name="equipment">设备编号:</string>
 
     <string name="cleansignin">清洁人员签到</string>
+    <string name="disinfectant">开启消毒水</string>
+    <string name="detergent">开启清洁剂</string>
 
 </resources>