From 8735b56eefde751618c819f5b331a56a62274a5c Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期四, 14 五月 2020 18:30:22 +0800
Subject: [PATCH] Merge branch 'newUI'

---
 app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java |  336 +++++++++++++++++++++++++------------------------------
 1 files changed, 153 insertions(+), 183 deletions(-)

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 ece42fa..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,55 +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.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.Utils;
+import safeluck.drive.evaluation.util.CThreadPoolExecutor;
 
 
 /**
@@ -64,27 +50,14 @@
     private static final int INDEX  = 1;
     private static final int HIGHLEVEL = 2;
     private static final int MAINBOARD = 3;
-    private  Handler handler = new Handler(){
-        @Override
-        public void handleMessage(Message msg) {
-            super.handleMessage(msg);
-            int id = msg.arg1;
-            int sig = msg.arg2;
-            switch (msg.what){
-                case INDEX:
-                    signalConfigViewModel.updateindex(sig,id);
-                    break;
-                case HIGHLEVEL:
-                    break;
-                case MAINBOARD:
-                    break;
-            }
-        }
-    };
+
+    private ArrayAdapter adapter1;
+    private ArrayAdapter adapter2;
+    private String[] arr_strs;
 
 
     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;
@@ -102,48 +75,32 @@
     }
 
     private void initView(View view) {
+        arr_strs = getResources().getStringArray(R.array.signals_name);
+
         mToobar = view.findViewById(R.id.toolbar);
-        mToobar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp,null));
         linearLayout = view.findViewById(R.id.ll_container);
-        mToobar.setNavigationOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                _mActivity.onBackPressed();
-            }
-        });
         mToobar.setTitle("淇″彿閰嶇疆");
-        listView =new ListView(_mActivity);
-        ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
-        ViewGroup.LayoutParams layoutParams1 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        listView.setLayoutParams(layoutParams);
-        linearLayout.addView(listView);
+        listView =view.findViewById(R.id.lv_signalconf);
         listView.setDivider(null);
         final MySignalsAdapter mySignalsAdapter = new MySignalsAdapter(_mActivity);
 
          signalConfigViewModel = ViewModelProviders.of(this).get(SignalConfigViewModel.class);
-        signalConfigViewModel.getSignalConfigs().observe(this, new Observer<List<SingalConfig>>() {
-            @Override
-            public void onChanged(List<SingalConfig> singalConfigs) {
-                list.clear();
-                signalConfiglist.clear();
-                MyLog.i(TAG,"淇″彿閰嶇疆鍙戠敓鍙樺寲");
+        signalConfigViewModel.getSignalConfigs().observe(this, singalConfigs -> {
+            list.clear();
+            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++) {
 
-                    SingalConfig singalConfig = singalConfigs.get(i);
-                    i++;
+            for (int i = 0; i < singalConfigs.size(); i++) {
+                SingalConfig singalConfig = singalConfigs.get(i);
+                i++;
+                if (i<singalConfigs.size()){
                     SingalConfig singalConfig1 = singalConfigs.get(i);
                     signalConfiglist .add(new SignalConfigBean(singalConfig.getSignalName(),singalConfig1.getSignalName(),singalConfig.getHighLevel()==1?true:false,singalConfig.getMainBoard()==1?true:false,
                             singalConfig1.getHighLevel()==1?true:false,singalConfig1.getMainBoard()==1?true:false,singalConfig.getIndex(),singalConfig1.getIndex()));
                     mySignalsAdapter.notifyDataSetChanged();
                 }
+
             }
         });
 
@@ -153,7 +110,6 @@
 
 
     }
-private Gson gson = new Gson();
 
 
 
@@ -201,148 +157,170 @@
 
                     }
                 });
-                viewHolder.checkBox4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-                    @Override
-                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                        SignalConfigBean signalConfigBean = (SignalConfigBean) viewHolder.checkBox4.getTag();
-                        signalConfigBean.setFour(isChecked);
-
-                    }
-                });viewHolder.checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-                    @Override
-                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                        SignalConfigBean signalConfigBean = (SignalConfigBean) viewHolder.checkBox2.getTag();
-                        signalConfigBean.setTwo(isChecked);
-                    }
-                });viewHolder.checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-                    @Override
-                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                viewHolder.checkBox1.setOnCheckedChangeListener((buttonView,isChecked)-> {
                         SignalConfigBean signalConfigBean = (SignalConfigBean) viewHolder.checkBox1.getTag();
                         signalConfigBean.setOne(isChecked);
                         signalConfigViewModel.updateHightlevel(isChecked?1:0,position*2);
 
+
+                });
+                viewHolder.checkBox1.setTag(signalConfiglist.get(position));
+                viewHolder.checkBox3.setTag(signalConfiglist.get(position));
+
+                adapter1 = new ArrayAdapter<String>(_mActivity,R.layout.spinner_item,arr_strs);
+                adapter1.setDropDownViewResource(R.layout.dropdown_stytle);
+                adapter2 = new ArrayAdapter<String>(_mActivity,R.layout.spinner_item,arr_strs);
+                adapter2.setDropDownViewResource(R.layout.dropdown_stytle);
+                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();
+                        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
+                    public void onNothingSelected(AdapterView<?> parent) {
+
                     }
                 });
+                viewHolder.editText2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+                    @Override
+                    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+                        int index = (int) viewHolder.editText2.getTag();
+                        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
+                    public void onNothingSelected(AdapterView<?> parent) {
+
+                    }
+                });
+
+
                 convertView.setTag(viewHolder);
-                viewHolder.checkBox1.setTag(signalConfiglist.get(position));
-                viewHolder.checkBox2.setTag(signalConfiglist.get(position));
-                viewHolder.checkBox3.setTag(signalConfiglist.get(position));
-                viewHolder.checkBox4.setTag(signalConfiglist.get(position));
             }else {
+
                 viewHolder = (ViewHolder) convertView.getTag();
                 viewHolder.checkBox1.setTag(signalConfiglist.get(position));
-                viewHolder.checkBox2.setTag(signalConfiglist.get(position));
                 viewHolder.checkBox3.setTag(signalConfiglist.get(position));
-                viewHolder.checkBox4.setTag(signalConfiglist.get(position));
+
+                viewHolder.editText1.setTag(position*2+1);
+                viewHolder.editText2.setTag((2*(1+position)));
             }
-            viewHolder.editText1.setTag(position*2);
-            viewHolder.editText2.setTag((position*2+1));
+
+
 
 
 
             final SignalConfigBean signalConfigItem = getItem(position);
-            viewHolder.textView1.setText(signalConfigItem.getSignal_name_first());
-            viewHolder.textView2.setText(signalConfigItem.getSignal_name_second());
+            viewHolder.textView1.setText(String.valueOf(position*2+1));
+            viewHolder.textView2.setText(String.valueOf(2*(1+position)));
 
 
-            viewHolder.editText1.setText(String.valueOf(signalConfigItem.getPort_one()));
-            viewHolder.editText2.setText(String.valueOf(signalConfigItem.getPort_two()));
+            CThreadPoolExecutor.runInBackground(new Runnable() {
+                @Override
+                public void run() {
+
+                    String signName1=WorkRoomDataBase.getWorkRoomDataBase(getActivity()).getSignalConfigDao().getSignalName(position*2+1);
+                    String s2=WorkRoomDataBase.getWorkRoomDataBase(getActivity()).getSignalConfigDao().getSignalName((position+1)*2);
+
+                    getActivity().runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Log.i(TAG,"CThreadPoolExecutor position="+position+ " s1="+signName1+" s2="+s2);
+                            viewHolder.editText1.setSelection(getSigal2Pos(signName1));
+                            viewHolder.editText2.setSelection(getSigal2Pos(s2));
+                        }
+                    });
+
+                }
+            });
+
+
 
             viewHolder.checkBox1.setChecked(signalConfigItem.isOne());
-            viewHolder.checkBox2.setChecked(signalConfigItem.isTwo());
             viewHolder.checkBox3.setChecked(signalConfigItem.isThree());
-            viewHolder.checkBox4.setChecked(signalConfigItem.isFour());
             return convertView;
         }
 
 
          class ViewHolder{
             CheckBox checkBox1;
-            CheckBox checkBox2;
             CheckBox checkBox3;
-            CheckBox checkBox4;
-            EditText editText1;
-            EditText editText2;
+            AppCompatSpinner editText1;
+             AppCompatSpinner editText2;
             TextView textView1;
             TextView textView2;
 
 
             public ViewHolder(final View convertView) {
                 checkBox1 = convertView.findViewById(R.id.signal_check_1);
-                checkBox2 = convertView.findViewById(R.id.signal_check_2);
                 checkBox3 = convertView.findViewById(R.id.signal_check_3);
-                checkBox4 = convertView.findViewById(R.id.signal_check_4);
 
                 editText1 = convertView.findViewById(R.id.et_signal1_port);
                 editText2 = convertView.findViewById(R.id.et_signal2_port);
-                editText1.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
-                editText2.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
-                editText1.setImeOptions(EditorInfo.IME_ACTION_DONE);
-                editText2.setImeOptions(EditorInfo.IME_ACTION_DONE);
-                editText1.setSingleLine();
-                editText2.setSingleLine();
 
 
-                editText1.addTextChangedListener(new TextWatcher() {
-                    @Override
-                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
-                    }
 
-                    @Override
-                    public void onTextChanged(CharSequence s, int start, int before, int count) {
-
-                    }
-
-                    @Override
-                    public void afterTextChanged(Editable s) {
-                        int pos = (int) editText1.getTag();
-                        String str = s.toString();
-                        if (!TextUtils.isEmpty(str)&& Utils.isDigital(str)){
-                            int a = Integer.parseInt(str);
-                            if (a== list.get(pos).getGpio_num()){
-
-                            }else{
-                                handler.removeMessages(INDEX);
-                                Message message = Message.obtain();
-                                message.what = INDEX;
-                                message.arg1 = pos;
-                                message.arg2 = a;
-                                handler.sendMessageDelayed(message,1500);
-                            }
-                        }
-                    }
-                });
-                editText2.addTextChangedListener(new TextWatcher() {
-                    @Override
-                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-
-                    }
-
-                    @Override
-                    public void onTextChanged(CharSequence s, int start, int before, int count) {
-                    }
-
-                    @Override
-                    public void afterTextChanged(Editable s) {
-                        int pos = (int) editText2.getTag();
-                        String str = s.toString();
-                        if (!TextUtils.isEmpty(str)&& Utils.isDigital(str)){
-                            int a = Integer.parseInt(str);
-                            if (a== list.get(pos).getGpio_num()){
-
-                            }else{
-                                handler.removeMessages(INDEX);
-                                Message message = Message.obtain();
-                                message.what = INDEX;
-                                message.arg1 = pos;
-                                message.arg2 = a;
-                                handler.sendMessageDelayed(message,1500);
-                            }
-
-                        }
-                    }
-                });
 
 
 
@@ -352,23 +330,15 @@
         }
     }
 
-    @Override
-    public void onResume() {
-        super.onResume();
-        Log.i(TAG, "onResume: ");
-
+    private int getSigal2Pos(String signalConfigItem) {
+        for (int i = 0; i < arr_strs.length; i++) {
+            if (arr_strs[i].equals(signalConfigItem)){
+                return i;
+            }else{
+                continue;
+            }
+        }
+        return -1;
     }
 
-    @Override
-    public void onStop() {
-        super.onStop();
-        Log.i(TAG, "onStop: ");
-
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        Log.i(TAG, "onPause: ");
-    }
 }

--
Gitblit v1.8.0