app/src/main/java/safeluck/drive/evaluation/customview/MyArgEditText.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/customview/QRCodeDialog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/customview/SelectDialog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/drawable/bg_rgb_dlg.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/drawable/bg_select_dlg.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/drawable/ic_check.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/layout_select_dlg.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/java/safeluck/drive/evaluation/customview/MyArgEditText.kt
@@ -98,6 +98,8 @@ invalidate() } fun getInputStr() =et_num?.text.toString() } app/src/main/java/safeluck/drive/evaluation/customview/QRCodeDialog.java
@@ -4,6 +4,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -60,6 +61,7 @@ @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { hideBottomUIMenu(); View view = inflater.inflate(R.layout.layout_dialog_qrcode,container,false); initView(view); setCancelable(canCancel); @@ -96,5 +98,20 @@ } /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getDialog().getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions. View decorView = getDialog().getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } } } app/src/main/java/safeluck/drive/evaluation/customview/SelectDialog.java
New file @@ -0,0 +1,165 @@ package safeluck.drive.evaluation.customview; import android.content.DialogInterface; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.DialogFragment; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import me.yokeyword.fragmentation.ISupportFragment; import safeluck.drive.evaluation.R; /** * @ProjectName: DriveJudge * @Package: safeluck.drive.evaluation.customview * @ClassName: SelectDialog * @Description: java类作用描述 * @Author: 李占伟 * @CreateDate: 2020-04-23 15:03 * @UpdateUser: 更新者 * @UpdateDate: 2020-04-23 15:03 * @UpdateRemark: 更新说明 * @Version: 1.0 */ public class SelectDialog extends DialogFragment implements View.OnClickListener { private static final String TAG = "SelectDialog"; private Button button; private RadioGroup rgb; public static final int FIRST = 0; public static final int SECOND = 1; public static final int SELECT_NONE = -1; private int result = SELECT_NONE; private RadioButton rb_1,rb_2; private ArrayList<String> stringArrayList; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (getDialog() != null) { Window window = getDialog().getWindow(); if (window != null) { window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); getDialog().setOnShowListener(dialog -> { window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); hideBottomUIMenu(); }); } } View view = inflater.inflate(R.layout.layout_select_dlg,container,false); Bundle bundle = getArguments(); if (bundle != null){ stringArrayList = bundle.getStringArrayList("content"); } initView(view); return view; } private void initView(View view) { button = view.findViewById(R.id.btn_sure_); rb_1 = view.findViewById(R.id.rb1); rb_2 = view.findViewById(R.id.rb2); if (stringArrayList != null){ rb_1.setText(stringArrayList.get(0)); rb_2.setText(stringArrayList.get(1)); } rgb = view.findViewById(R.id.radiogroub); rgb.setOnCheckedChangeListener((RadioGroup group, int checkedId)-> { switch (checkedId){ case R.id.rb1: Log.i(TAG,"第一个被选中"); result = FIRST; break; case R.id.rb2: Log.i(TAG,"第二个被选中"); result = SECOND; break; default:break; } }); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_sure_: if (onSelectedListener != null){ onSelectedListener.makeYourChoice(result); } dismiss(); break; } } public interface OnSelectedListener{ void makeYourChoice(int res); } private OnSelectedListener onSelectedListener; public void setSelectedListener(OnSelectedListener onSelectedListener){ this.onSelectedListener = onSelectedListener; } public static SelectDialog newInstance(String... args){ SelectDialog sle = new SelectDialog(); if (args != null && args.length>=2){ List<String> strs = Arrays.asList(args); ArrayList<String> list = new ArrayList<>(strs); Bundle bundle = new Bundle(); bundle.putStringArrayList("content",list); sle.setArguments(bundle); } return sle; } /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getDialog().getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions. View decorView = getDialog().getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } } @Override public void dismiss() { super.dismiss(); } } app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -68,6 +68,7 @@ import safeluck.drive.evaluation.customview.LoadProgressDialog; import safeluck.drive.evaluation.customview.MyDialogFragment; import safeluck.drive.evaluation.customview.QRCodeDialog; import safeluck.drive.evaluation.customview.SelectDialog; import safeluck.drive.evaluation.httpmodule.RetrofitCreator; import safeluck.drive.evaluation.im.MessageProcessor; import safeluck.drive.evaluation.platformMessage.JKMessage0201; @@ -587,22 +588,20 @@ clearArrayListResetTotalScore(); if (myDialogFragment == null){ myDialogFragment = new MyDialogFragment(); } myDialogFragment.show(getFragmentManager(),"dialog"); myDialogFragment.setCallback(new MyDialogFragment.Callback() { @Override public void changKao() { sendJK0202(2); } @Override public void luKao() { sendJK0202(3); SelectDialog selectDialog = SelectDialog.newInstance("进行场地考试","进行道路考试"); selectDialog.setSelectedListener((int res)->{ if (res != SelectDialog.SELECT_NONE){ if (res== SelectDialog.FIRST){ sendJK0202(2); }else{ sendJK0202(3); } } }); selectDialog.show(getFragmentManager(),"selectdialog"); }else{ stopExam(); app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java
@@ -56,6 +56,8 @@ import safeluck.drive.evaluation.bean.MCUInfo; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.cEventCenter.ICEventListener; import safeluck.drive.evaluation.customview.MyArgEditText; import safeluck.drive.evaluation.customview.SelectDialog; import safeluck.drive.evaluation.util.CThreadPoolExecutor; import safeluck.drive.evaluation.util.FileUtil; import safeluck.drive.evaluation.util.SPUtils; @@ -79,7 +81,10 @@ private Button btn_config_signal; private Button btn_mcu_upgrade,btn_map_select; private Gson gson = new Gson(); // private EditText et_ip_rtk,et_port_rtk,et_city_id,et_city_province,et_phone; private MyArgEditText platform_ip,platform_port,rtkPlatform_ip,rtkPlatform_port,city,province; private RTKConfigViewModel rtkConfigViewModel; private RTKConfig mRtkConfig; private boolean needSendRtk = false; @@ -87,7 +92,7 @@ public static SetArgumentsFragment newInstance() { return new SetArgumentsFragment(); } // @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -100,11 +105,11 @@ if (rtkConfig != null){ Log.i(TAG, "RTKConfig Changed: "+rtkConfig.toString()); mRtkConfig = rtkConfig; // et_ip_rtk.setText(rtkConfig.getIp()); // et_city_id.setText(String.valueOf(rtkConfig.getCity())); // et_city_province.setText(String.valueOf(rtkConfig.getProvince())); // et_port_rtk.setText(String.valueOf(rtkConfig.getPort())); // et_phone.setText(rtkConfig.getPhone()); rtkPlatform_ip.updateStr(rtkConfig.getIp()); rtkPlatform_port.updateStr(String.valueOf(rtkConfig.getPort())); city.updateStr(String.valueOf(rtkConfig.getCity())); province.updateStr(String.valueOf(rtkConfig.getProvince())); ExamPlatformData.getInstance().setRTKPort(rtkConfig.getPort()); ExamPlatformData.getInstance().setRTKIP(rtkConfig.getIp()); @@ -130,7 +135,6 @@ e.printStackTrace(); } jsonObject.remove("_id"); rtkjson = null; rtkjson = jsonObject.toString(); MyLog.i( "need resend RTK配置信息:" + rtkjson+"标志位:"+needSendRtk); AYSdk.getInstance().sendCmd(Constant.PUSH_RTK_PLATFORM_INFO, rtkjson); @@ -149,10 +153,12 @@ ((MainActivity)_mActivity).btn_return.setVisibility(View.VISIBLE); } view.findViewById(R.id.btn_save_platform).setOnClickListener(this); // et_ip = view.findViewById(R.id.et_platform_ip); // et_port = view.findViewById(R.id.et_platform_port); // et_ip.setText(ExamPlatformData.getInstance().getPlatformIP()); // et_port.setText(ExamPlatformData.getInstance().getPlatformPort()+""); platform_ip = view.findViewById(R.id.platform_ip); platform_port = view.findViewById(R.id.platform_port); platform_ip.updateStr(ExamPlatformData.getInstance().getPlatformIP()); platform_port.updateStr(ExamPlatformData.getInstance().getPlatformPort()+""); btn_mcu_upgrade = view.findViewById(R.id.btn_mcu_upgrade); btn_map_select = view.findViewById(R.id.btn_map_select); view.findViewById(R.id.btn_car_select).setOnClickListener(this); @@ -162,12 +168,10 @@ btn_config_signal.setOnClickListener(this); // et_ip_rtk = view.findViewById(R.id.rtk_addr_ip); // et_city_id = view.findViewById(R.id.et_city_id); // et_city_province = view.findViewById(R.id.et_provice_id); // et_phone = view.findViewById(R.id.et_phone); // et_port_rtk = view.findViewById(R.id.rtk_addr_port); rtkPlatform_ip = view.findViewById(R.id.rtk_addr_ip); rtkPlatform_port = view.findViewById(R.id.rtk_addr_port); city = view.findViewById(R.id.city_id); province = view.findViewById(R.id.province_id); } @Override public void onClick(View v) { @@ -199,36 +203,41 @@ break; case R.id.btn_save_platform: Toast.makeText(_mActivity, "保存成功", Toast.LENGTH_SHORT).show(); // if(ExamPlatformData.getInstance().compareIPandPort(et_ip.getText().toString().trim(),Integer.parseInt(et_port.getText().toString().trim()))){ // SPUtils.put(getActivity(), SPUtils.DES_HEX_PWD,""); // ((MainActivity)getActivity()).examPlatformModel.getDataChange().postValue(1); // ExamPlatformData.getInstance().insertPlatformIp(et_ip.getText().toString().trim()); // ExamPlatformData.getInstance().insertPlatformPort(Integer.parseInt(et_port.getText().toString().trim())); // } // if (mRtkConfig != null){ // String rtkip = et_ip_rtk.getText().toString().trim(); // int rtkport = Integer.parseInt(et_port_rtk.getText().toString().trim()); // // mRtkConfig.setPort(rtkport); // mRtkConfig.setCity(Integer.parseInt(et_city_id.getText().toString().trim())); // mRtkConfig.setProvince(Integer.parseInt(et_city_province.getText().toString().trim())); // mRtkConfig.setIp(rtkip); // mRtkConfig.setPhone(et_phone.getText().toString().trim()); // // if (ExamPlatformData.getInstance().compareRTKIPandPort(rtkip,rtkport)){ // mRtkConfig.setRegistered(0); // MyLog.i("rtk ip和地址有变化"); // needSendRtk = true; // sendRtkConfigInfo(mRtkConfig); // // } // rtkConfigViewModel.insertRTKConfig(mRtkConfig); // // } String tempPlatformIp = platform_ip.getInputStr().trim(); String tempRTKPlatformIp = rtkPlatform_ip.getInputStr().trim(); int city_id_ = Integer.parseInt(city.getInputStr().trim()); int province_id_ = Integer.parseInt(province.getInputStr().trim()); int tempPlatformPort = Integer.parseInt(platform_port.getInputStr().trim()); int tempRTKPlatformPort = Integer.parseInt(rtkPlatform_port.getInputStr().trim()); if(ExamPlatformData.getInstance().compareIPandPort(tempPlatformIp,tempPlatformPort)){ SPUtils.put(getActivity(), SPUtils.DES_HEX_PWD,""); ((MainActivity)getActivity()).examPlatformModel.getDataChange().postValue(1); ExamPlatformData.getInstance().insertPlatformIp(tempPlatformIp); ExamPlatformData.getInstance().insertPlatformPort(tempPlatformPort); } if (mRtkConfig != null){ mRtkConfig.setPort(tempRTKPlatformPort); mRtkConfig.setCity(city_id_); mRtkConfig.setProvince(province_id_); mRtkConfig.setIp(tempRTKPlatformIp); if (ExamPlatformData.getInstance().compareRTKIPandPort(tempRTKPlatformIp,tempRTKPlatformPort)){ mRtkConfig.setRegistered(0); MyLog.i("rtk ip和地址有变化"); needSendRtk = true; sendRtkConfigInfo(mRtkConfig); } rtkConfigViewModel.insertRTKConfig(mRtkConfig); } _mActivity.onBackPressed(); break; case R.id.btn_car_select://车辆模型和地图公用一套代码 区别在于REQUEST_CODE @@ -236,13 +245,23 @@ openFileMgr(); break; case R.id.btn_map_select: request_code = REQUEST_CODE_MAP; openFileMgr(); SelectDialog selectDialog = SelectDialog.newInstance(); selectDialog.show(getFragmentManager(),"selectdialog"); selectDialog.setSelectedListener((int res) -> { if (res != SelectDialog.SELECT_NONE){ if (res == SelectDialog.FIRST){ request_code = REQUEST_CODE_MAP; Toast.makeText(_mActivity, "场考地图选择!", Toast.LENGTH_SHORT).show(); }else{ request_code = REQUEST_CODE_ROADMAP; Toast.makeText(_mActivity, "路考地图选择!", Toast.LENGTH_SHORT).show(); } openFileMgr(); }else{ Toast.makeText(_mActivity, "没有任何选择!", Toast.LENGTH_SHORT).show(); } }); break; // case R.id.btn_roadmap_select: // request_code = REQUEST_CODE_ROADMAP; // openFileMgr(); // break; default: break; } app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -69,6 +69,7 @@ import safeluck.drive.evaluation.customview.HouseView; import safeluck.drive.evaluation.customview.LoadProgressDialog; import safeluck.drive.evaluation.customview.MyDialogFragment; import safeluck.drive.evaluation.customview.SelectDialog; import safeluck.drive.evaluation.im.MessageProcessor; import safeluck.drive.evaluation.platformMessage.JKMessage0201; import safeluck.drive.evaluation.platformMessage.JKMessage0202; @@ -575,30 +576,18 @@ case R.id.btn_start: // //TODO 发送JKMessage0202 给平台,开始考试 if (btn_start_exam.getText().toString().equalsIgnoreCase("开始训练")){ final JKMessage0202 jkMessage0202 = new JKMessage0202(); Date date = new Date(); wokViewModel.updateBeginTime(date.getTime()); jkMessage0202.timeBCD = date; ExamPlatformData.getInstance().setExam_id(Utils.parseUnsignedInt(String.valueOf(date.getTime()/1000),10)); if (myDialogFragment == null){ myDialogFragment = new MyDialogFragment(); } myDialogFragment.show(getFragmentManager(),"dialog"); myDialogFragment.setCallback(new MyDialogFragment.Callback() { @Override public void changKao() { sendJK0202(2); } @Override public void luKao() { sendJK0202(3); SelectDialog selectDialog = SelectDialog.newInstance("进行场地训练","进行道路训练"); selectDialog.setSelectedListener((int res)->{ if (res != SelectDialog.SELECT_NONE){ if (res== SelectDialog.FIRST){ sendJK0202(2); }else{ sendJK0202(3); } } }); selectDialog.show(getFragmentManager(),"selectdialog"); }else{ stopExam(); } app/src/main/res/drawable/bg_rgb_dlg.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:color="#11468A" android:width="1dp"/> </shape> app/src/main/res/drawable/bg_select_dlg.xml
New file @@ -0,0 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle"> <stroke android:color="#11468A" android:width="1dp"/> <corners android:radius="6dp"/> </shape> </item> <item android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp"> <shape android:shape="rectangle"> <solid android:color="#ff2b3141" /> <corners android:radius="6dp"/> </shape> </item> </layer-list> app/src/main/res/drawable/ic_check.xml
New file @@ -0,0 +1,9 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="16dp" android:height="16dp" android:viewportWidth="1024" android:viewportHeight="1024"> <path android:pathData="M915.75,0h-807.91C48.27,0 0,48.48 0,107.83v807.91c0,59.56 48.48,107.83 107.83,107.83h807.91c59.56,0 107.83,-48.48 107.83,-107.83v-807.91c0,-59.34 -48.48,-107.83 -107.83,-107.83zM972.38,915.75c0,31.14 -25.5,56.63 -56.63,56.63h-807.91c-31.14,0 -56.63,-25.5 -56.63,-56.63v-807.91c0,-31.14 25.5,-56.63 56.63,-56.63h807.91c31.14,0 56.63,25.5 56.63,56.63v807.91zM667.7,371.78L440.53,597.47 355.89,512.4a25.48,25.48 0,0 0,-36.15 0,25.48 25.48,0 0,0 0,36.16l102.61,103.23a25.49,25.49 0,0 0,36.15 0l245.34,-243.87a25.48,25.48 0,0 0,0 -36.15,25.48 25.48,0 0,0 -36.15,0z" android:fillColor="#a5a7a4"/> </vector> app/src/main/res/layout/layout_select_dlg.xml
New file @@ -0,0 +1,50 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="210dp" android:layout_height="210dp" android:gravity="center" android:background="@drawable/bg_select_dlg" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="@dimen/network_train_textsize20px" android:textColor="@android:color/white" android:layout_margin="@dimen/ui_margin_10dp" android:text="请选择一个项目:"/> <RadioGroup android:background="@drawable/bg_rgb_dlg" android:layout_width="match_parent" android:id="@+id/radiogroub" android:layout_height="wrap_content"> <RadioButton android:layout_width="match_parent" android:layout_height="@dimen/ui_margin_50dp" android:id="@+id/rb1" android:text="场考地图" android:textSize="@dimen/network_train_textsize24px" android:layout_marginLeft="@dimen/ui_margin_10dp" android:textColor="@android:color/white"/> <RadioButton android:layout_width="match_parent" android:layout_height="@dimen/ui_margin_50dp" android:id="@+id/rb2" android:textSize="@dimen/network_train_textsize24px" android:text="路考地图" android:layout_marginLeft="@dimen/ui_margin_10dp" android:textColor="@android:color/white"/> </RadioGroup> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/ui_margin_10dp" android:text="确定" android:textSize="@dimen/network_train_textsize22px" android:background="@null" android:textColor="@android:color/white" android:id="@+id/btn_sure_"/> </LinearLayout>