app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java
@@ -20,8 +20,7 @@ * All Rights Saved! Chongqing AnYun Tech co. LTD */ public class SimpleFragmentAdapter extends FragmentPagerAdapter { private String[] mTitles = new String[]{"基础数据","考试系统设置"}; // private String[] mTitles = new String[]{"基础数据","GNSS信息","考试系统设置"}; private String[] mTitles = new String[]{"基础数据","考试系统设置","RTK信息"}; public SimpleFragmentAdapter(FragmentManager fm) { super(fm); } @@ -34,10 +33,9 @@ //基本数据 supportFragment = BaseDatasFragment.newInstance(); break; // case 1: // supportFragment = RTKConfigFragment.newInstance(); // //ftp // break; case 2: supportFragment = GpsInfoFragment.newInstance(); break; case 1: supportFragment = SysExamSettingFragment.newInstance(); break; app/src/main/java/safeluck/drive/evaluation/app.java
@@ -316,29 +316,6 @@ int emp_id = jsonObject.get("wrong_id").getAsInt(); String utc = jsonObject.get("utc").getAsString(); int sn = jsonObject.get("sn").getAsInt(); // if (emp_id>1000){ // CriteriaForIII ttsStr=WorkRoomDataBase.getWorkRoomDataBase(getAppContext()).getCriteriaIIIDao().queryItemForCriteriaIIINoLive(emp_id-1000); // ExamPlatformData.getInstance().getTTS().speak(ttsStr.getDeducting_reason() + (ttsStr.getScore_deducting() == 100? "不合格 " : "扣" + // ttsStr.getScore_deducting() + "分 ")); // jkMessage0203.fail_item_id =ttsStr.getItem_id(); // jkMessage0203.fail_score = ttsStr.getScore_deducting(); // jkMessage0203.fail_reason = ttsStr.getDeducting_reason(); // }else{ // CriteriaForI ttsStr = WorkRoomDataBase.getWorkRoomDataBase(getAppContext()).getCriteriaIDao().queryItemForCriteriaINoLive(emp_id); // ExamPlatformData.getInstance().getTTS().speak(ttsStr.getDeducting_reason() + (ttsStr.getScore_deducting() == 100? "不合格 " : "扣" + // ttsStr.getScore_deducting() + "分 ")); // jkMessage0203.fail_item_id =ttsStr.getItem_id(); // jkMessage0203.fail_score = ttsStr.getScore_deducting(); // jkMessage0203.fail_reason = ttsStr.getDeducting_reason(); // } Criteria ttsStr=WorkRoomDataBase.getWorkRoomDataBase(getAppContext()).getCriteriaDao().queryItemForCriteriaNoLive(emp_id); @@ -347,18 +324,6 @@ jkMessage0203.fail_item_id =ttsStr.getItem_id(); jkMessage0203.fail_score = ttsStr.getScore_deducting(); jkMessage0203.fail_reason = ttsStr.getDeducting_reason(); if (!TextUtils.isEmpty(utc) && utc.length() > 14) { @@ -370,30 +335,6 @@ MyLog.i(String.format("收到远程服务给的评判消息 timeBCD=%s",Utils.formatTimeYYMMDDHHmmSS(jkMessage0203.timeBCD.getTime()))); MessageProcessor.getInstance().sendMessage(jkMessage0203); // if (emp_id<1000) { //场地评判消息 // if (emp_id > 31 || emp_id < 0) { // MyLog.i("emp_id超出范围不能插入数据库(I类考场)"); // // }else{ // // FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID, utc, sn); // MyLog.i("插入fail_projects表=$failedProj"); // WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getFailProjDao().insert(failedProj); // } // // } // if (emp_id>1000) { //道路 评判消息 // // if (emp_id >1066 || emp_id < 1000) { // MyLog.i("emp_id超出范围不能插入数据库(路考类考场)"); // }else{ // // LuKaoFailedProj failedProj = new LuKaoFailedProj(Constant.SUBJECT_III, (emp_id-1000), Constant.TEST_STU_ID, utc, sn); // MyLog.i("插入路考fail_projects表=$failedProj"); // WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getLuKaoFailProjDao().insert(failedProj); // } // // } app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -629,12 +629,5 @@ return bindServiceStats; } private RTKInfoBean rtkInfoBean; public void setRTKinfoBean(RTKInfoBean rtkInfoBean) { this.rtkInfoBean =rtkInfoBean; } public RTKInfoBean getRtkInfoBean() { return rtkInfoBean; } } app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
@@ -155,11 +155,7 @@ datas.add(new BaseDataUIBean(str2SpannableString("RTK平台状态"),R.mipmap.conn_status,str2FouregourdSpannableString(appStatus.getRtk_connect_status()==1?(appStatus.getRtk_login_code()==0?"已登录":"未登录"):"未连接"),"",1,null)); datas.add(new BaseDataUIBean(str2SpannableString("考试平台状态"),R.mipmap.conn_status,str2FouregourdSpannableString(ExamPlatformData.getInstance().getExamplatformStatusStr(ExamPlatformData.getInstance().getExamplatformStatus())),"",1,null)); } RTKInfoBean rtkinfo = ExamPlatformData.getInstance().getRtkInfoBean(); if (rtkinfo != null){ datas.add(new BaseDataUIBean(str2SpannableString("坐标"),R.mipmap.conn_status,str2FouregourdSpannableString(rtkinfo.getCoord_y()+","+rtkinfo.getCoord_x()),"",1,null)); datas.add(new BaseDataUIBean(str2SpannableString("经纬度"),R.mipmap.conn_status,str2FouregourdSpannableString(rtkinfo.getLongitude()+","+rtkinfo.getLatitude()),"",1,null)); } HashMap<BaseDataUIBean.TYPE_, MapInfoHead> hashMaps = ExamPlatformData.getInstance().getMapInfoHeads(); if (hashMaps != null){ Iterator<Map .Entry<BaseDataUIBean.TYPE_,MapInfoHead>> iterator = hashMaps.entrySet().iterator(); @@ -183,20 +179,7 @@ } }; private String lastRtkinfoStr = ""; private ICEventListener icEventListener1 = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { if (msgCode == Constant.RTK_INFO){ String str = (String)obj; if (!str.equalsIgnoreCase(lastRtkinfoStr)){ RTKInfoBean rtkInfoBean = gson.fromJson(str, RTKInfoBean.class); ExamPlatformData.getInstance().setRTKinfoBean(rtkInfoBean); } } } }; private String left(String s,int pos){ @@ -292,21 +275,22 @@ public void onAttach(Context context) { super.onAttach(context); CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_MCUINFO_TOPIC); CEventCenter.onBindEvent(true,icEventListener1,Constant.BIND_RTK_INFO_MAP); } @Override public void onDetach() { super.onDetach(); CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_MCUINFO_TOPIC); CEventCenter.onBindEvent(false,icEventListener1,Constant.BIND_RTK_INFO_MAP); } @Override public void onDestroyView() { super.onDestroyView(); ((MainActivity)_mActivity).viewtitle.setVisibility(View.GONE); ((MainActivity)_mActivity).btn_return.setVisibility(View.GONE); Log.i(TAG,"onDestroyView"); // ((MainActivity)_mActivity).viewtitle.setVisibility(View.GONE); // ((MainActivity)_mActivity).btn_return.setVisibility(View.GONE); } @Override app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java
@@ -1,6 +1,13 @@ package safeluck.drive.evaluation.fragment; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; import android.text.style.AbsoluteSizeSpan; import android.text.style.ForegroundColorSpan; import android.util.Log; import android.util.TypedValue; import android.view.Gravity; @@ -18,18 +25,27 @@ import com.anyun.exam.lib.AYSdk; import com.anyun.basecommonlib.MyLog; import com.google.gson.Gson; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.DB.gps.GPSInfo; import safeluck.drive.evaluation.DB.gps.GpsInfoViewModel; import safeluck.drive.evaluation.DB.rtktb.RTKConfig; import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel; import safeluck.drive.evaluation.MainActivity; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.adapter.BaseDataInfoAdapter; import safeluck.drive.evaluation.adapter.GpsInfoAdapter; import safeluck.drive.evaluation.bean.BaseDataUIBean; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.bean.RTKInfoBean; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.cEventCenter.ICEventListener; import safeluck.drive.evaluation.util.Utils; /** @@ -44,9 +60,10 @@ private static final String TAG = "GpsInfoFragment"; private ListView lv; private GpsInfoAdapter gpsInfoAdapter; private List<String> gpsinfos = new ArrayList<>(); private BaseDataInfoAdapter gpsInfoAdapter; private Gson gson = new Gson(); private SpannableString spannableString; private List<BaseDataUIBean> datas = new ArrayList<>(); public static SupportFragment newInstance() { return new GpsInfoFragment(); @@ -58,42 +75,83 @@ View view = inflater.inflate(R.layout.layout_gps_info, container, false); initView(view); GpsInfoViewModel gpsInfoViewModel = ViewModelProviders.of(this).get(GpsInfoViewModel.class); gpsInfoViewModel.getGpsInfo().observe(this, new Observer<GPSInfo>() { @Override public void onChanged(GPSInfo gpsInfo) { if (gpsInfo != null) { MyLog.i(TAG, "gpsinfo=" + gpsInfo == null ? "null" : gpsInfo.toString()); gpsinfos.clear(); Field[] fields = gpsInfo.getClass().getDeclaredFields(); for (int i = 0; i < fields.length; i++) { //设置是否允许访问,不是修改原来的访问权限修饰词。 fields[i].setAccessible(true); try { if (fields[i].getName().equalsIgnoreCase("id")) { continue; } gpsinfos.add(fields[i].getName() + ":" + fields[i].get(gpsInfo)); } catch (IllegalAccessException e) { e.printStackTrace(); } } gpsInfoAdapter.addAll(gpsinfos); }else{ MyLog.i(TAG,"未检测到GPS数据库信息"); } } }); return view; } private void initView(View view) { Log.i(TAG,"currTopFragment="+getTopFragment().getClass().getSimpleName()); if (HomeFragment.class.getSimpleName().equals(getTopFragment().getClass().getSimpleName())){ ((MainActivity)_mActivity).viewtitle.setVisibility(View.GONE); ((MainActivity)_mActivity).btn_return.setVisibility(View.GONE); }else{ ((MainActivity)_mActivity).viewtitle.setVisibility(View.VISIBLE); ((MainActivity)_mActivity).btn_return.setVisibility(View.VISIBLE); Log.i(TAG,"currTopFragment visible="+getTopFragment().getClass().getSimpleName()); } lv = view.findViewById(R.id.lv_gpsinfo); gpsInfoAdapter = new GpsInfoAdapter(_mActivity); gpsInfoAdapter = new BaseDataInfoAdapter(_mActivity); lv.setAdapter(gpsInfoAdapter); lv.setDivider(new ColorDrawable(Color.parseColor("#2A344B"))); lv.setDividerHeight(1); } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); CEventCenter.onBindEvent(true,icEventListener1, Constant.BIND_RTK_INFO_MAP); } private String lastRtkinfoStr = ""; private ICEventListener icEventListener1 = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { if (msgCode == Constant.RTK_INFO){ String str = (String)obj; if (!str.equalsIgnoreCase(lastRtkinfoStr)){ RTKInfoBean rtkInfoBean = gson.fromJson(str, RTKInfoBean.class); if (rtkInfoBean != null){ Field[] fields = rtkInfoBean.getClass().getDeclaredFields(); datas.clear(); for (int i = 0; i < fields.length; i++) { fields[i].setAccessible(true); try { String fieldName= fields[i].getName(); datas.add(new BaseDataUIBean(str2SpannableString(fieldName),R.mipmap.conn_status,str2FouregourdSpannableString(fields[i].get(rtkInfoBean)+""),"",1,null)); } catch (IllegalAccessException e) { e.printStackTrace(); } } lv.post(()->{ gpsInfoAdapter.addAll(datas); }); } } } } }; @Override public void onDetach() { super.onDetach(); CEventCenter.onBindEvent(false,icEventListener1,Constant.BIND_RTK_INFO_MAP); } private SpannableString str2SpannableString(String str) { spannableString = new SpannableString(str); spannableString.setSpan(new AbsoluteSizeSpan(22),0,str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#A8AAA7")),0,str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableString; } private SpannableString str2FouregourdSpannableString(String s) { spannableString = new SpannableString(s); spannableString.setSpan(new AbsoluteSizeSpan(28),0,s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFFFFF")),0,s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableString; } } app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
@@ -111,33 +111,39 @@ break; case R.id.exit_sys: // MyDialog myDialog = MyDialog.Companion.newInstance("您将退出系统,请确认数据已保存"); // // myDialog.setOnClick(new MyDialog.MyOnClickListener() { // @Override // public void onSure() { // AYSdk.getInstance().uninit(); // _mActivity.finish(); // System.exit(0); // // // } // // @Override // public void onCancle() { // // } // }); // // myDialog.show(getFragmentManager(),"mydialog"); MyDialog myDialog = MyDialog.Companion.newInstance("您将退出系统,请确认数据已保存"); myDialog.setOnClick(new MyDialog.MyOnClickListener() { @Override public void onSure() { AYSdk.getInstance().uninit(); _mActivity.finish(); System.exit(0); } @Override public void onCancle() { } }); myDialog.show(getFragmentManager(),"mydialog"); ArcGisMapFragmenttest sysSetingFragmentq = findFragment(ArcGisMapFragmenttest.class); if (sysSetingFragmentq == null) { sysSetingFragmentq = (ArcGisMapFragmenttest) ArcGisMapFragmenttest.newInstance("ab"); } start(sysSetingFragmentq); // ArcGisMapFragmentVTPK sysSetingFragmentq = findFragment(ArcGisMapFragmentVTPK.class); // if (sysSetingFragmentq == null) { // sysSetingFragmentq = (ArcGisMapFragmentVTPK) ArcGisMapFragmentVTPK.newInstance("ab"); // } // start(sysSetingFragmentq); // ArcGisMapFragmentMMPK sysSetingFragmentq = findFragment(ArcGisMapFragmentMMPK.class); // if (sysSetingFragmentq == null) { // sysSetingFragmentq = (ArcGisMapFragmentMMPK) ArcGisMapFragmentMMPK.newInstance("ab"); // } // start(sysSetingFragmentq); break; case R.id.system_setting: app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java
@@ -1,6 +1,7 @@ package safeluck.drive.evaluation.fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -28,6 +29,9 @@ * All Rights Saved! Chongqing AnYun Tech co. LTD */ public class SysExamSettingFragment extends SupportFragment { private static final String TAG = SysExamSettingFragment.class.getSimpleName(); private RecyclerView mRecy; private SysSettingPagerAdapter mAdapter; ArrayList<SysExamSettingLargeMenu> items = new ArrayList<>(); @@ -101,4 +105,17 @@ } }); } @Override public void onDetach() { super.onDetach(); } @Override public void onDestroyView() { super.onDestroyView(); Log.i(TAG,"onDestroyView"); ((MainActivity)_mActivity).viewtitle.setVisibility(View.GONE); ((MainActivity)_mActivity).btn_return.setVisibility(View.GONE); } }