From 118fc07c2a535db723697a43c3330ad7ef49bbf8 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期五, 10 一月 2020 11:20:17 +0800
Subject: [PATCH] 1.收到需要推送rtk配置信息后,在activity里面发送;2.rtk配置信息表 注册装填改为0未注册;3.在联网考试和单车训练界面主动触发推送rtk配置信息

---
 app/src/main/java/safeluck/drive/evaluation/Constant.java                      |    4 +
 app/src/main/java/safeluck/drive/evaluation/app.java                           |   37 +++---------------
 app/src/main/java/safeluck/drive/evaluation/MainActivity.java                  |   54 ++++++++++++++++++++++++++-
 app/src/main/assets/rtk_config.json                                            |    2 
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java        |   10 ++++
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java |    8 +++
 6 files changed, 78 insertions(+), 37 deletions(-)

diff --git a/app/src/main/assets/rtk_config.json b/app/src/main/assets/rtk_config.json
index 92c9e6b..4b05563 100644
--- a/app/src/main/assets/rtk_config.json
+++ b/app/src/main/assets/rtk_config.json
@@ -9,7 +9,7 @@
     "imei":"460123874561",
     "phone":"2019101500000001",
     "password":"123456789",
-    "registered":1,
+    "registered":0,
     "interval":1
   }
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index 2993eb3..b54bbc3 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -45,11 +45,13 @@
     public static final int JUDGE_INFO = 0x000c;
 
     public static final String RTK_CONFIG_JSON = "rtk_config.json";
-    public static final String BIND_DRIVING_TOPIC = "driving";
+    public static final String BIND_DRIVING_TOPIC = "driving_topic";
     public static final long TEST_STU_ID = 1001;
 
     //I绫昏瘎鍒よ〃
     public static final int SUBJECT_I = 1;
     public static final String MAP = "map.json";
     public static final String VEHICLE = "vehiclemodel.json";
+    public static final String BIND_RTKCONFIG_TOPIC = "rtkconfig_topic";
+
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index 98a0b6e..282cd33 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -19,8 +19,18 @@
 import me.yokeyword.fragmentation.SupportActivity;
 import safeluck.drive.evaluation.DB.Student;
 import safeluck.drive.evaluation.DB.WokViewModel;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
+import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
+import safeluck.drive.evaluation.cEventCenter.ICEventListener;
 import safeluck.drive.evaluation.fragment.HomeFragment;
+
+import com.anyun.exam.lib.AYSdk;
 import com.anyun.exam.lib.MyLog;
+import com.google.gson.Gson;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import java.util.List;
 
@@ -32,8 +42,37 @@
     private static final int PERMISSIONS_REQUEST_CODE = 1001;
     private String TAG = MainActivity.class.getCanonicalName();
 
-    private PermissionManager mPermissionsManager ;
+    private PermissionManager mPermissionsManager;
+    private RTKConfig mRTKConfig;//RTK閰嶇疆淇℃伅
+    private Gson gson = new Gson();
     String[] PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA};
+
+
+    private ICEventListener icEventListener = new ICEventListener() {
+        @Override
+        public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
+            if (msgCode == Constant.FETCH_RTK_PLATFORM_INFO){
+                if (mRTKConfig != null){
+                    String rtkjson = gson.toJson(mRTKConfig);
+
+                    //鍘婚櫎id瀛楁
+                    JSONObject jsonObject = null;
+                    try {
+                        jsonObject = new JSONObject(rtkjson);
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
+                    jsonObject.remove("_id");
+                    rtkjson = null;
+                    rtkjson = jsonObject.toString();
+                    MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
+                    AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, rtkjson);
+                }else{
+                    MyLog.d(TAG,"RTKConfig鏈彇鍒版暟鎹�");
+                }
+            }
+        }
+    };
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -53,7 +92,14 @@
             }
         });
 
-
+        RTKConfigViewModel rtkConfigViewModel= ViewModelProviders.of(this).get(RTKConfigViewModel.class);
+        rtkConfigViewModel.getRTKConfig().observe(this, new Observer<RTKConfig>() {
+            @Override
+            public void onChanged(RTKConfig rtkConfig) {
+                MyLog.i(TAG, "RTKConfig Changed: "+rtkConfig.toString());
+                mRTKConfig = rtkConfig;
+            }
+        });
 
 
         mPermissionsManager = new PermissionManager(this) {
@@ -100,11 +146,15 @@
         if (findFragment(HomeFragment.class) == null){
             loadRootFragment(R.id.fl_container,HomeFragment.newInstance());
         }
+
+        CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_RTKCONFIG_TOPIC);
+
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_RTKCONFIG_TOPIC);
         Log.i(TAG, "onDestroy: ");
     }
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 3e7a830..a2b63fc 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -31,6 +31,8 @@
 import safeluck.drive.evaluation.DB.failitems.FailedProjRepository;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
 import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository;
