From da6d5f8a993c800bd02806609bec696a335f5bfa Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期三, 29 四月 2020 13:09:35 +0800
Subject: [PATCH] 完成信号配置功能

---
 app/src/main/res/values/arrays.xml                                                 |    6 +-
 app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java     |  100 +++++++++++++++++++++++++++++++------------------
 app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java |    4 ++
 3 files changed, 70 insertions(+), 40 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java
index 5874242..228f070 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigDao.java
+++ b/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);
 
 
     //鏌ヨ鎵�鏈変俊鍙峰搴旂殑鐗╃悊鎵�寮�
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
index b25aa69..ae7b7a7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
+++ b/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锛宨ndex" ,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淇″彿鐨刬ndex=%d鏀逛负%d",siname,index,indexPre));
+                                    Log.i(TAG,String.format("鎶�%s淇″彿鐨刬ndex=%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锛宨ndex" +
+                                                "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锛宨ndex" ,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淇″彿鐨刬ndex=%d鏀逛负%d",siname,index,indexPre));
+                                    Log.i(TAG,String.format("sp2鎶�%s淇″彿鐨刬ndex=%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锛宨ndex" +
+                                                "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);
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 7c8e3d1..106064d 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/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>

--
Gitblit v1.8.0