From c5880ce42053910bb33e643530deff019e22e924 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期二, 26 十一月 2019 17:58:01 +0800
Subject: [PATCH] 修改criteria_I.json文件某个字段使之Gson不报错;点开TrainFragment的时候开始加载数据库(onCreate插入数据)

---
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/viewmodel/CriteriaIViewModel.java |   12 ++-
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriasRepository.java          |    6 +
 app/src/main/assets/criteria_I.json                                                        |   99 +++++++++++++++++++-------------
 app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java                       |    8 ++
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java                    |   20 ++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java                      |   28 +++++---
 6 files changed, 116 insertions(+), 57 deletions(-)

diff --git a/app/src/main/assets/criteria_I.json b/app/src/main/assets/criteria_I.json
index edb7574..aee1b14 100644
--- a/app/src/main/assets/criteria_I.json
+++ b/app/src/main/assets/criteria_I.json
@@ -32,21 +32,21 @@
     "item_content": "閫氱敤瑕佹眰",
     "deducting_reason": "鍥犳搷浣滀笉褰撻�犳垚鍙戝姩鏈虹唲鐏竴娆�",
     "score_deducting":10,
-    "required_precision":"5"
+    "required_precision":""
   },
   {
     "item_id":6,
     "item_content": "鍊掕溅鍏ュ簱",
     "deducting_reason": "涓嶆寜瑙勫畾璺嚎銆侀『搴忚椹�",
     "score_deducting":100,
-    "required_precision":"5"
+    "required_precision":""
   },
   {
     "item_id":7,
     "item_content": "鍊掕溅鍏ュ簱",
     "deducting_reason": "杞﹁韩鍑虹嚎",
     "score_deducting":100,
-    "required_precision":"5"
+    "required_precision":""
   },
   {
     "item_id":8,
@@ -60,7 +60,7 @@
     "item_content": "鍊掕溅鍏ュ簱",
     "deducting_reason": "鍦ㄥ�掕溅鍓�,鏈皢涓や釜鍓嶈疆瑙﹀湴鐐瑰潎椹惰繃鎺у埗绾�",
     "score_deducting":100,
-    "required_precision":""
+    "required_precision": ""
   },
   {
     "item_id":10,
@@ -74,14 +74,14 @@
     "item_content": "鍊掕溅鍏ュ簱",
     "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s",
     "score_deducting":100,
-    "score_deducting":""
+    "required_precision":""
   },
   {
     "item_id":12,
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "杞﹁締鍋滄鍚�,姹借溅鍓嶄繚闄╂潬鏈畾浜庢々鏉嗙嚎涓婏紝涓斿墠鍚庤秴鍑�50cm",
     "score_deducting":100,
-    "required_precision":"df"
+    "required_precision":""
   },
   {
     "item_id":13,
@@ -95,108 +95,125 @@
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "杞﹁締鍋滄鍚庯紝杞﹁韩璺濈璺竟缂樼嚎瓒呭嚭50cm",
     "score_deducting":100,
-    "required_precision":"5"
-  } , {
+    "required_precision":""
+  } ,
+  {
     "item_id":15,
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "杞﹁締鍋滄鍚�,璧锋鏃堕棿瓒呰繃30s",
     "score_deducting":100,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":16,
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "璧锋鏃惰溅杈嗗悗婧滆窛绂诲ぇ浜�30cm",
     "score_deducting":100,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":17,
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "杞﹁締鍋滄鍚�,姹借溅鍓嶄繚闄╂潬鏈畾浜庢々鏉嗙嚎涓婏紝涓斿墠鍚庝笉瓒呭嚭50cm",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":18,
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "杞﹁締鍋滄鍚庯紝杞﹁韩璺濈璺竟缂樼嚎瓒呭嚭30cm锛屾湭瓒呭嚭50cm",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":19,
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "鍋滆溅鍚庢湭鎷夌揣椹昏溅鍒跺姩鍣�",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":20,
     "item_content": "鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�",
     "deducting_reason": "璧锋鏃惰溅杈嗗悗婧滆窛绂�10cm~30cm",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":21,
     "item_content": "渚ф柟鍋滆溅",
     "deducting_reason": "杞﹁締鍏ュ簱鍋滄鍚庯紝杞﹁韩鍑虹嚎",
     "score_deducting":100,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":22,
     "item_content": "渚ф柟鍋滆溅",
     "deducting_reason": "椤圭洰瀹屾垚鏃堕棿瓒呰繃90s",
     "score_deducting":100,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":23,
     "item_content": "渚ф柟鍋滆溅",
     "deducting_reason": "琛岄┒涓溅杞Е杞ц溅閬撹竟绾�",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":24,
     "item_content": "渚ф柟鍋滆溅",
     "deducting_reason": "琛岄┒涓溅韬Е纰板簱浣嶈竟绾�",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":25,
     "item_content": "渚ф柟鍋滆溅",
     "deducting_reason": "鍑哄簱鏃朵笉浣跨敤鎴栭敊璇娇鐢ㄨ浆鍚戠伅",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":26,
     "item_content": "渚ф柟鍋滆溅",
     "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s",
     "score_deducting":5,
-    "required_precision":"trew"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":27,
     "item_content": "鏇茬嚎琛岄┒",
     "deducting_reason": "杞﹁疆杞ч亾璺竟缂樼嚎",
     "score_deducting":100,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":28,
     "item_content": "鏇茬嚎琛岄┒",
     "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s",
     "score_deducting":100,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":29,
     "item_content": "鐩寸嚎杞集",
     "deducting_reason": "杞﹁疆杞ч亾璺竟缂樼嚎",
     "score_deducting":100,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":30,
     "item_content": "鐩寸嚎杞集",
     "deducting_reason": "杞集鏃朵笉浣跨敤鎴栭敊璇娇鐢ㄨ浆鍚戠伅锛岃浆瀹屽悗涓嶅叧闂浆鍚戠伅",
     "score_deducting":10,
-    "required_precision":"5"
-  }, {
+    "required_precision":""
+  },
+  {
     "item_id":31,
     "item_content": "鐩寸嚎杞集",
     "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s",
     "score_deducting":5,
-    "required_precision":"5"
+    "required_precision":""
   }
 ]
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
index 82c66b9..823d9dd 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
@@ -37,9 +37,11 @@
     public static final ExecutorService dataBaseWriteExecutor = Executors.newFixedThreadPool(NUMBER_OF_THREADS);
 
      public static WorkRoomDataBase getWorkRoomDataBase(final Context mContext){
+         Log.i(TAG, "getWorkRoomDataBase");
         if (workRoomDataBase == null){
             synchronized (WorkRoomDataBase.class){
                 if (workRoomDataBase == null){
+                    Log.i(TAG, "getWorkRoomDataBase==null ");
                     workRoomDataBase = Room.databaseBuilder(mContext.getApplicationContext(),WorkRoomDataBase.class,"work_database")
                             .addCallback(new Callback() {
                                 @Override
@@ -51,6 +53,12 @@
                                     WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest);
                                     WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest1);
                                 }
+
+                                @Override
+                                public void onOpen(@NonNull SupportSQLiteDatabase db) {
+                                    super.onOpen(db);
+                                    Log.i(TAG, "onOpen: ");
+                                }
                             })
                             .build();
                 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriasRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriasRepository.java
index 1c7230d..d0e8c3b 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriasRepository.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriasRepository.java
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation.DB.criterias;
 
 import android.app.Application;
+import android.util.Log;
 
 import androidx.lifecycle.LiveData;
 
@@ -16,6 +17,7 @@
  */
 public class CriteriasRepository {
 
+    private static final String TAG = "CriteriasRepository";
 
     CriteriaIDao mCriteriaIDao;
 
@@ -54,6 +56,8 @@
      * @param application
      */
     public CriteriasRepository(Application application) {
-        this.mCriteriaIDao = WorkRoomDataBase.getWorkRoomDataBase(application).getCriteriaIDao();
+        Log.i(TAG, "CriteriasRepository: ");
+        WorkRoomDataBase db =WorkRoomDataBase.getWorkRoomDataBase(application);
+        this.mCriteriaIDao = db.getCriteriaIDao();
     }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/viewmodel/CriteriaIViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/viewmodel/CriteriaIViewModel.java
index ce218ae..809eb5c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/viewmodel/CriteriaIViewModel.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/viewmodel/CriteriaIViewModel.java
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation.DB.criterias.viewmodel;
 
 import android.app.Application;
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.lifecycle.AndroidViewModel;
@@ -19,17 +20,20 @@
  */
 public class CriteriaIViewModel extends AndroidViewModel {
 
+    private static final String TAG = "CriteriaIViewModel";
     CriteriasRepository mCriteriasRep;
-    LiveData<CriteriaForI> criteriaI;
 
     public CriteriaIViewModel(@NonNull Application application) {
         super(application);
+        Log.i(TAG, "CriteriaIViewModel Constructor ");
         mCriteriasRep = new CriteriasRepository(application);
     }
 
-    public LiveData<CriteriaForI> getItemForCriteriaI(int item_id){
-        criteriaI = mCriteriasRep.queryItemForCriteriaI(item_id);
-        return criteriaI;
+
+
+    public LiveData<CriteriaForI> queryCriteriaI(int item_id){
+        return mCriteriasRep.queryItemForCriteriaI(item_id);
+
     }
 
     public void insertCriteriaIs(List<CriteriaForI> cs){
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
index baa967f..c40f2f5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -23,6 +23,8 @@
 import me.yokeyword.fragmentation.SupportFragment;
 import safeluck.drive.evaluation.DB.Student;
 import safeluck.drive.evaluation.DB.WokViewModel;
+import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
+import safeluck.drive.evaluation.DB.criterias.viewmodel.CriteriaIViewModel;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.tcp.ConnectThread;
 
@@ -35,13 +37,15 @@
 public class TcpFragment extends SupportFragment implements View.OnClickListener {
 
 
+    private static final String TAG = TcpFragment.class.getSimpleName();
     private TextInputEditText ip;
     private TextInputEditText port;
     private Button btn_connect;
     private Button btn_send;
     private      ConnectThread connectThread;
     private AppCompatEditText sendEditText;
-    private         WokViewModel workViewModel;
+    private CriteriaIViewModel workViewModel;
+    private int item_id=0;
 
     public static TcpFragment newInstance() {
         return new TcpFragment();
@@ -52,16 +56,9 @@
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View view = inflater.inflate(R.layout.layout_tcpclient, container, false);
         initView(view);
-        workViewModel =ViewModelProviders.of(this).get(WokViewModel.class);
+        workViewModel =ViewModelProviders.of(this).get(CriteriaIViewModel.class);
 
-        workViewModel.getStudents().observe((LifecycleOwner) this, new Observer<List<Student>>() {
-            @Override
-            public void onChanged(List<Student> students) {
-                for (Student student:students){
-                    Log.i("Students", "onChanged: "+student.toString());
-                }
-            }
-        });
+  
         return view;
     }
 
@@ -92,8 +89,17 @@
 ////                    connectThread.sendMessage(sendEditText.getText().toString().trim());
 ////                    sendEditText.getText().clear();
 ////                }
-                workViewModel.insertStudent(new Student(1002,"鐜嬩簲","500107198910124566",1));
+                checkCriteria(++item_id);
                 break;
         }
     }
+
+    private void checkCriteria(int item_id) {
+        workViewModel.queryCriteriaI(item_id).observe(TcpFragment.this, new Observer<CriteriaForI>() {
+            @Override
+            public void onChanged(CriteriaForI criteriaForI) {
+                Log.i(TAG, "onChanged: "+criteriaForI.toString());
+            }
+        });
+    }
 }
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 9c06073..b3575bf 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -4,6 +4,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
+
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -13,6 +17,8 @@
 import java.util.List;
 
 import me.yokeyword.fragmentation.SupportFragment;
+import safeluck.drive.evaluation.DB.Student;
+import safeluck.drive.evaluation.DB.WokViewModel;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.adapter.ScoreAdapter;
 import safeluck.drive.evaluation.bean.ScoreBean;
@@ -24,6 +30,8 @@
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  */
 public class TrainFragment extends SupportFragment implements View.OnClickListener {
+
+    private static final String TAG = TrainFragment.class.getSimpleName();
     private ListView mListView ;
     private ScoreAdapter mScoreAdapter;
 
@@ -39,6 +47,18 @@
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View view = inflater.inflate(R.layout.layout_train_fragment,container,false);
         initView(view);
+
+        WokViewModel wokViewModel = ViewModelProviders.of(this).get(WokViewModel.class);
+        wokViewModel.getStudents().observe(this, new Observer<List<Student>>() {
+            @Override
+            public void onChanged(List<Student> students) {
+                for (Student student:
+                     students) {
+                    Log.i(TAG, "onChanged: "+student.toString());
+                }
+            }
+        });
+
         return view;
     }
     private void initView(View view) {

--
Gitblit v1.8.0