From 6ecba06488059ca4bdc179f18648f161c0e7e43f Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期四, 09 一月 2020 16:47:18 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge --- app/src/main/java/safeluck/drive/evaluation/Constant.java | 3 app/src/main/assets/students_file.json | 7 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java | 16 + app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java | 2 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 22 - app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java | 2 app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java | 37 +++ app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java | 50 +++++ app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java | 38 ++++ app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java | 29 +++ app/src/main/java/safeluck/drive/evaluation/app.java | 124 ++++++++++--- app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 19 ++ app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java | 24 ++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java | 1 app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java | 26 +- app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java | 64 +++++++ app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 31 ++ 17 files changed, 421 insertions(+), 74 deletions(-) diff --git a/app/src/main/assets/students_file.json b/app/src/main/assets/students_file.json index 8423b11..d04d564 100644 --- a/app/src/main/assets/students_file.json +++ b/app/src/main/assets/students_file.json @@ -1,10 +1,5 @@ [ - { - "stu_id":1000, - "ID": "410923198910162546", - "name": "寮犱笁", - "sex":1 - }, + { "stu_id":1001, "ID": "410923198910162545", 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..d4d21a4 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java @@ -24,6 +24,9 @@ import safeluck.drive.evaluation.DB.failitems.FailProjDao; import safeluck.drive.evaluation.DB.failitems.FailedProj; import safeluck.drive.evaluation.DB.failitems.FailedProjWorker; +import safeluck.drive.evaluation.DB.rtktb.RTKConfig; +import safeluck.drive.evaluation.DB.rtktb.RTKConfigDao; +import safeluck.drive.evaluation.DB.rtktb.RTKConfigWork; /** @@ -32,7 +35,7 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ -@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class},version = 2,exportSchema = false) +@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, RTKConfig.class},version = 1,exportSchema = false) public abstract class WorkRoomDataBase extends RoomDatabase { private static final String TAG = "WorkRoomDataBase"; public abstract StudentDao getstudentDao(); @@ -47,13 +50,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,20 +66,22 @@ 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); + OneTimeWorkRequest RTKConfigWorkRequest = OneTimeWorkRequest.from(RTKConfigWork.class); Log.i(TAG, "onCreate: 鍒涘缓鏁版嵁搴撳悗寤虹珛鏁版嵁琛ㄦ彃鍏ユ暟鎹�"); WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest); WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest1); WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest2); WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest3); + WorkManager.getInstance(mContext).enqueue(RTKConfigWorkRequest); } @Override @@ -93,4 +98,5 @@ } + public abstract RTKConfigDao getRTKConfigDao(); } 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/bean/RTKConfig.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java similarity index 71% rename from app/src/main/java/safeluck/drive/evaluation/bean/RTKConfig.java rename to app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java index 438bdcf..7af5cb3 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/RTKConfig.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfig.java @@ -1,4 +1,7 @@ -package safeluck.drive.evaluation.bean; +package safeluck.drive.evaluation.DB.rtktb; + +import androidx.room.Entity; +import androidx.room.PrimaryKey; /** * MyApplication2 @@ -6,6 +9,7 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ +@Entity(tableName = "rtkconfig_table") public class RTKConfig { /** @@ -23,6 +27,7 @@ */ private String ip; + private int port; private int province; private int city; @@ -32,7 +37,19 @@ private String phone; private String password; private int registered; + @PrimaryKey + private int _id; + + public int get_id() { + return _id; + } + + public void set_id(int _id) { + this._id = _id; + } + private int interval; + public String getIp() { return ip; @@ -121,4 +138,23 @@ public void setInterval(int interval) { this.interval = interval; } + + @Override + public String toString() { + return "RTKConfig{" + + "ip='" + ip + '\'' + + ", port=" + port + + ", province=" + province + + ", city=" + city + + ", model='" + model + '\'' + + ", sn='" + sn + '\'' + + ", imei='" + imei + '\'' + + ", phone='" + phone + '\'' + + ", password='" + password + '\'' + + ", registered=" + registered + + ", interval=" + interval + + '}'; + } + + } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java new file mode 100644 index 0000000..85d9de4 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java @@ -0,0 +1,24 @@ +package safeluck.drive.evaluation.DB.rtktb; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; +import androidx.room.Update; + +@Dao +public interface RTKConfigDao { + @Insert(onConflict = OnConflictStrategy.REPLACE) + void insert(RTKConfig rtkConfig); + + + @Query("SELECT * from rtkconfig_table") + LiveData<RTKConfig> getRTKConfig(); + + @Update + void update(RTKConfig rtkConfig); + + @Query("SELECT * from rtkconfig_table") + RTKConfig getRTKConfigNoLive(); +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java new file mode 100644 index 0000000..fa63110 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigViewModel.java @@ -0,0 +1,29 @@ +package safeluck.drive.evaluation.DB.rtktb; + +import android.app.Application; + +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.LiveData; + + +public class RTKConfigViewModel extends AndroidViewModel { + RTKWorkRepository rtkWorkRepository; + public RTKConfigViewModel(@NonNull Application application) { + super(application); + rtkWorkRepository = new RTKWorkRepository(application); + } + + public void insertRTKConfig(final RTKConfig rtkConfig){ + rtkWorkRepository.insertRTKConfig(rtkConfig); + } + + public LiveData<RTKConfig> getRTKConfig(){ + return rtkWorkRepository.getRTKConfig(); + } + + + public void update(final RTKConfig rtkConfig){ + rtkWorkRepository.update(rtkConfig); + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java new file mode 100644 index 0000000..9928694 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java @@ -0,0 +1,50 @@ +package safeluck.drive.evaluation.DB.rtktb; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.work.Worker; +import androidx.work.WorkerParameters; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.reflect.Type; +import java.util.List; + +import safeluck.drive.evaluation.Constant; +import safeluck.drive.evaluation.DB.Student; +import safeluck.drive.evaluation.DB.WorkRoomDataBase; +import safeluck.drive.evaluation.util.FileUtil; + +public class RTKConfigWork extends Worker { + private Context context; + public RTKConfigWork(@NonNull Context context, @NonNull WorkerParameters workerParams) { + super(context, workerParams); + this.context = context; + } + + @NonNull + @Override + public Result doWork() { + try { + InputStream inputStream = getApplicationContext().getAssets().open(Constant.RTK_CONFIG_JSON); + InputStreamReader inputStreamReader = new InputStreamReader(inputStream); + JsonReader jsonReader = new JsonReader(inputStreamReader); + + Gson gson = new Gson(); + Type type = new TypeToken<RTKConfig>(){}.getType(); + + RTKConfig mstus=gson.fromJson(jsonReader, type); + WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRTKConfigDao().insert(mstus); + } catch (IOException e) { + e.printStackTrace(); + return Result.failure(); + } + return Result.success(); + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java new file mode 100644 index 0000000..4f67f92 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKWorkRepository.java @@ -0,0 +1,64 @@ +package safeluck.drive.evaluation.DB.rtktb; + +import android.app.Application; + +import androidx.lifecycle.LiveData; + +import com.anyun.exam.lib.MyLog; + +import safeluck.drive.evaluation.DB.WorkRoomDataBase; + +public class RTKWorkRepository { + private static final String TAG = "RTKWorkRepository"; + private RTKConfigDao rtkConfigDao; + private LiveData<RTKConfig> rtkConfig; + private RTKConfig rtkConfig1; + + public RTKWorkRepository(Application application) { + rtkConfigDao = WorkRoomDataBase.getWorkRoomDataBase(application).getRTKConfigDao(); + rtkConfig = rtkConfigDao.getRTKConfig(); + WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() { + @Override + public void run() { + MyLog.d(TAG,"鑾峰彇RTK閰嶇疆淇℃伅琛�"); + rtkConfig1 = rtkConfigDao.getRTKConfigNoLive(); + } + }); + + } + + public void insertRTKConfig(final RTKConfig rtkConfig){ + WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() { + @Override + public void run() { + rtkConfigDao.insert(rtkConfig); + } + }); + } + + public LiveData<RTKConfig> getRTKConfig(){ + return rtkConfig; + } + + public void update(final RTKConfig rtkConfig){ + WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() { + @Override + public void run() { + rtkConfigDao.update(rtkConfig); + } + }); + } + + public RTKConfig getRTKConfigNoLive() { + if (rtkConfig1 == null){ + WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() { + @Override + public void run() { + MyLog.d(TAG,"鍐嶆鑾峰彇RTK閰嶇疆淇℃伅琛�"); + rtkConfig1 = rtkConfigDao.getRTKConfigNoLive(); + } + }); + } + return rtkConfig1; + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index 18dac71..98a0b6e 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,20 @@ 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..8b384a0 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -1,7 +1,6 @@ package safeluck.drive.evaluation; import android.app.Application; -import android.util.Log; import android.widget.Toast; @@ -12,6 +11,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 +21,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.DB.rtktb.RTKConfig; +import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository; import safeluck.drive.evaluation.util.SystemUtil; /** @@ -39,11 +40,15 @@ private static final String TAG = "app"; private Gson gson; RTKConfig rtkConfig; + FailedProjRepository failedProjRepository;//澶辫触椤圭洰琛ㄦ暟鎹簱 + RTKWorkRepository rtkWorkRepository;//淇濆瓨RTK閰嶇疆琛� + 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,25 +58,29 @@ }) .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(); - rtkConfig.setCity(12); - rtkConfig.setImei("460123874561"); - rtkConfig.setInterval(1); - rtkConfig.setIp("47.93.80.84"); - rtkConfig.setModel("123"); - rtkConfig.setPhone("2019101500000001"); - rtkConfig.setPort(12125); - rtkConfig.setProvince(23); - rtkConfig.setSn("2019101500000001"); +// rtkConfig = new RTKConfig(); +// rtkConfig.setCity(12); +// rtkConfig.setImei("460123874561"); +// rtkConfig.setInterval(1); +// rtkConfig.setIp("47.93.80.84"); +// rtkConfig.setModel("123"); +// rtkConfig.setPhone("2019101500000001"); +// rtkConfig.setPort(12125); +// rtkConfig.setProvince(23); +// rtkConfig.setSn("2019101500000001"); + //鏁版嵁搴撴搷浣� + MyLog.i(TAG, "onCreate111"); + failedProjRepository = new FailedProjRepository(this); + rtkWorkRepository = new RTKWorkRepository(this); } } @@ -90,40 +99,99 @@ } @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(26), Constant.TEST_STU_ID)); + rtkConfig = rtkWorkRepository.getRTKConfigNoLive(); + 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) { e.printStackTrace(); } + rtkWorkRepository.insertRTKConfig(rtkConfig); break; case Constant.RTK_PLATFORM_REGISTER_RESULT: + + failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, cmd + random.nextInt(26), Constant.TEST_STU_ID)); + + try { + JSONObject jsonObject = new JSONObject(json); + int rtklogincode = jsonObject.getInt("login_code"); + rtkConfig.setRegistered(rtklogincode); + } catch (JSONException e) { + e.printStackTrace(); + } + + break; case Constant.FETCH_RTK_PLATFORM_INFO: - if (gson == null){ + rtkConfig = rtkWorkRepository.getRTKConfigNoLive(); + if (gson == null) { gson = new Gson(); } - MyLog.i(TAG, "RTK閰嶇疆淇℃伅锛�"+gson.toJson(rtkConfig)); - AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO,gson.toJson(rtkConfig)); + 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); + } + 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; + case Constant.RTK_PLATFORM_CONNECT_STATUS: + rtkConfig = rtkWorkRepository.getRTKConfigNoLive(); + + try { + JSONObject jsonObject3 = new JSONObject(json); + String ip = jsonObject3.getString("ip"); + int port = jsonObject3.getInt("port"); + int reg_code = jsonObject3.getInt("connected"); + rtkConfig.setRegistered(reg_code); + rtkConfig.setIp(ip); + rtkConfig.setPort(port); + } catch (JSONException e) { + e.printStackTrace(); + } + rtkWorkRepository.insertRTKConfig(rtkConfig); 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/RTKConfigFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java index 2988784..e6506df 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RTKConfigFragment.java @@ -3,6 +3,10 @@ import android.os.Bundle; 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; @@ -11,8 +15,9 @@ import com.google.gson.Gson; import me.yokeyword.fragmentation.SupportFragment; +import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel; import safeluck.drive.evaluation.R; -import safeluck.drive.evaluation.bean.RTKConfig; +import safeluck.drive.evaluation.DB.rtktb.RTKConfig; /**FTP閰嶇疆UI * MyApplication2 @@ -25,6 +30,8 @@ private static final String TAG = "RTKConfigFragment"; private EditText et_ip,et_port,et_city_id,et_city_province,et_phone; + private RTKConfigViewModel rtkConfigViewModel; + private RTKConfig mRtkConfig; public static SupportFragment newInstance(){ return new RTKConfigFragment(); @@ -37,19 +44,43 @@ View view = inflater.inflate(R.layout.layout_rtk_setting,container,false); initView(view); + rtkConfigViewModel= ViewModelProviders.of(this).get(RTKConfigViewModel.class); + rtkConfigViewModel.getRTKConfig().observe(this, new Observer<RTKConfig>() { + @Override + public void onChanged(RTKConfig rtkConfig) { + Log.i(TAG, "RTKConfig Changed: "+rtkConfig.toString()); + mRtkConfig = rtkConfig; + et_ip.setText(rtkConfig.getIp()); + et_city_id.setText(String.valueOf(rtkConfig.getCity())); + et_city_province.setText(String.valueOf(rtkConfig.getProvince())); + et_port.setText(String.valueOf(rtkConfig.getPort())); + et_phone.setText(rtkConfig.getPhone()); + } + }); return view; } private void initView(View view) { view.findViewById(R.id.btn_save_rtk).setOnClickListener(this); + et_ip = view.findViewById(R.id.rtk_addr_ip); + et_city_id = view.findViewById(R.id.et_city_id); + et_city_province = view.findViewById(R.id.et_provice_id); + et_phone = view.findViewById(R.id.et_phone); + et_port = view.findViewById(R.id.rtk_addr_port); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_save_rtk: - Gson gson = new Gson(); - String rtkConfigjson = gson.toJson(RTKConfig.class); + if (mRtkConfig != null){ + mRtkConfig.setPort(Integer.parseInt(et_port.getText().toString().trim())); + mRtkConfig.setCity(Integer.parseInt(et_city_id.getText().toString().trim())); + mRtkConfig.setProvince(Integer.parseInt(et_city_province.getText().toString().trim())); + mRtkConfig.setIp(et_ip.getText().toString().trim()); + mRtkConfig.setPhone(et_phone.getText().toString().trim()); + rtkConfigViewModel.insertRTKConfig(mRtkConfig); + } break; } } 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..4733a3a 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); } } }); @@ -109,6 +101,7 @@ private void initView(View view) { mListView = view.findViewById(R.id.lv); + mListView.setFocusable(false);//listview涓嶈幏鍙栫劍鐐癸紝涓嶇劧鐨勮瘽scrollview浼氶《鍒板簳閮� view.findViewById(R.id.view_map).setOnClickListener(this); btn_train = view.findViewById(R.id.btn_start); btn_train.setOnClickListener(this); @@ -117,10 +110,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