+import safeluck.drive.evaluation.cEventCenter.CEvent;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
 import safeluck.drive.evaluation.util.FileUtil;
 import safeluck.drive.evaluation.util.SystemUtil;
 
@@ -71,7 +73,7 @@
             Stetho.initializeWithDefaults(this);
 
 
- 
+
             //鏁版嵁搴撴搷浣�
             MyLog.i(TAG, "onCreate111");
             failedProjRepository = new FailedProjRepository(this);
@@ -101,8 +103,7 @@
 
                 break;
             case Constant.RTK_PLATFORM_REGISTER_STATUS:
-
-                failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(26), Constant.TEST_STU_ID));
+                //RTK骞冲彴娉ㄥ唽鐘舵�侊紝闇�瑕佷繚瀛樻暟鎹簱
                 rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
 
                 try {
@@ -118,11 +119,10 @@
                 break;
             case Constant.RTK_PLATFORM_REGISTER_RESULT:
 
-
+                //RTK骞冲彴鐧诲綍缁撴灉
                 try {
                     JSONObject jsonObject = new JSONObject(json);
                     int rtklogincode = jsonObject.getInt("login_code");
-                    rtkConfig.setRegistered(rtklogincode);
                 } catch (JSONException e) {
                     e.printStackTrace();
                 }
@@ -130,32 +130,7 @@
 
                 break;
             case Constant.FETCH_RTK_PLATFORM_INFO:
-                rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
-                if (gson == null) {
-                    gson = new Gson();
-                }
-                if (rtkConfig==null){
-
-                    rtkConfig = rtkWorkRepository.getRTKConfigNoLive();
-                }
-                if (rtkConfig != null){
-                    String rtkjson = gson.toJson(rtkConfig);
-                    MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
-
-                    //鍘婚櫎id瀛楁
-                    JSONObject jsonObject = null;
-                    try {
-                        jsonObject = new JSONObject(rtkjson);
-                    } catch (JSONException e) {
-                        e.printStackTrace();
-                    }
-                    jsonObject.remove("_id");
-                    rtkjson = null;
-                    rtkjson = jsonObject.toString();
-                    MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + rtkjson);
-                    AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, rtkjson);
-                }
-
+                CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,cmd,0,"");
                 break;
             case Constant.JUDGE_INFO:
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
index 9c1603d..f1efb47 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -17,6 +17,7 @@
 import androidx.lifecycle.ViewModelProviders;
 
 import com.anyun.exam.lib.AYSdk;
+import com.anyun.exam.lib.MyLog;
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
@@ -35,6 +36,7 @@
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.adapter.ScoreAdapter;
 import safeluck.drive.evaluation.bean.ScoreBean;
+import safeluck.drive.evaluation.cEventCenter.CEventCenter;
 
 /**
  * 鑱旂綉璁粌UI
@@ -85,6 +87,7 @@
     }
 
     private void initView(View view) {
+        sendRTKConfig2RemoteService();
         mListView = view.findViewById(R.id.lv);
         mListView.setFocusable(false);
         view.findViewById(R.id.view_map).setOnClickListener(this);
@@ -96,7 +99,10 @@
         mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null));
 
     }
-
+    private void sendRTKConfig2RemoteService() {
+        MyLog.d(TAG,"涓诲姩鎺ㄩ�丷TKConfig");
+        CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.PUSH_RTK_PLATFORM_INFO,0,"");
+    }
     @Override
     public void onClick(View v) {
         switch (v.getId()){
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 4733a3a..127c355 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -16,6 +16,8 @@
 import android.widget.ListView;
 import android.widget.Toast;
 
+import com.anyun.exam.lib.MyLog;
+
 import java.util.ArrayList;
 import java.util.EventListener;
 import java.util.List;
@@ -99,7 +101,7 @@
         return view;
     }
     private void initView(View view) {
-
+        sendRTKConfig2RemoteService();
         mListView = view.findViewById(R.id.lv);
         mListView.setFocusable(false);//listview涓嶈幏鍙栫劍鐐癸紝涓嶇劧鐨勮瘽scrollview浼氶《鍒板簳閮�
         view.findViewById(R.id.view_map).setOnClickListener(this);
@@ -112,6 +114,12 @@
         mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null));
 
 
+
+    }
+
+    private void sendRTKConfig2RemoteService() {
+        MyLog.d(TAG,"涓诲姩鎺ㄩ�丷TKConfig");
+        CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,Constant.PUSH_RTK_PLATFORM_INFO,0,"");
     }
 
     @Override

--
Gitblit v1.8.0