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