lizhanwei
2020-04-29 da6d5f8a993c800bd02806609bec696a335f5bfa
完成信号配置功能
3个文件已修改
110 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/arrays.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java
@@ -23,6 +23,10 @@
    @Query("select signalName from signal_config where `index`=:gpio")
    String getSignalName(int gpio);
    @Query("select func_id from signal_config where signalName=:signame")
    int getFun_idBySignalName(String signame);
    @Query("select `index` from signal_config where signalName=:signame")
    int getSignalName2Index(String signame);
    //查询所有信号对应的物理所引
app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
@@ -1,61 +1,41 @@
package safeluck.drive.evaluation.fragment;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.InputType;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatSpinner;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.Constant;
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig;
import safeluck.drive.evaluation.R;
import safeluck.drive.evaluation.bean.SignalConfigBean;
import safeluck.drive.evaluation.bean.SignalConfigRemote;
import safeluck.drive.evaluation.util.CThreadPoolExecutor;
import safeluck.drive.evaluation.util.Utils;
/**
@@ -77,7 +57,7 @@
    private  List<SignalConfigBean> signalConfiglist =new ArrayList<>();
    List<SignalConfigRemote> list = new ArrayList<>();//要发送给remoteservice的信号配置,有可能发不出去
    List<SingalConfig> list = new ArrayList<>();//要发送给remoteservice的信号配置,有可能发不出去
    private Toolbar mToobar;
    private ListView listView;
    private LinearLayout linearLayout;
@@ -110,15 +90,8 @@
            signalConfiglist.clear();
            MyLog.i(TAG,"信号配置发生变化");
            for (int i = 0; i < singalConfigs.size(); i++) {
                SignalConfigRemote signalConfigRemote = new SignalConfigRemote();
                signalConfigRemote.setFunc_id(i);
                signalConfigRemote.setGpio_num(singalConfigs.get(i).getIndex());
                signalConfigRemote.setLevel(singalConfigs.get(i).getHighLevel());
                list.add(signalConfigRemote);
            }
            for (int i = 0; i < singalConfigs.size(); i++) {
            for (int i = 0; i < singalConfigs.size(); i++) {
                SingalConfig singalConfig = singalConfigs.get(i);
                i++;
                if (i<singalConfigs.size()){
@@ -201,13 +174,41 @@
                viewHolder.editText1.setAdapter(adapter1);
                viewHolder.editText2.setAdapter(adapter2);
                viewHolder.editText1.setTag(position*2+1);
                viewHolder.editText2.setTag((2*(1+position)));
                viewHolder.editText1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                        int index = (int) viewHolder.editText1.getTag();
                        Log.i(TAG,String.format("Spinner1 index=%d,fun_id=%d对应的信号名称=%s",index,pos
                                ,arr_strs[pos]));
//                        signalConfigViewModel.updateindex(index,pos);
                        CThreadPoolExecutor.runInBackground(new Runnable() {
                            @Override
                            public void run() {
                                int indexPre = WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getSignalName2Index(arr_strs[pos]);
                                int fun_id = WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getFun_idBySignalName(arr_strs[pos]);
                                Log.i(TAG,String.format("Spinner1 index=%d,fun_id=%d对应的信号名称=%s,index" ,index,fun_id,arr_strs[pos]));
                                String siname=WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getSignalName(index);
                                int fun_idpRe= WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getFun_idBySignalName(siname);
                                Log.i(TAG,index+" "+siname+ " arr-Strs[pos]="+arr_strs[pos]+ " "+pos);
                                if (siname!=null&&siname.equals(arr_strs[pos])){
                                }else{
                                    Log.i(TAG,String.format("把%s信号的index=%d改为%d",siname,index,indexPre));
                                    Log.i(TAG,String.format("把%s信号的index=%d改为%d",arr_strs[pos],indexPre,index));
                                    WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().updateindex(indexPre,fun_idpRe);
                                    WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().updateindex(index,fun_id);
//                                signalConfigViewModel.updateindex(indexPre,getSigal2Pos(siname));
                                }
                                Log.i(TAG,String.format("Spinner1 index=%d,fun_id=%d对应的信号名称=%s,index" +
                                                "pre=%d,indexpreName=%s",index,pos
                                        ,arr_strs[pos],indexPre,siname));
//                                signalConfigViewModel.updateindex(index,pos);
                            }
                        });
                    }
                    @Override
@@ -219,9 +220,32 @@
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                        int index = (int) viewHolder.editText2.getTag();
                        Log.i(TAG,String.format("Spinner2 index=%d,fun_id=%d对应的信号名称=%s",index,pos
                                ,arr_strs[pos]));
//                        signalConfigViewModel.updateindex(index,pos);
                        CThreadPoolExecutor.runInBackground(new Runnable() {
                            @Override
                            public void run() {
                                int indexPre = WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getSignalName2Index(arr_strs[pos]);
                                int fun_id = WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getFun_idBySignalName(arr_strs[pos]);
                                Log.i(TAG,String.format("Spinner2 index=%d,fun_id=%d对应的信号名称=%s,index" ,index,fun_id,arr_strs[pos]));
                                String siname=WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getSignalName(index);
                                int fun_idpRe= WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().getFun_idBySignalName(siname);
                                Log.i(TAG,index+" sp2 "+siname+ " arr-Strs[pos]="+arr_strs[pos]+ " "+pos);
                                if (siname!=null&&siname.equals(arr_strs[pos])){
                                }else{
                                    Log.i(TAG,String.format("sp2把%s信号的index=%d改为%d",siname,index,indexPre));
                                    Log.i(TAG,String.format("sp2把%s信号的index=%d改为%d",arr_strs[pos],indexPre,index));
                                    WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().updateindex(indexPre,fun_idpRe);
                                    WorkRoomDataBase.getWorkRoomDataBase(_mActivity).getSignalConfigDao().updateindex(index,fun_id);
//                                signalConfigViewModel.updateindex(indexPre,getSigal2Pos(siname));
                                }
                                Log.i(TAG,String.format("Spinner2 index=%d,fun_id=%d对应的信号名称=%s,index" +
                                                "pre=%d,indexpreName=%s",index,pos
                                        ,arr_strs[pos],indexPre,siname));
                            }
                        });
                    }
                    @Override
@@ -233,15 +257,17 @@
                convertView.setTag(viewHolder);
            }else {
                viewHolder = (ViewHolder) convertView.getTag();
                viewHolder.checkBox1.setTag(signalConfiglist.get(position));
                viewHolder.checkBox3.setTag(signalConfiglist.get(position));
                viewHolder.editText1.setTag(position*2+1);
                viewHolder.editText2.setTag((2*(1+position)));
            }
            viewHolder.editText1.setTag(position*2+1);
            viewHolder.editText2.setTag((2*(1+position)));
            final SignalConfigBean signalConfigItem = getItem(position);
app/src/main/res/values/arrays.xml
@@ -20,13 +20,13 @@
        <item>近光</item>
        <item>远光</item>
        <item>门锁</item>
        <item>空档</item>
        <item>空挡</item>
        <item>一档</item>
        <item>二档</item>
        <item>三档</item>
        <item>四档</item>
    <!--    <item>四档</item>
        <item>五档</item>
        <item>倒档</item>
        <item>倒档</item>-->
        <item>START位</item>
        <item>副刹</item>
        <item>绕车一</item>