From c125fc0a5ee47ef32db587899d972491231167ee Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期四, 12 三月 2020 17:40:09 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 523 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 427 insertions(+), 96 deletions(-) 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 95e0c0c..e0031b7 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java @@ -1,10 +1,14 @@ package safeluck.drive.evaluation.fragment; +import android.app.AlarmManager; +import android.app.PendingIntent; import android.content.Context; +import android.content.Intent; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.app.AlarmManagerCompat; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; import androidx.work.OneTimeWorkRequest; @@ -12,8 +16,11 @@ import android.os.Handler; import android.os.Message; +import android.os.SystemClock; +import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.Button; @@ -24,15 +31,21 @@ 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.ArrayList; +import java.util.Collections; +import java.util.Date; import java.util.List; +import java.util.Random; import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.Constant; +import safeluck.drive.evaluation.DB.Student; +import safeluck.drive.evaluation.DB.WokViewModel; import safeluck.drive.evaluation.DB.appstatusdb.AppStatus; import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel; import safeluck.drive.evaluation.DB.exam_status.ExamStatus; @@ -42,11 +55,20 @@ import safeluck.drive.evaluation.DB.failitems.FailedProj_select; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.adapter.ScoreAdapter; +import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.bean.ScoreBean; +import safeluck.drive.evaluation.bean.SimulateNightBean; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.cEventCenter.ICEventListener; import safeluck.drive.evaluation.customview.ArrowView; import safeluck.drive.evaluation.customview.HouseView; +import safeluck.drive.evaluation.customview.MyDialogFragment; +import safeluck.drive.evaluation.im.MessageProcessor; +import safeluck.drive.evaluation.platformMessage.JKMessage0201; +import safeluck.drive.evaluation.platformMessage.JKMessage0202; +import safeluck.drive.evaluation.platformMessage.JKMessage0203; +import safeluck.drive.evaluation.platformMessage.JKMessage0204; +import safeluck.drive.evaluation.util.Utils; /**鍗曟満璁粌UI * MyApplication2 @@ -57,66 +79,178 @@ public class TrainFragment extends SupportFragment implements View.OnClickListener { private static final String TAG = TrainFragment.class.getSimpleName(); - private ListView mListView ; - private Button btn_train; - private ScoreAdapter mScoreAdapter; + private static final int REQUEST_CODE = 1000; + private static final String ALARM_ACTION_CODE = "com.anyun.alermbroadcast"; - private int item_id;//鎵e垎鍒嗘暟鎬诲拰 + public static SupportFragment newInstance() { + return new TrainFragment(); + } + + private int exam_type = 2;//2 鍦哄湴锛�3 閬撹矾锛屾ā鎷熷鑰冿紱4 閬撹矾锛屽疄闄呭鑰冿紱 + private ListView mListView; + private Button btn_start_exam; + private TextView tv_stop;//鍛煎彨璇锋眰锛堢粨鏉熻�冭瘯锛� + private Gson gson = new Gson(); + private ScoreAdapter mScoreAdapter; private ArrowView av_zhijiao, av_curve, av_park, av_podao; private HouseView houseView; private List<ExamStatus> examStatusList = new ArrayList<>(); private List<String> item_conents = new ArrayList<>();//鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝� + private int item_id;//鎵e垎鍒嗘暟鎬诲拰 private ExamStatusViewModel examStatusViewModel; private static final int ADD_DATA = 1; - private static final int SPEED_DATA = 2; + private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform; + private double speed=0.0; private ImageView iv_rtk_status,iv_head; - private List<ScoreBean> mArrayList = new ArrayList<>(); - private View tv_stop; - private TextView tv_speed,tv_total_score,tv_sat_num; private int currTotalScore = 100; - private double speed=0.0; + private List<ScoreBean> mArrayList = new ArrayList<>(); + private static final int SPEED_DATA = 2; + private FailedProjViewModel failedProjViewModel; + String icson;//杩斿洖鐨刬c鍗′俊鎭� json + private Random random = new Random(); + private List<SimulateNightBean.QuestionBean> tempQs= new ArrayList<>(); + + + private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { if (msg.what == ADD_DATA){ + MyLog.i("handler add_data totalScore="+currTotalScore); tv_total_score.setText(getResources().getString(R.string.total_score,currTotalScore)); - houseView.setColor(whatPaintColor(examStatusList.get(0))); - av_podao.setColor(whatPaintColor(examStatusList.get(1))); - av_park.setColor(whatPaintColor(examStatusList.get(2))); - av_curve.setColor(whatPaintColor(examStatusList.get(3))); - av_zhijiao.setColor(whatPaintColor(examStatusList.get(4))); + houseView.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_REVERSE));//鍊掕溅鍏ュ簱 type =1 + av_podao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_RAMP)); + av_park.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_PARK)); + av_curve.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_CURVE)); + av_zhijiao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE)); } if (msg.what == SPEED_DATA){ tv_speed.setText(getResources().getString(R.string.speed,speed)); + } + if (msg.what == Constant.IC_ID){ + try { + JSONObject jsSpeed = new JSONObject(icson); + int result = jsSpeed.getInt("result"); + String icStr = jsSpeed.getString("serialno"); + if (result == 0) { + JKMessage0201 jkMessage0201 = new JKMessage0201(); + jkMessage0201.phone = ExamPlatformData.getInstance().getPhone(); + if (exam_type==Constant.Chang_di){ + jkMessage0201.currentExam = 0; + }else{ + jkMessage0201.currentExam = 1; + } + + jkMessage0201.id = icStr; + MessageProcessor.getInstance().sendMessage(jkMessage0201); + } + + }catch (JSONException e){ + + } + } return false; } }); + private int aaa(int type) { + if (examStatusList!=null &&examStatusList.size()>0){ + for (ExamStatus examStatus: + examStatusList) { + if (type == examStatus.getMap_item()){ + if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.BEGIN_ITEM){ + //杩涘叆鑰冨満 + if (examStatusList.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){ + //缁撴潫鑰冭瘯浜� + MyLog.i("杩涘叆鑰冨満缁撴潫鑰冭瘯锛宻tartexam="+examStatus.getStartExam()); + return getResources().getColor(R.color.colorAccent); + }else{ + MyLog.i("杩涘叆鑰冨満锛宼ype="+type); + return getResources().getColor(R.color.pink); + } - public static SupportFragment newInstance(){ - return new TrainFragment(); + }else if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.FINISH_ITEM){ + + if (examStatusList.get(0).getStartExam()==Constant.NONE_BEEN_START_EXAM){ + return getResources().getColor(R.color.examing); + } + + switch (type) { + case 1://鍊掑簱 + if (item_conents.contains("鍊掕溅鍏ュ簱")) { + MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type); + + return getResources().getColor(R.color.colorAccent); + }else{ + ExamPlatformData.getInstance().getTTS().speak("鍊掕溅鍏ュ簱鍚堟牸"); + return getResources().getColor(R.color.train_btn_return); + } + case 2: + if (item_conents.contains("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�")) { + MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type); + return getResources().getColor(R.color.colorAccent); + }else{ + ExamPlatformData.getInstance().getTTS().speak("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝ュ悎鏍�"); + return getResources().getColor(R.color.train_btn_return); + } + case 3: + if (item_conents.contains("渚ф柟鍋滆溅")) { + MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type); + return getResources().getColor(R.color.colorAccent); + }else{ + ExamPlatformData.getInstance().getTTS().speak("渚ф柟鍋滆溅鍚堟牸"); + return getResources().getColor(R.color.train_btn_return); + } + case 4: + if (item_conents.contains("鏇茬嚎琛岄┒")) { + MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type); + return getResources().getColor(R.color.colorAccent); + }else{ + ExamPlatformData.getInstance().getTTS().speak("鏇茬嚎琛岄┒鍚堟牸"); + return getResources().getColor(R.color.train_btn_return); + } + case 5: + if (item_conents.contains("鐩磋杞集")) { + MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type); + return getResources().getColor(R.color.colorAccent); + }else{ + MyLog.i("璇ラ」鑰冭瘯鎴愬姛锛宼ype="+type); + ExamPlatformData.getInstance().getTTS().speak("鐩磋杞集鍚堟牸"); + return getResources().getColor(R.color.train_btn_return); + } + + + + } + + }else{ + return getResources().getColor(R.color.examing); + } + } + } + } + return getResources().getColor(R.color.examing); } @Nullable @Override - public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.layout_train_fragment,container,false); + 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 = 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) { if (failedProj_selects != null && failedProj_selects.size()>0){ item_id = 0; + currTotalScore = 100; mArrayList.clear(); item_conents.clear(); for (FailedProj_select f : @@ -125,22 +259,28 @@ Log.i(TAG, "onChanged: " + f.toString()); mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason())); item_conents.add(f.getItem_content()); + Collections.reverse(mArrayList); mScoreAdapter.addDatas(mArrayList); + MyLog.i("item_score="+item_id); } + //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊 + sendJKMessage0203(failedProj_selects); + MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore); currTotalScore -=item_id; + MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore); if (currTotalScore < Constant.PASSING_SCORE){ - MyLog.i(TAG,"浣庝簬80锛屼笉鍚堟牸"); + MyLog.i("浣庝簬80锛屼笉鍚堟牸"+currTotalScore); + ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�"); stopExam(); } - - MyLog.i(TAG,"鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊"); + MyLog.i("鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊"); mHandler.obtainMessage(ADD_DATA).sendToTarget(); - }else{ MyLog.i(TAG,"澶辫触椤圭洰鏁版嵁琛ㄨ娓呯┖鏇存柊UI"); item_id = 0; mArrayList.clear(); item_conents.clear(); + Collections.reverse(mArrayList); mScoreAdapter.addDatas(mArrayList); mHandler.obtainMessage(ADD_DATA).sendToTarget(); } @@ -153,26 +293,43 @@ @Override public void onChanged(List<ExamStatus> examStatus) { - for (ExamStatus e : - examStatus) { - Log.i(TAG, "onChanged: e="+e.toString()); + + + Log.i(TAG, "ExamStatus onChanged: "); + if (examStatus!=null && examStatus.size()>0){ + MyLog.i(TAG,"鑰冭瘯鐘舵�佹洿鏂�"); + examStatusList.clear(); + examStatusList.addAll(examStatus); + mHandler.obtainMessage(ADD_DATA).sendToTarget(); + if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){ + btn_start_exam.setEnabled(false); + tv_stop.setEnabled(true); + }else{ + btn_start_exam.setEnabled(true); + tv_stop.setEnabled(false); + } + exam_type = examStatus.get(0).getStartExam(); } - Log.i(TAG, "onChanged: "); - examStatusList.clear(); - examStatusList.addAll(examStatus); - mHandler.obtainMessage(ADD_DATA).sendToTarget(); - if (examStatus.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){ - btn_train.setEnabled(false); - tv_stop.setEnabled(true); - }else{ - btn_train.setEnabled(true); - tv_stop.setEnabled(false); - } + } }); + 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) { + MyLog.i(TAG, "onChanged: " + student.toString()); + if (!TextUtils.isEmpty(student.getName())){ - + tv_name.setText(getString(R.string.name)+student.getName()); + tv_id.setText(getString(R.string.user_id)+student.getID()); + ExamPlatformData.getInstance().setId(student.getID()); + } + } + } + }); AppStatusViewModel appStatusViewModel = ViewModelProviders.of(this).get(AppStatusViewModel.class); appStatusViewModel.getAppStatus().observe(this, new Observer<AppStatus>() { @@ -181,6 +338,7 @@ if (appStatus != null){ Log.i(TAG, "onChanged: "+appStatus.toString()); iv_rtk_status.getDrawable().setLevel(appStatus.getRtk_connect_status()); + tv_work_platform.setText(getString(R.string.platform_status,ExamPlatformData.getInstance().getExamplatformStatusStr(appStatus.getWork_platform()))); tv_sat_num.setText(String.valueOf(appStatus.getDefault_observe1()).length()==1?"0"+appStatus.getDefault_observe1():String.valueOf(appStatus.getDefault_observe1())); } } @@ -188,43 +346,65 @@ return view; } - private void initView(View view) { + private List<Integer> sns =new ArrayList<>(); + private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) { + JKMessage0203 jkMessage0203 = new JKMessage0203(); + jkMessage0203.phone = ExamPlatformData.getInstance().getPhone(); + jkMessage0203.ID = ExamPlatformData.getInstance().getID(); + jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id(); - av_curve = view.findViewById(R.id.av3); - av_park = view.findViewById(R.id.av2); - av_podao = view.findViewById(R.id.av1); - av_zhijiao = view.findViewById(R.id.av4); - houseView = view.findViewById(R.id.hv); + for (int i = 0; i < failedProj_selects.size(); i++) { + if (hasSnEqulas(failedProj_selects.get(i).getSn())){ + MyLog.i("sn鐩稿悓"+failedProj_selects.get(i).getSn()); + }else{ + ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+( + failedProj_selects.get(i).getScore_deducting()==100?"涓嶅悎鏍�":"鎵�"+ + failedProj_selects.get(i).getScore_deducting()+"鍒�")); + MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn()); + sns.add(failedProj_selects.get(i).getSn()); + String utc = failedProj_selects.get(i).getUtc(); + if (!TextUtils.isEmpty(utc)&&utc.length()>12){ + utc =utc.substring(0,12); + } + jkMessage0203.timeBCD = utc ; - tv_speed = view.findViewById(R.id.tv_speed); - iv_rtk_status = view.findViewById(R.id.iv_rtk_connect); - iv_head = view.findViewById(R.id.iv_head); - tv_sat_num = view.findViewById(R.id.tv_sat_num); + jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id(); + jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting(); + jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason(); + } - tv_total_score = view.findViewById(R.id.tv_total_score); - tv_speed.setText(getResources().getString(R.string.speed,speed)); - view.findViewById(R.id.btn_return).setOnClickListener(this); - mListView = view.findViewById(R.id.lv); - tv_stop = view.findViewById(R.id.tv_stop); - tv_stop.setOnClickListener(this); - 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); - btn_train.setText("寮�濮嬭缁�"); - mScoreAdapter = new ScoreAdapter(_mActivity); - mListView.setAdapter(mScoreAdapter); - - mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item,null)); + } + + + + + + MessageProcessor.getInstance().sendMessage(jkMessage0203); + } + + private boolean hasSnEqulas(int failedProjSn){ + if (sns.size() > 0){ + for (int j = 0; j < sns.size(); j++) { + MyLog.i("宸插瓨鍦ㄧ殑sn"+sns.get(j)); + if (sns.get(j) == failedProjSn){ + MyLog.i("sn鐩稿悓锛屼笉鍙�"+sns.get(j)); + return true; + }else{ + continue; + } + } + + } + return false; } private int whatPaintColor(ExamStatus examStat) { int map_id = examStat.getMap_id(); int status = examStat.getEnter(); - Log.i(TAG, "whatPaintColor: map_id="+map_id+" status="+status); + MyLog.i(TAG, "whatPaintColor: map_id="+map_id+" status="+status); switch (status) { case 0://鑰冭瘯瀹屾垚 switch (map_id) { @@ -261,57 +441,181 @@ } case 1://杩涘叆鑰冨満椤圭洰 + MyLog.i("pink 杩涘叆鏌愪釜鑰冨満椤圭洰"); return getResources().getColor(R.color.pink); case 2://寰呰�� return getResources().getColor(R.color.examing); } return getResources().getColor(R.color.examing); } + + private void initView(View view) { + + Intent intent = new Intent(ALARM_ACTION_CODE); + PendingIntent pendingIntent = PendingIntent.getBroadcast(_mActivity.getApplicationContext(), + REQUEST_CODE, intent, + PendingIntent.FLAG_CANCEL_CURRENT); + AlarmManager alarmManager = (AlarmManager) _mActivity.getApplicationContext().getSystemService(Context.ALARM_SERVICE); + alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(),pendingIntent); + + + view.findViewById(R.id.iv_head).setOnClickListener(this); + av_curve = view.findViewById(R.id.av3); + av_park = view.findViewById(R.id.av2); + av_podao = view.findViewById(R.id.av1); + av_zhijiao = view.findViewById(R.id.av4); + houseView = view.findViewById(R.id.hv); + tv_name = view.findViewById(R.id.tv_name); + tv_id = view.findViewById(R.id.tv_ID); + tv_work_platform = view.findViewById(R.id.platform); + + iv_rtk_status = view.findViewById(R.id.iv_rtk_connect); + iv_head = view.findViewById(R.id.iv_head); + tv_sat_num = view.findViewById(R.id.tv_sat_num); + tv_speed = view.findViewById(R.id.tv_speed); + tv_total_score = view.findViewById(R.id.tv_total_score); + tv_speed.setText(getResources().getString(R.string.speed,speed)); + + view.findViewById(R.id.btn_return).setOnClickListener(this); + mListView = view.findViewById(R.id.lv); + mListView.setFocusable(false); + mListView.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent ev) { + switch (ev.getAction()) { + case MotionEvent.ACTION_DOWN: + case MotionEvent.ACTION_MOVE: + mListView.getParent().requestDisallowInterceptTouchEvent(true); + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + mListView.getParent().requestDisallowInterceptTouchEvent(false); + break; + } + return false; + } + }); + + view.findViewById(R.id.view_map).setOnClickListener(this); + mScoreAdapter = new ScoreAdapter(_mActivity); + mListView.setAdapter(mScoreAdapter); + btn_start_exam = view.findViewById(R.id.btn_start); + btn_start_exam.setOnClickListener(this); + tv_stop = view.findViewById(R.id.tv_stop); + tv_stop.setOnClickListener(this); + mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item, null)); + + } + + + MyDialogFragment myDialogFragment; + SimulateNightBean simulateNightBean = null; @Override public void onClick(View v) { - switch (v.getId()){ - case R.id.view_map: - TcpFragment passwordFragment = findFragment(TcpFragment.class); - if (passwordFragment == null) { - passwordFragment = (TcpFragment) TcpFragment.newInstance(); - start(passwordFragment); - } else { - start(passwordFragment); - } - break; + switch (v.getId()) { case R.id.btn_start: - examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM); - try { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("exam", 1); - String examJson = jsonObject.toString(); - Log.i(TAG, "onClick: " + examJson); - AYSdk.getInstance().sendCmd(Constant.EXAM_STATUS, examJson); - } catch (JSONException e) { - e.printStackTrace(); + OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class); + WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork); + item_id = 0; + currTotalScore = 100; + //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯 + final JKMessage0202 jkMessage0202 = new JKMessage0202(); + jkMessage0202.phone = ExamPlatformData.getInstance().getPhone(); + jkMessage0202.timeBCD = new Date(); + jkMessage0202.ID = ExamPlatformData.getInstance().getID(); + + jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id(); + failedProjViewModel.deleteAll(); + + if (myDialogFragment == null){ + myDialogFragment = new MyDialogFragment(); } + myDialogFragment.show(getFragmentManager(),"dialog"); + myDialogFragment.setCallback(new MyDialogFragment.Callback() { + @Override + public void changKao() { + exam_type = 2; + examStatusViewModel.updateStartExam(exam_type); + sendExamJson(1,exam_type); + ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯"); + jkMessage0202.curr_exam = 0; + + MessageProcessor.getInstance().sendMessage(jkMessage0202); + } + + @Override + public void luKao() { + exam_type = 3; + examStatusViewModel.updateStartExam(exam_type); + sendExamJson(1,exam_type); + if (simulateNightBean == null){ + simulateNightBean = new SimulateNightBean(); + } + simulateNightBean.setExam(0); + + final List<SimulateNightBean.QuestionBean> list = ExamPlatformData.getInstance().getSimulate_light_tips(); + simulateNightBean.setQuestion(list.subList(list.size()-2,list.size()-1)); + AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean)); + jkMessage0202.curr_exam = 1; + + MessageProcessor.getInstance().sendMessage(jkMessage0202); + + tempQs.add(list.get(0)); + int [] a = Utils.getRandomInts(4,12); + for (int i = 0; i < a.length; i++) { + tempQs.add(list.get(a[i])); + } + + simulateNightBean.setQuestion(tempQs); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean)); + tempQs.clear(); + } + },10*1000); + + } + }); + + iv_head.getDrawable().setLevel(1); + //娓呯┖sns + sns.clear(); + + + break; case R.id.tv_stop: Toast.makeText(_mActivity, "缁撴潫鑰冭瘯", Toast.LENGTH_SHORT).show(); stopExam(); + + break; + case R.id.view_map: + MapFragment mapFragment = findFragment(MapFragment.class); + MyLog.i(TAG,"鏌ョ湅鍦板浘"); + if (mapFragment == null) { + mapFragment = (MapFragment) MapFragment.newInstance(); + } + start(mapFragment); break; case R.id.btn_return: _mActivity.onBackPressed(); break; + case R.id.iv_head: + MyLog.i(TAG,"绛惧埌锛岃幏鍙栬韩浠借瘉鐗╃悊鍗″彿"); + AYSdk.getInstance().sendCmd(Constant.READ_PHYSICAL_ID,""); + //TODO 鑾峰緱鐗╃悊鍗″彿 鍙戦�丣KMessage0201缁欏钩鍙帮紝鑾峰彇濮撳悕銆佽韩浠借瘉銆乭ead_url + + break; } } - private void stopExam() { - MyLog.i(TAG,"缁撴潫鑰冭瘯"); - item_id = 0; - currTotalScore = 100; - tv_total_score.setText(String.valueOf(currTotalScore)); - iv_head.getDrawable().setLevel(0); - OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class); - WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork); + private void sendExamJson(int i,int type) { try { + JSONObject jsonObject = new JSONObject(); - jsonObject.put("exam", 0); + jsonObject.put("exam", i); + jsonObject.put("type", type); String examJson = jsonObject.toString(); Log.i(TAG, "onClick: " + examJson); AYSdk.getInstance().sendCmd(Constant.EXAM_STATUS, examJson); @@ -320,11 +624,38 @@ } } + private void stopExam() { + MyLog.i(TAG,"缁撴潫鑰冭瘯"); + + + tv_total_score.setText(String.valueOf(currTotalScore)); + iv_head.getDrawable().setLevel(0); + + ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯"); + examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM); + sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0 + //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯 + JKMessage0204 jkMessage0204 = new JKMessage0204(); + jkMessage0204.phone = ExamPlatformData.getInstance().getPhone(); + jkMessage0204.timeBCD = new Date(); + jkMessage0204.score = 10; + jkMessage0204.stop = JKMessage0204.SUCC_STOP; + jkMessage0204.ID = ExamPlatformData.getInstance().getID(); + jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id(); + MessageProcessor.getInstance().sendMessage(jkMessage0204); + } + private ICEventListener icEventListener = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { - speed = (double)obj; - mHandler.obtainMessage(SPEED_DATA).sendToTarget(); + if (msgCode == Constant.IC_ID){ + icson = (String)obj; + mHandler.obtainMessage(msgCode).sendToTarget(); + }else{ + speed = (double)obj; + mHandler.obtainMessage(SPEED_DATA).sendToTarget(); + } + } }; @Override -- Gitblit v1.8.0