From 6e512f99ae6d56f52cd79ff7ea7245a431be4dbb Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期一, 16 三月 2020 16:30:27 +0800
Subject: [PATCH] 修改判断消息ID可能导致崩溃的bug

---
 app/src/main/java/safeluck/drive/evaluation/app.java                            |   11 +----------
 app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java |   19 +++++--------------
 app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java            |   10 +++++++---
 3 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
index 1f172d2..fb107b4 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
@@ -24,12 +24,11 @@
 
     private static final String TAG = "AppStatusWorker";
     private AppStatusDao appStatusDao;
-    private int lastSatNum = 0;
-    private int lastQf = 0;
+
 
     public AppStatusWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
         super(context, workerParams);
-        MyLog.d(TAG,"鍒濆鍖朅ppStatusWorker");
+        MyLog.i("鍒濆鍖朅ppStatusWorker");
         appStatusDao = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getAppStatusDao();
     }
 
@@ -38,7 +37,7 @@
     public Result doWork() {
         String[] str = getInputData().getStringArray(Constant.APP_STATUS);
         JSONObject jsonObject = null;
-        MyLog.i(PlatFormConstant.TAG,"AppStatusWorker:"+str[0]+": "+str[1]);
+        MyLog.i("AppStatusWorker:"+str[0]+": "+str[1]);
         try {
             jsonObject = new JSONObject(str[1]);
             switch (str[0]) {
@@ -58,18 +57,10 @@
                 case Constant.RTK_INFO_SAT_QF:
                     int qf = jsonObject.getInt("qf");
                     int satNum = jsonObject.getInt("sat_num");
-                    if (qf==lastQf){
-                        Log.i(TAG,"瑙g姸鎬佸拰涓婃鐨勪竴鏍凤紝涓嶄繚瀛樻暟鎹簱"+qf);
-                    }else{
-                        lastQf = qf;
+
                         appStatusDao.updatedQf(qf);
-                    }
-                    if (satNum==lastSatNum){
-                        Log.i(TAG,"鍗槦棰楁暟鍜屼笂娆$殑涓�鏍凤紝涓嶄繚瀛樻暟鎹簱"+lastSatNum);
-                    }else{
+
                         appStatusDao.updatedSatNum(satNum);
-                        lastSatNum = satNum;
-                    }
 
 
                     break;
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 6fc62f7..9f28086 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -314,7 +314,7 @@
                     jsonObject = new JSONObject(json);
                     int qf = jsonObject.getInt("qf");
                     int satNum = jsonObject.getInt("sat_num");
-                    if (lastSatEqualNow(satNum)){
+                    if (lastSatEqualNow(satNum)&&lastQfEqualNow(qf)){
 
                     }else{
                         String[] rtk_strs = new String[2];
@@ -324,16 +324,7 @@
                         OneTimeWorkRequest appStatusWorker = new OneTimeWorkRequest.Builder(AppStatusWorker.class).setInputData(rtkInfoData).build();
                         WorkManager.getInstance(getApplicationContext()).enqueue(appStatusWorker);
                     }
-                    if (lastQfEqualNow(qf)){
 
-                    }else{
-                        String[] rtk_strs = new String[2];
-                        rtk_strs[0] = Constant.RTK_INFO_SAT_QF;
-                        rtk_strs[1] = json;
-                        Data rtkInfoData = new Data.Builder().putStringArray(Constant.APP_STATUS,rtk_strs).build();
-                        OneTimeWorkRequest appStatusWorker = new OneTimeWorkRequest.Builder(AppStatusWorker.class).setInputData(rtkInfoData).build();
-                        WorkManager.getInstance(getApplicationContext()).enqueue(appStatusWorker);
-                    }
                 } catch (JSONException e) {
                     e.printStackTrace();
                 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
index 3b85264..9978a11 100644
--- a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
+++ b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
@@ -11,6 +11,7 @@
 import com.anyun.im_lib.interf.IMSClientInteface;
 import com.anyun.im_lib.util.ByteUtil;
 import com.google.gson.Gson;
+import com.safeluck.aykj.utils.ArrayUtils;
 import com.safeluck.aykj.utils.BytesUtils;
 
 import java.util.Map;
@@ -124,8 +125,11 @@
                         Log.e(TAG, "run: 鍙戦�佹秷鎭け璐ワ紝鏈垵濮嬪寲杩炴帴NettyTcp");
                     }
                 }else{
-                    JK2019MessageBase jk2019MessageBase = MessageManager.get(msg.toString());
-                    if ((jk2019MessageBase instanceof JKMessage0100) || (jk2019MessageBase instanceof JKMessage0101)){
+//                    JK2019MessageBase jk2019MessageBase = MessageManager.get(msg.toString());
+                    byte[] msgidbytes= ArrayUtils.subArray(msg.toBytes(),2,2);
+                    String msgid = BytesUtils.bytesToHexString(msgidbytes);
+                    Log.i(TAG, "run: msgid="+msgid);
+                    if ((msgid.equalsIgnoreCase("0100")) || (msgid.equalsIgnoreCase("0101"))){
 
                         if (IMSClientBootstrap.getInstance().isActive()){
                             IMSClientBootstrap.getInstance().sendMessage(messageEscaper.escape(msg.toBytes()));
@@ -133,7 +137,7 @@
                             Log.e(TAG, "run: 鍙戦�佹秷鎭け璐ワ紝鏈垵濮嬪寲杩炴帴NettyTcp");
                         }
                     }else{
-                        MyLog.i(PlatFormConstant.TAG,"鐧诲綍鏈垚鍔燂紝涓嶈兘鍙戦�佹秷鎭�="+BytesUtils.bytesToHexString(ByteUtil.intGetBytes(jk2019MessageBase.messageId)));
+                        MyLog.i(PlatFormConstant.TAG,"鐧诲綍鏈垚鍔燂紝涓嶈兘鍙戦�佹秷鎭�="+msgid);
                     }
                 }
 

--
Gitblit v1.8.0