From 225473d256d26d4d8f9469038d02d28ac1c866be Mon Sep 17 00:00:00 2001 From: endian11 <Dana_Lee1016@126.com> Date: 星期三, 03 二月 2021 14:24:57 +0800 Subject: [PATCH] 增加RTK全部信息展示页 --- app/src/main/java/safeluck/drive/evaluation/app.java | 59 ----------- app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 7 - app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java | 54 ++++++---- app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java | 10 - app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java | 28 +---- app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java | 17 +++ app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java | 122 ++++++++++++++++++------ 7 files changed, 147 insertions(+), 150 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java index c60c585..2d03376 100644 --- a/app/src/main/java/safeluck/drive/evaluation/adapter/SimpleFragmentAdapter.java +++ b/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; diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index 8a437bb..1408829 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/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("鎻掑叆璺�僨ail_projects琛�=$failedProj"); -// WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getLuKaoFailProjDao().insert(failedProj); -// } -// -// } diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java index 3edf64d..03a2385 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/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; - } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java index 92cacac..4efe7b2 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java +++ b/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 diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java index 2aa333e..27ab60c 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/GpsInfoFragment.java +++ b/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; + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java index 3fe1f78..b68d16f 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java +++ b/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: diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java index 11fab49..19d0ccf 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/SysExamSettingFragment.java +++ b/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); + } } -- Gitblit v1.8.0