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