lizhanwei
2020-04-22 dfd4367d5c4a64743b2a842602a94578b993fdde
app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java
@@ -2,8 +2,11 @@
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.Observer;
@@ -11,6 +14,10 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -43,9 +50,11 @@
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.adapter.QuickAdapter;
import safeluck.drive.evaluation.adapter.WrapContentLinearLayoutManager;
import safeluck.drive.evaluation.bean.BaseDataUIBean;
import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.bean.MCUInfo;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
@@ -67,6 +76,9 @@
    private Gson gson = new Gson();
    private RTKConfig mRtkConfig;
    private AppStatus appStatus;
    private SpannableString spannableString;
    private String versionDes;
    private String version;
    private AppStatusViewModel appStatusViewModel;
    private ICEventListener icEventListener = new ICEventListener() {
        @Override
@@ -82,13 +94,21 @@
                                fields[i].setAccessible(true);
                                try {
                                    if (fields[i].getName().equalsIgnoreCase("version")){
                                        String version = (String) fields[i].get(mcuInfo);
                                        version= (String) fields[i].get(mcuInfo);
                                        version = new String(BytesUtils.hexStringToBytes(version),"GBK");
                                        datas.add("版本号:" + version+"#"+ BuildConfig.VERSION_NAME);
                                        versionDes= "版本号:";
                                        version = version+"#"+ BuildConfig.VERSION_NAME;
                                        version = versionDes+version;
                                        spannableString = new SpannableString(version);
                                        spannableString.setSpan(new AbsoluteSizeSpan(22),0,versionDes.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                                        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#A8AAA7")),0,versionDes.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                                        spannableString.setSpan(new AbsoluteSizeSpan(28),versionDes.length()-1,version.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                                        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFFFFF")),versionDes.length()-1,version.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                                        datas.add(new BaseDataUIBean( spannableString,R.mipmap.version_pic));
                                    }else if(fields[i].getName().equalsIgnoreCase("sn")){
                                        datas.add( "设备序列号:" + fields[i].get(mcuInfo));
                                        setitemInfo("设备序列号:", String.valueOf(fields[i].get(mcuInfo)),R.mipmap.device_sn);
                                    }else if(fields[i].getName().equalsIgnoreCase("selftest")){
                                        datas.add( "自检状态:" + fields[i].get(mcuInfo));
                                        setitemInfo("自检状态:", String.valueOf(fields[i].get(mcuInfo)),R.mipmap.auto_check_status);
                                    }
                                } catch (IllegalAccessException e) {
@@ -102,16 +122,17 @@
                                public void run() {
                                    if (mRtkConfig != null){
                                        datas.add("省ID:"+mRtkConfig.getProvince());
                                        datas.add("市ID:"+mRtkConfig.getCity());
                                        datas.add("RTK平台地址:"+mRtkConfig.getIp()+":"+mRtkConfig.getPort());
                                        setitemInfo("省ID:", String.valueOf(mRtkConfig.getProvince()),R.mipmap.province_id);
                                        setitemInfo("市ID:", String.valueOf(mRtkConfig.getCity()),R.mipmap.province_id);
                                        setitemInfo("RTK平台地址:", mRtkConfig.getIp()+":"+mRtkConfig.getPort(),R.mipmap.platform_pic);
                                        setitemInfo("考试平台地址:",ExamPlatformData.getInstance().getPlatformIP()
                                                +":"+ExamPlatformData.getInstance().getPlatformPort(),R.mipmap.platform_pic);
                                        datas.add("考试平台地址:"+ExamPlatformData.getInstance().getPlatformIP()+":"+ExamPlatformData.getInstance().getPlatformPort());
                                    }
                                    if (appStatus != null){
                                        datas.add("RTK平台状态:"+(appStatus.getRtk_connect_status()==1?(appStatus.getRtk_login_code()==0?"已登录":"未登录"):"未连接"));
                                        datas.add("考试平台状态:"+ExamPlatformData.getInstance().getExamplatformStatusStr(ExamPlatformData.getInstance().getExamplatformStatus()));
                                        setitemInfo("RTK平台状态:", appStatus.getRtk_connect_status()==1?(appStatus.getRtk_login_code()==0?"已登录":"未登录"):"未连接",R.mipmap.province_id);
                                        setitemInfo("考试平台状态:", ExamPlatformData.getInstance().getExamplatformStatusStr(ExamPlatformData.getInstance().getExamplatformStatus()),R.mipmap.province_id);
                                    }
                                    gpsInfoAdapter.addAll(datas);
                                }
@@ -122,16 +143,25 @@
        }
    };
    private void setitemInfo(String des, String str, int id){
        versionDes=des;
        version= versionDes+str;
        spannableString = new SpannableString(version);
        spannableString.setSpan(new AbsoluteSizeSpan(22),0,versionDes.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#A8AAA7")),0,versionDes.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new AbsoluteSizeSpan(28),versionDes.length()-1,version.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFFFFF")),versionDes.length()-1,version.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        datas.add(new BaseDataUIBean( spannableString,id));
    }
    public static SupportFragment newInstance() {
        return new BaseDatasFragment();
    }
    private List<String> datas = new ArrayList<>();
    private RecyclerView recyclerView;
    private List<BaseDataUIBean> datas = new ArrayList<>();
    private ListView lv;
    private GpsInfoAdapter gpsInfoAdapter;
    private List<String> gpsinfos = new ArrayList<>();
    private BaseDataInfoAdapter gpsInfoAdapter;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -145,53 +175,39 @@
        View headView = inflater.inflate(R.layout.inspect_signal_head,null);
        lv.addFooterView(footView);
        lv.addHeaderView(headView);
        footView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                SetArgumentsFragment setArgumentsFragment = findFragment(SetArgumentsFragment.class);
//                if (setArgumentsFragment == null){
//                    setArgumentsFragment = SetArgumentsFragment.newInstance();
//                }
                ((BaseSettingFragment)getParentFragment()).startBrotherFragment(SetArgumentsFragment.newInstance());
            }
        });
        headView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ((BaseSettingFragment)getParentFragment()).startBrotherFragment(InspectSignalFragment.newInstance());
            }
        });
        footView.setOnClickListener(v -> ((BaseSettingFragment)getParentFragment()).startBrotherFragment(SetArgumentsFragment.newInstance()));
        headView.setOnClickListener(v -> ((BaseSettingFragment)getParentFragment()).startBrotherFragment(InspectSignalFragment.newInstance()));
        RTKConfigViewModel rtkConfigViewModel= ViewModelProviders.of(this).get(RTKConfigViewModel.class);
        rtkConfigViewModel.getRTKConfig().observe(this, new Observer<RTKConfig>() {
            @Override
            public void onChanged(RTKConfig rtkConfig) {
                if (rtkConfig != null){
                    Log.i(TAG, "RTKConfig Changed: "+rtkConfig.toString());
                    mRtkConfig = rtkConfig;
                }
        rtkConfigViewModel.getRTKConfig().observe(this, rtkConfig -> {
            if (rtkConfig != null){
                Log.i(TAG, "RTKConfig Changed: "+rtkConfig.toString());
                mRtkConfig = rtkConfig;
            }
        });
                appStatusViewModel = ViewModelProviders.of(this).get(AppStatusViewModel.class);
        appStatusViewModel.getAppStatus().observe(this, new Observer<AppStatus>() {
            @Override
            public void onChanged(AppStatus ppStatus) {
                if (ppStatus != null){
                    appStatus = ppStatus;
                }
        appStatusViewModel.getAppStatus().observe(this, ppStatus -> {
            if (ppStatus != null){
                appStatus = ppStatus;
            }
        });
        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);
        }
        lv = view.findViewById(R.id.lv_gpsinfo);
        gpsInfoAdapter = new GpsInfoAdapter(_mActivity);
        gpsInfoAdapter = new BaseDataInfoAdapter(_mActivity);
        lv.setAdapter(gpsInfoAdapter);
    }
@@ -206,4 +222,11 @@
        super.onDetach();
        CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_MCUINFO_TOPIC);
    }
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ((MainActivity)_mActivity).viewtitle.setVisibility(View.GONE);
        ((MainActivity)_mActivity).btn_return.setVisibility(View.GONE);
    }
}