Browse Source

1.重新增加急停功能

zengwenlong 3 years ago
parent
commit
0862424329

+ 2 - 2
app/build.gradle

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

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

@@ -92,6 +92,13 @@
             </intent-filter>
         </receiver>
 
+        <receiver android:name=".receiver.NetworkConnectChangedReceiver">
+            <intent-filter>
+                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
+                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
+                <action android:name="android.net.wifi.STATE_CHANGE" />
+            </intent-filter>
+        </receiver>
 
         <receiver android:name=".receiver.DownReceiver">
             <intent-filter>

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

@@ -17,6 +17,7 @@ import com.sunzee.model.domain.Name;
 import com.sunzee.retrofit.ApiCallback;
 import com.sunzee.service.DownServer;
 import com.sunzee.utils.FileUtil;
+import com.sunzee.utils.LogUtils;
 import com.sunzee.utils.SharedPreferencesUtils;
 import com.sunzee.utils.ToastUtil;
 import com.sunzee.utils.UiUtil;
@@ -160,6 +161,7 @@ public class HomePresenter extends BasePresenter<HomeView> {
                         getCleanReport(0);
                     } else {
                         Log.d(TAG, "onSuccess: 全部过期,全部不能清洗");
+                        LogUtils.logWrite("已过期,请充值后使用哦。homepresenter");
                         ToastUtil.showToast("已过期,请充值后使用哦。");
                     }
                 } catch (Exception e) {

+ 3 - 1
app/src/main/java/com/sunzee/mvp/homepage/HomePagePresenter.java

@@ -10,6 +10,7 @@ import com.sunzee.model.HttpResult;
 import com.sunzee.model.domain.Name;
 import com.sunzee.retrofit.ApiCallback;
 import com.sunzee.thread.homepage.ThreadPoolHomepage;
+import com.sunzee.utils.LogUtils;
 import com.sunzee.utils.ToastUtil;
 
 import java.text.SimpleDateFormat;
@@ -64,7 +65,8 @@ public class HomePagePresenter extends BasePresenter<HomePageView> {
                         //发送开始清洗的订单。
                         getCleanReport(1);
                     } else {
-                        ToastUtil.showToast("已过期,请充值后使用哦。");
+                        LogUtils.logWrite("已过期,请充值后使用哦1。homepagePresenter");
+                        ToastUtil.showToast("已过期,请充值后使用哦1。");
                     }
                 } catch (Exception e) {
                 }

+ 1 - 0
app/src/main/java/com/sunzee/receiver/NetworkConnectChangedReceiver.java

