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