From 12c468b38b46e61f9c2dcec27684e9ea1d54adcf Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期三, 08 一月 2020 17:37:12 +0800
Subject: [PATCH] 删除数据库升级方法;插入数据库改到Activity,否则application insert会报错;
---
app/src/main/java/safeluck/drive/evaluation/Constant.java | 3 +
app/src/main/java/safeluck/drive/evaluation/app.java | 49 +++++++++++-----
app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 17 +++++
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java | 16 +++++
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java | 1
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java | 2
app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java | 18 +++---
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 21 +-----
app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java | 2
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 31 ++++++++--
10 files changed, 110 insertions(+), 50 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java
index 50db6b8..dbd4d74 100644
--- a/app/src/main/java/safeluck/drive/evaluation/Constant.java
+++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -47,4 +47,7 @@
public static final String RTK_CONFIG_JSON = "rtk_config.json";
public static final String BIND_DRIVING_TOPIC = "driving";
public static final long TEST_STU_ID = 1001;
+
+ //I绫昏瘎鍒よ〃
+ public static final int SUBJECT_I = 1;
}
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 5c0fd1f..07cc5de 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java
@@ -47,13 +47,13 @@
private static final int NUMBER_OF_THREADS = 4;
public static final ExecutorService dataBaseWriteExecutor = Executors.newFixedThreadPool(NUMBER_OF_THREADS);
- static Migration migration = new Migration(1,2) {
- @Override
- public void migrate(@NonNull SupportSQLiteDatabase database) {
- database.execSQL("alter table student_table ADD COLUMN begin_time INTEGER NOT NULL DEFAULT 0");
- }
- };
-private static final Migration[] ALL_MIGRATIONS = new Migration[]{migration};
+// static Migration migration = new Migration(1,2) {
+// @Override
+// public void migrate(@NonNull SupportSQLiteDatabase database) {
+// database.execSQL("alter table student_table ADD COLUMN begin_time INTEGER NOT NULL DEFAULT 0");
+// }
+// };
+//private static final Migration[] ALL_MIGRATIONS = new Migration[]{migration};
public static WorkRoomDataBase getWorkRoomDataBase(final Context mContext){
@@ -63,15 +63,15 @@
if (workRoomDataBase == null){
Log.i(TAG, "getWorkRoomDataBase==null ");
workRoomDataBase = Room.databaseBuilder(mContext.getApplicationContext(),WorkRoomDataBase.class,"work_database")
- .addMigrations(ALL_MIGRATIONS)
+// .addMigrations(ALL_MIGRATIONS)
.addCallback(new Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
super.onCreate(db);
OneTimeWorkRequest oneTimeWorkRequest = OneTimeWorkRequest.from(SeedDatabaseWorker.class);
OneTimeWorkRequest oneTimeWorkRequest1 = OneTimeWorkRequest.from(CriteriaForIWorker.class);
- OneTimeWorkRequest oneTimeWorkRequest2 = OneTimeWorkRequest.from(FailedProjWorker.class);
OneTimeWorkRequest oneTimeWorkRequest3 = OneTimeWorkRequest.from(CriteriaForIIWorker.class);
+ OneTimeWorkRequest oneTimeWorkRequest2 = OneTimeWorkRequest.from(FailedProjWorker.class);
Log.i(TAG, "onCreate: 鍒涘缓鏁版嵁搴撳悗寤虹珛鏁版嵁琛ㄦ彃鍏ユ暟鎹�");
WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest);
WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest1);
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java
index f9ea361..0e641f0 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java
@@ -43,4 +43,6 @@
@Query("SELECT COUNT(*) from fail_projects where subject=:subject_id")
LiveData<Integer> getSubject(int subject_id);
+ @Query("delete from fail_projects")
+ void deleteAll();
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java
index 362c62d..0794aee 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java
@@ -20,7 +20,7 @@
*/
@Entity(tableName = "fail_projects",foreignKeys = {@ForeignKey(entity = CriteriaForI.class,
parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE),@ForeignKey(entity = CriteriaForII.class,
- parentColumns = "item_id",childColumns = "emp_id")},indices = @Index(value = {"emp_id"}))
+ parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE)},indices = @Index(value = {"emp_id"}))
public class FailedProj {
@PrimaryKey(autoGenerate = true)
private int id;
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java
index ddfa6d1..838dac3 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java
@@ -25,7 +25,7 @@
}
- public void insert(final FailedProj proj){
+ public void insert(final FailedProj proj) {
WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
@Override
public void run() {
@@ -36,7 +36,20 @@
}
/**
+ * 鍒犻櫎fail_projects琛ㄤ腑鎵�鏈夋暟鎹�
+ */
+ public void deleteAll() {
+ WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() {
+ @Override
+ public void run() {
+ failProjDao.deleteAll();
+ }
+ });
+ }
+
+ /**
* 鑾峰緱绉戠洰浜� I绫昏�冨満澶辫触椤圭洰鎵e垎椤�
+ *
* @param stu_id
* @return
*/
@@ -46,6 +59,7 @@
/**
* 鑾峰緱绉戠洰浜� II绫昏�冨満澶辫触椤圭洰鎵e垎椤�
+ *
* @param stu_id
* @return
*/
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java
index a501b09..b304389 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java
@@ -28,7 +28,6 @@
@NonNull
@Override
public Result doWork() {
- MyLog.i(TAG,"棰勭疆涓�鏉″け璐ラ」鐩�");
// WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getFailProjDao().insert(new FailedProj(1,5)); //鍔犱笂杩欎竴琛屼細鎶ラ敊锛屼笉鐭ラ亾涓轰粈涔堬紝鍖卥ey constraint fail宕╂簝
return Result.success();
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
index 18dac71..5ae9c29 100644
--- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
+++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -17,8 +17,13 @@
import androidx.lifecycle.ViewModelProviders;
import me.yokeyword.fragmentation.SupportActivity;
+import safeluck.drive.evaluation.DB.Student;
+import safeluck.drive.evaluation.DB.WokViewModel;
import safeluck.drive.evaluation.fragment.HomeFragment;
import com.anyun.exam.lib.MyLog;
+
+import java.util.List;
+
import safeluck.drive.evaluation.util.PermissionManager;
import safeluck.drive.evaluation.viewmodels.MainViewModel;
@@ -37,6 +42,18 @@
setContentView(R.layout.activity_main);
+ 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());
+ }
+ }
+ });
+
+
mPermissionsManager = new PermissionManager(this) {
@Override
public void authorized(int requestCode) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 87d6bb6..ee68c5c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -1,6 +1,7 @@
package safeluck.drive.evaluation;
import android.app.Application;
+import android.os.Handler;
import android.util.Log;
import android.widget.Toast;
@@ -12,6 +13,7 @@
import me.yokeyword.fragmentation.Fragmentation;
import me.yokeyword.fragmentation.helper.ExceptionHandler;
+
import com.anyun.exam.lib.MyLog;
import com.anyun.exam.lib.crash.CrashHandler;
import com.facebook.stetho.Stetho;
@@ -21,11 +23,12 @@
import org.json.JSONException;
import org.json.JSONObject;
+import java.util.Random;
+
import safeluck.drive.evaluation.DB.failitems.FailedProj;
import safeluck.drive.evaluation.DB.failitems.FailedProjRepository;
import safeluck.drive.evaluation.bean.RTKConfig;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
-import safeluck.drive.evaluation.util.FileUtil;
import safeluck.drive.evaluation.util.SystemUtil;
/**
@@ -39,11 +42,14 @@
private static final String TAG = "app";
private Gson gson;
RTKConfig rtkConfig;
+ FailedProjRepository failedProjRepository;
+ Random random = new Random();
+
@Override
public void onCreate() {
super.onCreate();
//鍒濆鍖朏ragment 寤鸿鍦ˋpplication onCreate閲岄潰鍒濆鍖�
- if (SystemUtil.compareProcessName(this)){
+ if (SystemUtil.compareProcessName(this)) {
Fragmentation.builder().stackViewMode(Fragmentation.BUBBLE).debug(false)
.handleException(new ExceptionHandler() {
@Override
@@ -53,13 +59,13 @@
})
.install();
- CrashHandler crashHandler =CrashHandler.getInstance();
+ CrashHandler crashHandler = CrashHandler.getInstance();
crashHandler.init(getApplicationContext());
AYSdk.getInstance().init(getApplicationContext());
AYSdk.getInstance().registListener(this);
- Log.i(TAG, "onCreate: ");
MyLog.createIfNotExist();
Stetho.initializeWithDefaults(this);
+
//RTK閰嶇疆淇℃伅
rtkConfig = new RTKConfig();
@@ -72,6 +78,9 @@
rtkConfig.setPort(12125);
rtkConfig.setProvince(23);
rtkConfig.setSn("2019101500000001");
+ //鏁版嵁搴撴搷浣�
+ MyLog.i(TAG, "onCreate111");
+ failedProjRepository = new FailedProjRepository(this);
}
}
@@ -90,17 +99,18 @@
}
@Override
- public void callBackMsg(int cmd, String json) {
- MyLog.d(TAG, String.format("鏀跺埌鍛戒护[%d],Json鍐呭涓�%s",cmd,json));
- switch (cmd){
+ public void callBackMsg(final int cmd, String json) {
+ MyLog.d(TAG, String.format("鏀跺埌鍛戒护[%d],Json鍐呭涓�%s", cmd, json));
+ switch (cmd) {
case Constant.NDK_START:
Toast.makeText(this, "NDK start", Toast.LENGTH_SHORT).show();
break;
case Constant.RTK_PLATFORM_REGISTER_STATUS:
+ failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(30), Constant.TEST_STU_ID));
try {
- JSONObject jsonObject = new JSONObject();
- int reg_code = jsonObject.getInt("register_code");
+ JSONObject jsonObject = new JSONObject(json);
String rtkLoginPwd = jsonObject.getString("password");
+ int reg_code = jsonObject.getInt("register_code");
rtkConfig.setPassword(rtkLoginPwd);
rtkConfig.setRegistered(reg_code);
} catch (JSONException e) {
@@ -108,22 +118,31 @@
}
break;
case Constant.RTK_PLATFORM_REGISTER_RESULT:
+
+ failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(30), Constant.TEST_STU_ID));
+
+
break;
case Constant.FETCH_RTK_PLATFORM_INFO:
- if (gson == null){
+ if (gson == null) {
gson = new Gson();
}
- MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�"+gson.toJson(rtkConfig));
- AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO,gson.toJson(rtkConfig));
+ MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�" + gson.toJson(rtkConfig));
+ AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, gson.toJson(rtkConfig));
break;
case Constant.JUDGE_INFO:
- FailedProjRepository failedProjRepository = new FailedProjRepository(this);
- failedProjRepository.insert(new FailedProj(1,cmd,Constant.TEST_STU_ID));
+
+
+ failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd, Constant.TEST_STU_ID));
+
+ break;
+ case Constant.EXAM_STATUS_REPLY:
+ MyLog.d(TAG, "鑰冭瘯寮�濮嬶紝闇�瑕佸垹闄や笂涓�涓�冭瘯瀛﹀憳鐨勬暟鎹簱澶辫触椤圭洰琛�");
+ failedProjRepository.deleteAll();
break;
}
}
-
}
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 098acc8..31c1dcb 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -13,6 +13,8 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
import com.anyun.exam.lib.AYSdk;
import com.google.gson.Gson;
@@ -28,6 +30,8 @@
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.Constant;
+import safeluck.drive.evaluation.DB.failitems.FailedProjViewModel;
+import safeluck.drive.evaluation.DB.failitems.FailedProj_select;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.adapter.ScoreAdapter;
import safeluck.drive.evaluation.bean.ScoreBean;
@@ -46,6 +50,8 @@
private Button btn_start_exam;
private ScoreAdapter mScoreAdapter;
+ private int item_id;//鎵e垎鍒嗘暟鎬诲拰
+
private List<ScoreBean> mArrayList = new ArrayList<>();
public static SupportFragment newInstance() {
@@ -57,6 +63,24 @@
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);
+
+ FailedProjViewModel failedProjViewModel = ViewModelProviders.of(this).get(FailedProjViewModel.class);
+ failedProjViewModel.getFailedProjectsForI(Constant.TEST_STU_ID).observe(this, new Observer<List<FailedProj_select>>() {
+ @Override
+ public void onChanged(List<FailedProj_select> failedProj_selects) {
+ item_id = 0;
+ mArrayList.clear();
+ for (FailedProj_select f :
+ failedProj_selects) {
+ item_id += f.getScore_deducting();
+ Log.i(TAG, "onChanged: "+f.toString());
+ mArrayList.add(new ScoreBean(f.getScore_deducting(),f.getItem_content(),f.getDeducting_reason()));
+ mScoreAdapter.addDatas(mArrayList);
+ }
+ }
+ });
+
+
return view;
}
@@ -68,13 +92,6 @@
btn_start_exam.setOnClickListener(this);
view.findViewById(R.id.tv_stop).setOnClickListener(this);
mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null));
- mArrayList.add(new ScoreBean(12,"鐩磋杞集","鍚庤疆鑳庡帇绾�"));
- mArrayList.add(new ScoreBean(100,"鍊掕溅鍏ュ簱","鏈郴瀹夊叏甯�"));
- mArrayList.add(new ScoreBean(10,"鍧¢亾璧锋","涓�娆$唲鐏�"));
- mArrayList.add(new ScoreBean(0,"",""));
- mArrayList.add(new ScoreBean(0,"",""));
-
- mScoreAdapter.addDatas(mArrayList);
}
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 663b0bc..2010688 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -45,7 +45,7 @@
private Button btn_train;
private ScoreAdapter mScoreAdapter;
- private int item_id;
+ private int item_id;//鎵e垎鍒嗘暟鎬诲拰
private List<ScoreBean> mArrayList = new ArrayList<>();
@@ -78,16 +78,6 @@
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());
- }
- }
- });
FailedProjViewModel failedProjViewModel =ViewModelProviders.of(this).get(FailedProjViewModel.class);
@@ -95,11 +85,13 @@
@Override
public void onChanged(List<FailedProj_select> failedProj_selects) {
item_id = 0;
+ mArrayList.clear();
for (FailedProj_select f :
failedProj_selects) {
item_id += f.getScore_deducting();
Log.i(TAG, "onChanged: "+f.toString());
- Toast.makeText(getActivity().getApplicationContext(),"寰楀垎"+item_id,Toast.LENGTH_SHORT).show();
+ mArrayList.add(new ScoreBean(f.getScore_deducting(),f.getItem_content(),f.getDeducting_reason()));
+ mScoreAdapter.addDatas(mArrayList);
}
}
});
@@ -117,10 +109,7 @@
mListView.setAdapter(mScoreAdapter);
mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null));
- mArrayList.add(new ScoreBean(12,"鐩磋杞集","鍚庤疆鑳庡帇绾�"));
- mArrayList.add(new ScoreBean(100,"鍊掕溅鍏ュ簱","鏈郴瀹夊叏甯�"));
- mArrayList.add(new ScoreBean(10,"鍧¢亾璧锋","涓�娆$唲鐏�"));
- mScoreAdapter.addDatas(mArrayList);
+
}
--
Gitblit v1.8.0