@@ -36,6 +36,7 @@ public class NetworkConnectChangedReceiver extends BroadcastReceiver {
 
     @Override
     public void onReceive(Context context, Intent intent) {
+        Log.d(TAG, "onReceive12");
         if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {// 监听wifi的打开与关闭,与wifi的连接无关
             int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);
             Log.e(TAG, "wifiState:" + wifiState);

+ 124 - 32
app/src/main/java/com/sunzee/service/MyService.java

@@ -111,7 +111,9 @@ public class MyService extends Service {
     private String[] lastTimeSplit;
     private String[] nextTimeSplit;
     public static boolean isLate = true;//记录从后台查询是否过期的情况。一开始为false,先让他不检测,得知结果后再执行,否则就会出现假象。
+    public static Integer late = 0;
     private String sD2Data = "";
+    private Integer queriesFailedNumber = 0;
 
     @Nullable
     @Override
@@ -132,7 +134,7 @@ public class MyService extends Service {
             for (int i = 0; i < TOTAL_SUM; i++) {
                 sHomePageLocationList.add("0");//初始化
             }
-            Log.d(TAG, "onCreate: "+sHomePageLocationList.size());
+            Log.d(TAG, "onCreate: " + sHomePageLocationList.size());
         }
 
         if (!EventBus.getDefault().isRegistered(this))
@@ -196,6 +198,7 @@ public class MyService extends Service {
         if (isRead) {
             isRead = !isRead;
             mThreadPoolMyservice.stopReadM600();
+            mThreadPoolMyservice.stopReadM71();
             mThreadPoolMyservice.stopReadD2();
             mThreadPoolMyservice.startALLRead();
         }
@@ -378,30 +381,47 @@ public class MyService extends Service {
                             Calendar calendar = Calendar.getInstance();
                             calendar.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timedata));
                             //第一次就会出现报错。
-                            Long overdueDate =Hawk.get(Name.OVERDUE_DATE,0L);//购买的到期的时间
+                            Long overdueDate = Hawk.get(Name.OVERDUE_DATE, 0L);//购买的到期的时间
                             Long timeInMillis = calendar.getTimeInMillis();//当前时间
-                            String data = Hawk.get(Name.REMAINING,"0");
+                            String data = Hawk.get(Name.REMAINING, "0");
                             long remaining = Long.valueOf(data);
                             Log.d(TAG, "onSuccess: 时间过期remaining" + remaining);
                             //如果时间没过期,那么可以继续制作
                             if (overdueDate > timeInMillis) {
                                 Log.d(TAG, "onSuccess: 没有过期");
                                 isLate = true;
+                                last = 0;
                             } else if (remaining > 0) {
                                 Log.d(TAG, "onSuccess: 时间过期,按次数计算");
                                 isLate = true;
+                                last = 0;
                             } else {
                                 Log.d(TAG, "onSuccess: 全部过期,全部不能清洗");
+                                LogUtils.logWrite("myservice1支付查询失败");
                                 isLate = false;
+                                last = 1;
+                            }
+                            if (queriesFailedNumber != 0) {
+                                queriesFailedNumber = 0;
                             }
                         } catch (Exception e) {
-                            Log.d(TAG, "onSuccess: "+e);
+                            Log.d(TAG, "onSuccess: " + e);
                         }
                     }
 
                     @Override
                     public void onFailure(String msg) {
-                        isLate = false;
+                        if (queriesFailedNumber >= 3) {//说明失败了三次。
+                            if (isLate != false) {
+                                isLate = false;
+                            }
+                            if (last != 2) {
+                                last = 2;
+                            }
+                            return;
+                        }
+                        queriesFailedNumber++;
+                        LogUtils.logWrite("myservice2支付查询失败");
                         Log.d(TAG, "onSuccess onFailure: ");
                     }
 
@@ -524,9 +544,9 @@ public class MyService extends Service {
                     Calendar calendar = Calendar.getInstance();
                     calendar.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timedata));
                     //第一次就会出现报错。
-                    Long overdueDate = (Long) Hawk.get(Name.OVERDUE_DATE,0L);//购买的到期的时间
+                    Long overdueDate = (Long) Hawk.get(Name.OVERDUE_DATE, 0L);//购买的到期的时间
                     Long timeInMillis = calendar.getTimeInMillis();//当前时间
-                    String data = (String) Hawk.get(Name.REMAINING);
+                    String data = (String) Hawk.get(Name.REMAINING, "0");
                     long remaining = Long.valueOf(data);
                     Log.d(TAG, "onSuccess: 时间过期remaining" + remaining);
                     //如果时间没过期,那么可以继续制作
@@ -661,6 +681,7 @@ public class MyService extends Service {
 
         }
     }
+
     private CompositeDisposable mDisposables;
     protected ApiStores apiStores = ApiClient.retrofit().create(ApiStores.class);
 
@@ -729,9 +750,10 @@ public class MyService extends Service {
                                 mThreadPoolMyservice.stopSetMMM3();
                                 mThreadPoolMyservice.startSetMMM3("M3");
                                 Log.d(TAG, "isClean: 開始清洗3");
+                                LogUtils.logWrite("急停复位");
                             }
                         }
