瀏覽代碼

优化调试页玉米正反转ui显示不及时问题

ccc 3 月之前
父節點
當前提交
88cca396f2

+ 2 - 1
module_backstage/src/main/java/com/module/backstage/adapter/DebugParamAdapter.kt

@@ -53,7 +53,8 @@ class DebugParamAdapter (var productList:MutableList<PlcDebugAddressEnum>): Recy
     }
 
     override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
-        holder.bind(productList.get(position))
+        val item = productList[position]
+        holder.bind(item)
 
     }
 

+ 89 - 39
module_backstage/src/main/java/com/module/backstage/fragment/param/DebugParamFragment.kt

@@ -42,7 +42,7 @@ import org.greenrobot.eventbus.ThreadMode
 @RegisterEventBus
 @AndroidEntryPoint
 class DebugParamFragment :
-    BaseFragment<BackstageFragmentDebugParamBinding, DebugParamFragmentVM>() ,LifecycleObserver{
+    BaseFragment<BackstageFragmentDebugParamBinding, DebugParamFragmentVM>(), LifecycleObserver {
     private val TAG = "DebugParamFragment"
     private var debugParamAdapter: DebugParamAdapter? = null
     var okCancelDialog: OKCancelDialog? = null
@@ -55,17 +55,23 @@ class DebugParamFragment :
         closeLoading()
         super.onDestroyView()
     }
+
     override fun BackstageFragmentDebugParamBinding.initView() {
-        with(debugRvProduct){
+        with(debugRvProduct) {
             //设置布局排列方式,默认垂直排列
             val gridLayoutManager: GridLayoutManager =
-                GridLayoutManager(this@DebugParamFragment.context, 4, GridLayoutManager.VERTICAL, false)
+                GridLayoutManager(
+                    this@DebugParamFragment.context,
+                    4,
+                    GridLayoutManager.VERTICAL,
+                    false
+                )
             layoutManager = gridLayoutManager
             debugParamAdapter = DebugParamAdapter(mViewModel.getDebugParamData())
-            debugParamAdapter?.setItemListener(object: AdapterClickListener {
+            debugParamAdapter?.setItemListener(object : AdapterClickListener {
                 override fun onClickListener(view: View?, position: Int, data: String?) {
-                   var checkBox = view as CheckBox
-                    showOnOffDialog(checkBox.isChecked,position)
+                    var checkBox = view as CheckBox
+                    showOnOffDialog(checkBox.isChecked, position)
                 }
             })
             adapter = debugParamAdapter
@@ -82,21 +88,22 @@ class DebugParamFragment :
 
     override fun initObserve() {
         lifecycle.addObserver(mViewModel.getThreadDebugParamParam())
-        observeLiveData(mViewModel.lowSpeedChecked,::setWindLow)
-        observeLiveData(mViewModel.midSpeedChecked,::setWindMid)
-        observeLiveData(mViewModel.highSpeedChecked,::setWindHigh)
-        observeLiveData(mViewModel.paramDataList,::paramDataList)
-        observeLiveData(mViewModel.paramDataList1,::paramDataList1)
-        observeLiveData(mViewModel.paramDataList3,::paramDataList3)
-        observeLiveData(mViewModel.refreshPage,::refreshPage)
-        observeLiveData(mViewModel.loading,::setLoading)
+        observeLiveData(mViewModel.lowSpeedChecked, ::setWindLow)
+        observeLiveData(mViewModel.midSpeedChecked, ::setWindMid)
+        observeLiveData(mViewModel.highSpeedChecked, ::setWindHigh)
+        observeLiveData(mViewModel.paramDataList, ::paramDataList)
+        observeLiveData(mViewModel.paramDataList1, ::paramDataList1)
+        observeLiveData(mViewModel.paramDataList3, ::paramDataList3)
+        observeLiveData(mViewModel.refreshPage, ::refreshPage)
+        observeLiveData(mViewModel.loading, ::setLoading)
         lifecycle.addObserver(this)
 
     }
+
     private fun setLoading(b: Boolean?) {
-        if (b == false){
+        debugParamAdapter?.setState(mViewModel._paramDataMap)
+        if (b == false) {
             closeLoading()
-            debugParamAdapter?.setState(mViewModel._paramDataMap)
             debugParamAdapter?.notifyDataSetChanged()
         }
     }
@@ -113,24 +120,40 @@ class DebugParamFragment :
     private fun paramDataList(lis: List<String>) {
         var i = 0
         val len = lis.size
-        Log.d(TAG, "paramDataList0: "+lis)
+        Log.d(TAG, "paramDataList0: " + lis)
         while (i < len) {
             when (i) {
                 5 -> {
-                    if (lis[9]=="0"){
-                        getValue(lis, i, 4)
+                    if (lis[5]=="1") {
+                        if (lis[9] == "1") {
+                            getValue4(lis, i, 4)
+                            Log.d(TAG, "paramDataList:getValue4 4")
+                        } else if (lis[9] == "0") {
+                            getValue4(lis, i, 5)
+                            Log.d(TAG, "paramDataList:getValue4 5")
+                        }
                     }else{
-                        getValue(lis, i, 5)
+                        getValue4(lis, i, 4)
+                        getValue4(lis, i, 5)
                     }
                 }
-                8 ->{
-                    if (lis[9]=="0"){
-                        getValue(lis, i, 6)
+
+                8 -> {
+                    if (lis[8]=="1") {
+                        if (lis[9] == "0") {
+                            getValue4(lis, i, 6)
+                            Log.d(TAG, "paramDataList:getValue4 6")
+                        } else if (lis[9] == "1") {
+                            getValue4(lis, i, 7)
+                            Log.d(TAG, "paramDataList:getValue4 7")
+                        }
                     }else{
-                        getValue(lis, i, 7)
+                        getValue4(lis, i, 6)
+                        getValue4(lis, i, 7)
                     }
                 }
-                0-> getValue(lis, i, 8)
+
+                0 -> getValue(lis, i, 8)
                 1 -> getValue(lis, i, 10)
             }
             i++
@@ -140,22 +163,23 @@ class DebugParamFragment :
     private fun paramDataList1(lis: List<String>) {
         var i = 0
         val len = lis.size
-        Log.d(TAG, "paramDataList1: "+lis)
+        Log.d(TAG, "paramDataList1: " + lis)
         while (i < len) {
             when (i) {
-                14->getValue(lis,i,3)
+                14 -> getValue(lis, i, 3)
             }
             i++
         }
     }
+
     private fun paramDataList3(lis: List<String>) {
         var i = 0
         val len = lis.size
-        Log.d(TAG, "paramDataList3: "+lis)
+        Log.d(TAG, "paramDataList3: " + lis)
         while (i < len) {
             when (i) {
-                1->{
-                    getValue2(lis,i,9)
+                1 -> {
+                    getValue2(lis, i, 9)
                     Log.d(TAG, "paramDataList3: ")
                 }
             }
@@ -189,12 +213,33 @@ class DebugParamFragment :
         }
     }
 
+    /**
+     * 这里是玉米电机正反转用的
+     */
+    private fun getValue4(lis: List<String>, index: Int, position: Int) {
+        val view: View = mBinding.debugRvProduct.getChildAt(position)
+        if (null != mBinding.debugRvProduct.getChildViewHolder(view)) {
+            val viewHolder: DebugParamAdapter.MyViewHolder =
+                mBinding.debugRvProduct.getChildViewHolder(view) as DebugParamAdapter.MyViewHolder
+            if ("1".equals(lis[index])) {
+                Log.d(TAG, "getValue4: true"+position)
+                viewHolder.mBinding.cbManual.isChecked = true
+            } else {
+                Log.d(TAG, "getValue4: false"+position)
+                viewHolder.mBinding.cbManual.isChecked = false
+            }
+        }
+    }
+
     private fun getValue2(lis: List<String>, index: Int, position: Int) {
         val view: View = mBinding.debugRvProduct.getChildAt(position)
         if (null != mBinding.debugRvProduct.getChildViewHolder(view)) {
             val viewHolder: DebugParamAdapter.MyViewHolder =
                 mBinding.debugRvProduct.getChildViewHolder(view) as DebugParamAdapter.MyViewHolder
-            Log.d(TAG, "position: "+position+"getValue isChecked: "+viewHolder.mBinding.cbManual.isChecked)
+            Log.d(
+                TAG,
+                "position: " + position + "getValue isChecked: " + viewHolder.mBinding.cbManual.isChecked
+            )
             if ("1".equals(lis[index])) {
                 //当它为选择状态时,无需设置,避免闪硕
                 if (viewHolder.mBinding.cbManual.isChecked) { //如果已经选中了,那么我们这边就不会执行了。
@@ -209,15 +254,15 @@ class DebugParamFragment :
     }
 
     private fun setWindLow(b: Boolean) {
-        getValue1(b,0)
+        getValue1(b, 0)
     }
 
     private fun setWindMid(b: Boolean) {
-        getValue1(b,1)
+        getValue1(b, 1)
     }
 
     private fun setWindHigh(b: Boolean) {
-        getValue1(b,2)
+        getValue1(b, 2)
     }
 
 
@@ -226,7 +271,10 @@ class DebugParamFragment :
         if (null != mBinding.debugRvProduct.getChildViewHolder(view)) {
             val viewHolder: DebugParamAdapter.MyViewHolder =
                 mBinding.debugRvProduct.getChildViewHolder(view) as DebugParamAdapter.MyViewHolder
-            Log.d(TAG, "position: "+position+"getValue isChecked: "+viewHolder.mBinding.cbManual.isChecked)
+            Log.d(
+                TAG,
+                "position: " + position + "getValue isChecked: " + viewHolder.mBinding.cbManual.isChecked
+            )
             if (b) {
                 //当它为选择状态时,无需设置,避免闪硕
                 if (!viewHolder.mBinding.cbManual.isChecked) { //如果已经选中了,那么我们这边就不会执行了。
@@ -245,14 +293,15 @@ class DebugParamFragment :
         if (okCancelDialog == null) {
             okCancelDialog = this@DebugParamFragment.context?.let { OKCancelDialog(it) }
         }
-        okCancelDialog?.setListener(object: DialogClickListener {
+        okCancelDialog?.setListener(object : DialogClickListener {
             override fun onClickListener(type: Int, text: String?) {
                 when (type) {
-                    okCancelDialog?.type1-> {
+                    okCancelDialog?.type1 -> {
                         okCancelDialog?.dismiss()
-                        mViewModel.setBtnParam(isChecked,position)
+                        mViewModel.setBtnParam(isChecked, position)
                         showLoading()
                     }
+
                     else -> {}
                 }
             }
@@ -263,6 +312,7 @@ class DebugParamFragment :
 
     private var dialog: ZLoadingDialog? = null
     private var loadingJob: Job? = null
+
     @SuppressLint("ResourceAsColor")
     private fun showLoading() {
         if (dialog == null) {
@@ -298,7 +348,7 @@ class DebugParamFragment :
         }
     }
 
-    private fun closeLoading(){
+    private fun closeLoading() {
         loadingJob?.cancel()
         dialog?.dismiss()
     }