-                    }, 2000);
+                    }, 4000);
                 } else if (messageEvent.getName().equals("MMM3")) {
                     Log.d(TAG, "stopSetMMM3runevent: ");
                     mThreadPoolMyservice.stopSetMMM3();
@@ -777,8 +799,32 @@ public class MyService extends Service {
                         } catch (Exception e) {
                             e.printStackTrace();
                         }
+                    } else if (name.equals("M71")) {
+                        try {
+                            String result = AsciiUtils.asciiByteArray2HexStr(responseFrame.getData());
+                            List<String> strList = HexadecimalUtil.getStrList(result, 4);
+                            if (result.length() != 16) {
+                                return;
+                            }
+                            StringBuilder sb = new StringBuilder();
+                            for (int i = 0, len = strList.size(); i < len; i++) {
+                                String list = strList.get(i);
+                                String s1 = HexadecimalUtil.hexStringToByte(list);
+                                String s2 = HexadecimalUtil.flipString(s1, 8);
+                                sb.append(s2);
+                            }
+                            String s1 = sb.toString();
+                            List<String> lis = Arrays.asList(s1.split(""));
+                            ArrayList<String> list = new ArrayList(lis);
+                            list.remove(0);
+                            LogUtil.d("" + list.get(0) + list.get(1));
+//                            showErrorDialog(list);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
                     } else if (name.equals("X12")) {
-                        if (isLate) {
+                        if (late == 0) {
+//                        if (isLate) {
                             String result = AsciiUtils.asciiByteArray2HexStr(responseFrame.getData());
                             List<String> strList = HexadecimalUtil.getStrList(result, 4);
                             StringBuilder sb = new StringBuilder();
@@ -804,9 +850,9 @@ public class MyService extends Service {
                             boolean[] isSelectCheckBox = Hawk.get(Name.ISSELECTCHECKBOX, null);
                             boolean[] isSelectPeopleCheckbox = Hawk.get(Name.ISSELECTPEOPLECHECKBOX, null);
                             for (int i = 0; i < TOTAL_SUM; i++) {
-                                sHomePageLocationList.set(i,list2.get(i + 2));
+                                sHomePageLocationList.set(i, list2.get(i + 2));
                             }
-                            Log.d(TAG, "even1t: "+sHomePageLocationList.size());
+                            Log.d(TAG, "even1t: " + sHomePageLocationList.size());
                             if (isSelectCheckBox == null) {//厕所状态为空,说明还没设置,也就是全部都监听
                                 for (int i = 1; i <= TOTAL_SUM; i++) {//什么都监听
                                     monitoring(list2.get(i + 1), i, list2.get(i + 7));
@@ -828,25 +874,29 @@ public class MyService extends Service {
                                     }
                                 }
                             }
-
-                        }else{
+                        } else if (late == 1) {
                             ToastUtil.showToast("设备已过期,请充值后使用");
+                        } else if (late == 2) {
+                            ToastUtil.showToast("没有网络无法监听蹲位。");
                         }
                     } else if (name.equals("D2")) {
                         String data = String.valueOf(HexadecimalUtil.hex2dec(HexadecimalUtil.flipString(AsciiUtils.asciiByteArray2HexStr(responseFrame.getData())).get(0)));
                         // Log.d(TAG, "addCleanTimeD2event: " + data);
                         if (!sD2Data.equals(data)) {//如果相等,说明已经写入过了,我们需要先别写入
-                           switch (data){
-                               case "1":
-                                   LogUtils.logWrite("设备开机完毕");
-                                   break;
-                               case "5":
-                                   LogUtils.logWrite("设备清洗中");
-                                   break;
-                               case "7":
-                                   LogUtils.logWrite("设备清洗完毕");
-                                   break;
-                           }
+                            switch (data) {
+                                case "1":
+                                    LogUtils.logWrite("设备开机完毕");
+                                    break;
+                                case "5":
+                                    LogUtils.logWrite("设备清洗中");
+                                    break;
+                                case "7":
+                                    LogUtils.logWrite("设备清洗完毕");
+                                    break;
+                                case "0":
+                                    LogUtils.logWrite("设备复位中");
+                                    break;
+                            }
 
                         }
                         this.sD2Data = data;//记录上次的data值
@@ -877,11 +927,23 @@ public class MyService extends Service {
                                                 public void run() {
                                                     synchronized (sCleaningLocationList) {
                                                         while (sCleaningLocationList.size() > 0) {
+                                                            LogUtils.logWrite("开机完毕开始检查:" + sCleaningLocationList.size());
                                                             Integer first = sCleaningLocationList.getFirst();
                                                             HoleInformation holeInformation = sHoleInformationList.get(first - 1);
+                                                            Log.d(TAG, "run: " + holeInformation.getState());
                                                             if (holeInformation.getState() != 0 && holeInformation.getState() != 2) {
                                                                 Log.d(TAG, "被移除了3: " + first);
-                                                                sCleaningLocationList.removeFirst();
+                                                                if (holeInformation.isUserAndEmpty()) {
+                                                                    sCleaningLocationList.removeFirst();
+                                                                } else {
+                                                                    if (!isCleanOK) {//不再清洗的时候才去清洗。
+                                                                        //清洗次数增加
+                                                                        addTodayCleanCount(1, 0, 1);
+                                                                        cleanPositionNumX20(first, 4);
+                                                                        cleanCount++;
+                                                                        break;
+                                                                    }
+                                                                }
                                                             } else {
                                                                 if ("1".equals(holeInformation.getBodySensor())) {// 1表示有人,有人我们就移出他
                                                                     Log.d(TAG, "run: 人体传感器检测到还有人,那么单纯靠人体传感器来执行。");
@@ -915,13 +977,15 @@ public class MyService extends Service {
                                                 //多线程,我们需要控制只执行一次?
                                                 Integer first = sCleaningLocationList.getFirst();//sCleaningLocationList取出来的数据从1开始。
                                                 HoleInformation holeInformation = sHoleInformationList.get(first - 1);
-                                                holeInformation.setUserStates("2");
+                                                if (!"2".equals(holeInformation.getUserStates())) {
+                                                    holeInformation.setUserStates("2");
+                                                }
                                                 Log.d(TAG, "isClean開始清洗add急停: " + holeInformation.getState());
                                                 if (holeInformation.getState() != 2) {
                                                     //如果在清洗中,那么就急停
                                                     isToiletClean = false;
                                                     sCleaningLocationList.removeFirst();//检测到厕所里面有人,那么我就移出她。但是移出,会不会影响其他的呢?
-                                                    mThreadPoolMyservice.stopSetMM10();
+                                                    mThreadPoolMyservice.stopSetMM10();//去掉急停,就直接去掉,然后也去掉这个要清洗的厕所,因为肯定有人进去了。并且锁门了。
                                                     mThreadPoolMyservice.startSetMM10("M10");
                                                     Log.d(TAG, "sCleaningLocationList: 紧急停止");
                                                 }
@@ -1099,7 +1163,22 @@ public class MyService extends Service {
         HoleInformation holeInformation = sHoleInformationList.get(number - 1);
         holeInformation.setBodySensor(isSomeone);
         holeInformation.setUserAndEmpty(true);
-        if (!isCleanOK) holeInformation.setUserStates("1");
+        //0,也不等于1,也不等于2, 所以会改变。
+        if (sCleaningLocationList.size() > 0) {
+            LogUtil.d("addCleanTime first:" + sCleaningLocationList.getFirst() + ";number:" + number);
+            if (sCleaningLocationList.getFirst() != number) {
+                if (!("1".equals(holeInformation.getUserStates()))) {
+                    //如果为0 ,或者为2,那么我们返回。因为要么清洗中,或者本来就是0.
+                    holeInformation.setUserStates("1");
+                }
+            }
+        } else {
+            holeInformation.setUserStates("1");
+        }
+//        if (!"1".equals(holeInformation.getUserStates())) {
+//            holeInformation.setUserStates("1");
+//        }
+        Log.d(TAG, "addCleanTime1212: " + holeInformation.getState());
         if (holeInformation.getState() != 1 && holeInformation.getState() != 3) {
             holeInformation.setState(1);//上厕所
             holeInformation.setTimeDuration(System.currentTimeMillis());//存储他上厕所的时间
@@ -1137,8 +1216,20 @@ public class MyService extends Service {
         HoleInformation holeInformation = sHoleInformationList.get(number - 1);
         holeInformation.setBodySensor(isSomeone);
         holeInformation.setUserAndEmpty(false);
-        if (!isCleanOK) holeInformation.setUserStates("0");
-
+        if (sCleaningLocationList.size() > 0) {
+            LogUtil.d("isClean first:" + sCleaningLocationList.getFirst() + ";number:" + number);
+            if (sCleaningLocationList.getFirst() != number) {
+                if (!("0".equals(holeInformation.getUserStates()))) {
+                    //如果为0 ,或者为2,那么我们返回。因为要么清洗中,或者本来就是0.
+                    holeInformation.setUserStates("0");
+                }
+            }
+        } else {
+            holeInformation.setUserStates("0");
+        }
+//        if (!"0".equals(holeInformation.getUserStates())) {
+//            holeInformation.setUserStates("0");
+//        }
         int state = holeInformation.getState();
         if (state == 3) {
             holeInformation.setState(4);
@@ -1216,7 +1307,7 @@ public class MyService extends Service {
         Log.d(TAG, "cleanPositionNumX20厕所: " + number);
         mThreadPoolMyservice.stopWriteDD120();
         mThreadPoolMyservice.startWriteDD120("D120", "000" + data);
-        LogUtils.logWrite("开始清洗"+data+"号厕所");//日志记录
+        LogUtils.logWrite("开始清洗" + data + "号厕所"+number);//日志记录
     }
 
     private boolean isOpenReadWarring = true;
@@ -1528,9 +1619,10 @@ public class MyService extends Service {
 
     private Timer procedureISRunTimer;
     private TimerTask procedureISRunTimerTask;
+
     //判断程序是否在运行
     private void procedureISRun() {
-        stopTimerAndTimerTask(procedureISRunTimer,procedureISRunTimerTask);
+        stopTimerAndTimerTask(procedureISRunTimer, procedureISRunTimerTask);
         procedureISRunTimer = new Timer();
         procedureISRunTimerTask = new TimerTask() {
             @Override

+ 9 - 0
app/src/main/java/com/sunzee/thread/myservice/MyserviceTask.java

@@ -123,11 +123,20 @@ public class MyserviceTask implements Runnable {
             case MyserviceThreadType.runnMMM3:
                 runnMMM3();
                 break;
+            case MyserviceThreadType.runM71:
+                runnM71();
+                break;
 
 
         }
     }
 
+    private void runnM71() {
+        if (getIsRun()) {
+            SerialPortSendQueue.sendCommand(new ReadCommandFrame("M71", 4), 600, "M71");
+        }
+    }
+
     private void runnMMM3() {
         if (getIsRun()) {
             SerialPortSendQueue.sendCommand(new SetCommandFrame(address), 3, "MM"+address);

+ 1 - 0
app/src/main/java/com/sunzee/thread/myservice/MyserviceThreadType.java

@@ -17,4 +17,5 @@ public interface MyserviceThreadType {
     int runRstRM10 = 10;
     int runSetMM10 = 101;
     int runnMMM3 = 333;
+    int runM71 = 71;
 }

+ 10 - 2
app/src/main/java/com/sunzee/thread/myservice/ThreadPoolMyservice.java

@@ -19,13 +19,13 @@ public class ThreadPoolMyservice {
             mScheduledFutureSet, mScheduledFutureRst, mScheduledFutureWrite,
             mScheduledFutureD120, mScheduledFutureX12, mScheduledFutureDD120,
             mScheduledFutureD2, mScheduledFutureM3, mScheduledFutureRstRM10,
-            mScheduledFutureSetMM10,mScheduledFutureMMM3;
+            mScheduledFutureSetMM10,mScheduledFutureMMM3,mScheduledFutureM71;
     private MyserviceTask
             mTaskRunM600, MTaskRunM8, MTaskRunM17,
             mTaskRunMRst, mTaskRunMSet, mTaskRunWrite,
             mTaskRunD120, mTaskRunnX12, mTaskRunDD120,
             mTaskRunD2, mTaskRunM3,mTaskRunMRstRM10,
-            mTaskRunMSetMM10,mTaskRunMMM3;
+            mTaskRunMSetMM10,mTaskRunMMM3,mTaskRunM71;
 
     public ThreadPoolMyservice() {
         scheduled = new ScheduledThreadPoolExecutor(6);
@@ -47,6 +47,9 @@ public class ThreadPoolMyservice {
         mTaskRunM600 = new MyserviceTask(MyserviceThreadType.runM600);
         mScheduledFutureM600 = scheduled.scheduleAtFixedRate(mTaskRunM600, 0, 1000, TimeUnit.MILLISECONDS);
 
+        mTaskRunM71 = new MyserviceTask(MyserviceThreadType.runM71);
+        mScheduledFutureM71 = scheduled.scheduleAtFixedRate(mTaskRunM71, 0, 1000, TimeUnit.MILLISECONDS);
+
         mTaskRunnX12 = new MyserviceTask(MyserviceThreadType.runX12);
         mScheduledFutureX12 = scheduled.scheduleAtFixedRate(mTaskRunnX12, 0, 1000, TimeUnit.MILLISECONDS);
 
@@ -122,6 +125,10 @@ public class ThreadPoolMyservice {
         stopRead(mTaskRunM600, mScheduledFutureM600);
     }
 
+    public void stopReadM71() {
+        stopRead(mTaskRunM71, mScheduledFutureM71);
+    }
+
 
     public static void stopRead(MyserviceTask threadTask, ScheduledFuture<?> scheduledFuture1) {
         if (threadTask != null) {
@@ -145,6 +152,7 @@ public class ThreadPoolMyservice {
         stopRst();
         stopSet();
         stopReadM600();
+        stopReadM71();
         stopSetM8();
         stopSetM17();
         stopWriteD120();

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

@@ -53,6 +53,7 @@ import com.sunzee.ui.dialog.ShutdownDialog;
 import com.sunzee.ui.fragment.HomepageFragment;
 import com.sunzee.utils.FileUtil;
 import com.sunzee.utils.HomePagerSimpleFactory;
+import com.sunzee.utils.LogUtils;
 import com.sunzee.utils.LongClickUtils;
 import com.sunzee.utils.PreventSpeedClickUtil;
 import com.sunzee.utils.SharedPreferencesUtils;
@@ -524,6 +525,8 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
 
 
 
+
+
     private Timer timerSet;
     private TimerTask timerTaskSet;
 
@@ -556,6 +559,7 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
                 String name = messageEvent.getName();
                 //名字相等,写入成功
                 if (name.equals("M3")) {
+                    SharedPreferencesUtils.setParam("isOpenReadWarring", true);
                     stopTimerSet();
                     ToastUtil.showToast(UiUtil.getStringRes(R.string.gjcg));
 
@@ -573,7 +577,10 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
     @Override
     public void startClean() {
         hideLoading();
-        if (MyService.isLate) {
+        if (MyService.late == 0) {
+
+//        }
+//        if (MyService.isLate) {
             //全蹲位清洗,需要在开机的状态才能执行。
             synchronized (MyService.sCleaningLocationList) {//多线程操作需要加上同步锁
                 if (MyService.sCleaningLocationList.size() > 0) {//大于0的时候才需要处理。
@@ -610,6 +617,7 @@ public class HomeActivity extends MvpActivity<HomePresenter> implements HomeView
 
     @Override
     public void haveExpired() {
+        LogUtils.logWrite("已过期,请充值后使用哦。homeactivity");
         ToastUtil.showToast("已过期,请充值后使用哦。");
     }
 }

+ 13 - 11
app/src/main/java/com/sunzee/ui/activity/HomePageAActivity.java

@@ -39,7 +39,6 @@ import com.sunzee.R;
 import com.sunzee.adapter.HomePageAAdapter;
 import com.sunzee.base.BaseApplication;
 import com.sunzee.base.MvpActivity;
-import com.sunzee.model.Global;
 import com.sunzee.model.Heartbeat;
 import com.sunzee.model.HoleInformation;
 import com.sunzee.model.domain.CleaningBean;
@@ -52,18 +51,15 @@ import com.sunzee.service.MyService;
 import com.sunzee.thread.advanceparameter.ThreadPoolAdvanceParameter;
 import com.sunzee.thread.homepageA.homepage.ThreadPoolHomepageA;
 import com.sunzee.ui.view.CustomSketchMapView;
-import com.sunzee.ui.view.CustomView;
-import com.sunzee.ui.view.CustomViewGrounp;
 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.NetWorkUtil;
 import com.sunzee.utils.PreventSpeedClickUtil;
 import com.sunzee.utils.ToastUtil;
 import com.sunzee.utils.UiUtil;
-import com.wuxiaolong.androidutils.library.LogUtil;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
@@ -598,15 +594,20 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
                     }
                     if (!wcLocaltion) {
                         Log.d(TAG, "handleMessage111: "+MyService.sHomePageLocationList.size());
-                        for (int i = 0; i < MyService.sHomePageLocationList.size(); i++) {
+                        for (int i = 0; i < MyService.sHoleInformationList.size(); i++) {
                             CustomSketchMapView childAt = (CustomSketchMapView) mCustomViewGrounp.getChildAt(i);
-                            String s = MyService.sHomePageLocationList.get(i);
-                            if ("1".equals(s)) {
+                            String userStates = MyService.sHoleInformationList.get(i).getUserStates();
+                            if ("1".equals(userStates)) {
                                 childAt.setText("有");
                                 childAt.setVisibility(View.VISIBLE);
-                            } else {
+                                childAt.setBackgroundResource(R.drawable.in_use1);
+                            } else if("0".equals(userStates)) {
                                 childAt.setText("无");
                                 childAt.setVisibility(View.GONE);
+                            }else if("2".equals(userStates)) {
+                                childAt.setText("洗");
+                                childAt.setVisibility(View.VISIBLE);
+                                childAt.setBackgroundResource(R.drawable.in_use);
                             }
                         }
 
@@ -626,11 +627,12 @@ public class HomePageAActivity extends MvpActivity<HomePageAPresenter> implement
                     break;
                 case 3://清洗次数的读取。
                     activity.tvIn.setText(activity.cleaningBean.getInCount());
-                    activity.tvOut.setText(activity.cleaningBean.getOutCount());
+//                    activity.tvOut.setText(activity.cleaningBean.getOutCount());
                     if (activity.yesterdayBean != null) {
                         activity.tvYesterday.setText("昨日合计”进“:" + activity.yesterdayBean.getInCount());
                     }
-                    activity.tvWashingTime.setText(activity.cleaningBean.getCleanCount());
+                    activity.tvOut.setText(activity.yesterdayBean.getCleanCount());//昨日清洗厕所
+                    activity.tvWashingTime.setText(activity.cleaningBean.getCleanCount());//今日清洗厕所
                     break;
                 case 4:
                     if (activity.drawerLayout != null) {

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

@@ -25,6 +25,7 @@ import com.sunzee.service.MyService;
 import com.sunzee.thread.homepage.ThreadPoolHomepage;
 import com.sunzee.ui.dialog.StartCleaningDialog;
 import com.sunzee.ui.view.CustomViewGrounp;
+import com.sunzee.utils.LogUtils;
 import com.sunzee.utils.PreventSpeedClickUtil;
 import com.sunzee.utils.ToastUtil;
 
@@ -283,6 +284,7 @@ public class HomepageFragment extends MvpFragment<HomePagePresenter> implements
 
     @Override
     public void haveExpired() {
+        LogUtils.logWrite("已过期,请充值后使用哦。homepageFragment");
         ToastUtil.showToast("已过期,请充值后使用哦。");
     }
 

+ 88 - 0
app/src/main/java/com/sunzee/utils/NetWorkUtil.java

@@ -0,0 +1,88 @@
+package com.sunzee.utils;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.net.NetworkRequest;
+import android.os.Build;
+import android.util.Log;
+
+public class NetWorkUtil {
+    private static String LOG_TAG = "com.hylg.mplibrary.NetWorkUtil";
+
+    /**
+     * 判断当前网络是否可用
+     * @param context
+     * @return
+     */
+    public static boolean isNetworkAvailable(Context context) {
+        ConnectivityManager connectivity = (ConnectivityManager) context
+                .getSystemService(Context.CONNECTIVITY_SERVICE);
+        if (connectivity == null) {
+            Log.w(LOG_TAG, "无法获得ConnectivityManager");
+        } else {
+            NetworkInfo networkInfo = connectivity.getActiveNetworkInfo();
+            return networkInfo.isAvailable();
+        }
+        return false;
+    }
+
+
+    /**
+     * 判断当前网络是否存在,并可用于数据传输
+     *
+     * @param context
+     * @return
+     */
+    public static boolean getConnected(Context context) {
+        ConnectivityManager connectivity = (ConnectivityManager) context
+                .getSystemService(Context.CONNECTIVITY_SERVICE);
+        NetworkInfo networkInfo = connectivity.getActiveNetworkInfo();
+        return networkInfo.isConnected();
+    }
+
+    /**
+     * 查询当前网络状态
+     *
+     * @param context
+     * @return NetworkInfo.State.CONNECTED(已连接),
+     * <br/>NetworkInfo.State.CONNECTING(正在连接),
+     * <br/>NetworkInfo.State.DISCONNECTED(已断开),
+     * <br/>NetworkInfo.State.DISCONNECTING(正在断开),
+     * <br/>NetworkInfo.State.SUSPENDED(网络延缓),
+     * <br/>NetworkInfo.State.UNKNOWN(未知状态)
+     */
+    public static NetworkInfo.State getNetworkInfoState(Context context) {
+        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        return manager.getActiveNetworkInfo().getState();
+    }
+
+    /**
+     * 获取当前网络类型
+     *
+     * @param context
+     * @return ConnectivityManager.TYPE_MOBILE,
+     * <br/>ConnectivityManager.TYPE_WIFI,
+     * <br/>ConnectivityManager.TYPE_WIMAX,
+     * <br/>ConnectivityManager.TYPE_ETHERNET,
+     * <br/>ConnectivityManager.TYPE_BLUETOOTH
+     */
+    public static int getNetworkInfo(Context context) {
+        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        return manager.getActiveNetworkInfo().getType();
+    }
+
+    /**
+     * 网络变化监听
+     * @param context
+     * @param networkCallback ConnectivityManager.NetworkCallback
+     */
+    public static void netWorkListener(Context context,ConnectivityManager.NetworkCallback networkCallback){
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+            if (connectivityManager != null) {
+                connectivityManager.requestNetwork(new NetworkRequest.Builder().build(),networkCallback);
+            }
+        }
+    }
+}

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


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


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


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


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


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


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


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


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


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


+ 8 - 7
app/src/main/res/layout/activity_homeactivity25d.xml

@@ -204,24 +204,24 @@
                         <LinearLayout
                             android:layout_width="@dimen/dp_98"
                             android:layout_height="@dimen/dp_42"
+                            android:layout_marginRight="@dimen/dp_7"
                             android:layout_below="@id/tv_date2"
                             android:layout_alignLeft="@id/tv_operationaldata"
                             android:layout_marginTop="@dimen/dp_6"
-                            android:layout_marginRight="@dimen/dp_7"
                             android:background="@drawable/shape_date2_rounded_rectangle"
                             android:orientation="vertical"
                             android:paddingLeft="@dimen/dp_10"
                             android:paddingTop="@dimen/dp_3">
-
+                            <!--android:text="今日合计出厕所(次数)"-->
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="今日合计进厕所(次数)"
+                                android:text="昨日清洗合计(次数)"
                                 android:textColor="#E6EAFDFF"
                                 android:textSize="@dimen/sp_6" />
 
                             <TextView
-                                android:id="@+id/tv_in"
+                                android:id="@+id/tv_out"
                                 android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
                                 android:gravity="center"
@@ -229,7 +229,6 @@
                                 android:textColor="#E6EAFDFF"
                                 android:textSize="@dimen/sp_20" />
                         </LinearLayout>
-
                         <LinearLayout
                             android:layout_width="@dimen/dp_98"
                             android:layout_height="@dimen/dp_42"
@@ -244,12 +243,12 @@
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="今日合计厕所(次数)"
+                                android:text="今日合计厕所(次数)"
                                 android:textColor="#E6EAFDFF"
                                 android:textSize="@dimen/sp_6" />
 
                             <TextView
-                                android:id="@+id/tv_out"
+                                android:id="@+id/tv_in"
                                 android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
                                 android:gravity="center"
@@ -257,6 +256,8 @@
                                 android:textColor="#E6EAFDFF"
                                 android:textSize="@dimen/sp_20" />
                         </LinearLayout>
+
+
                     </LinearLayout>
 
                     <LinearLayout