|
@@ -1,5 +1,6 @@
|
|
|
package com.module.backstage.fragment.param
|
|
|
|
|
|
+import android.annotation.SuppressLint
|
|
|
import android.util.Log
|
|
|
import android.view.View
|
|
|
import android.widget.CheckBox
|
|
@@ -8,6 +9,7 @@ import androidx.recyclerview.widget.GridLayoutManager
|
|
|
import com.hboxs.serialport.plc.DialogClickListener
|
|
|
import com.hboxs.serialport.sbc.SBCHeartbeat
|
|
|
import com.hboxs.serialport.sbc.VBoxMessage
|
|
|
+import com.module.backstage.R
|
|
|
import com.module.backstage.adapter.DebugParamAdapter
|
|
|
import com.module.backstage.databinding.BackstageFragmentDebugParamBinding
|
|
|
import com.module.backstage.dialog.OKCancelDialog
|
|
@@ -16,8 +18,17 @@ import com.module.backstage.vm.DebugParamFragmentVM
|
|
|
import com.quyunshuo.androidbaseframemvvm.base.ktx.observeLiveData
|
|
|
import com.quyunshuo.androidbaseframemvvm.base.utils.RegisterEventBus
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.ui.BaseFragment
|
|
|
+import com.quyunshuo.androidbaseframemvvm.common.util.ToastUtil
|
|
|
import com.quyunshuo.androidbaseframemvvm.common.util.XLogUtil
|
|
|
+import com.zyao89.view.zloading.ZLoadingDialog
|
|
|
+import com.zyao89.view.zloading.Z_TYPE
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
|
+import kotlinx.coroutines.CoroutineScope
|
|
|
+import kotlinx.coroutines.Dispatchers
|
|
|
+import kotlinx.coroutines.Job
|
|
|
+import kotlinx.coroutines.delay
|
|
|
+import kotlinx.coroutines.launch
|
|
|
+import kotlinx.coroutines.withContext
|
|
|
import org.greenrobot.eventbus.Subscribe
|
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
|
|
|
@@ -40,6 +51,7 @@ class DebugParamFragment :
|
|
|
|
|
|
override fun onDestroyView() {
|
|
|
mBinding.debugRvProduct.adapter = null
|
|
|
+ closeLoading()
|
|
|
super.onDestroyView()
|
|
|
}
|
|
|
override fun BackstageFragmentDebugParamBinding.initView() {
|
|
@@ -53,7 +65,6 @@ class DebugParamFragment :
|
|
|
override fun onClickListener(view: View?, position: Int, data: String?) {
|
|
|
var checkBox = view as CheckBox
|
|
|
showOnOffDialog(checkBox.isChecked,position)
|
|
|
-
|
|
|
}
|
|
|
})
|
|
|
adapter = debugParamAdapter
|
|
@@ -67,22 +78,23 @@ class DebugParamFragment :
|
|
|
mViewModel.disposeData(messageEvent)
|
|
|
}
|
|
|
|
|
|
+
|
|
|
override fun initObserve() {
|
|
|
lifecycle.addObserver(mViewModel.getThreadDebugParamParam())
|
|
|
- observeLiveData(mViewModel.paramDataListM228,::setM228)
|
|
|
- observeLiveData(mViewModel.paramDataListM111,::setM111)
|
|
|
- observeLiveData(mViewModel.paramDataListM166,::setM166)
|
|
|
- observeLiveData(mViewModel.paramDataListM171,::setM171)
|
|
|
- observeLiveData(mViewModel.paramDataListM178,::setM178)
|
|
|
- observeLiveData(mViewModel.paramDataListM198,::setM198)
|
|
|
- observeLiveData(mViewModel.paramDataListM208,::setM208)
|
|
|
- observeLiveData(mViewModel.paramDataListM218,::setM218)
|
|
|
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)
|
|
|
+
|
|
|
+ }
|
|
|
+ private fun setLoading(b: Boolean?) {
|
|
|
+ if (b == false){
|
|
|
+ closeLoading()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private fun refreshPage(b: Boolean?) {
|
|
@@ -95,120 +107,10 @@ class DebugParamFragment :
|
|
|
mViewModel.getArticleData()
|
|
|
}
|
|
|
|
|
|
- fun setM111(lis: List<String>){
|
|
|
- Log.d(TAG, "setM111: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 7 -> getValue(lis, i, 0)
|
|
|
- 12 -> getValue(lis, i, 1)
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
- fun setM166(lis: List<String>){
|
|
|
- Log.d(TAG, "setM166: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 1 -> getValue(lis, i, 2)
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
- fun setM171(lis: List<String>){
|
|
|
- Log.d(TAG, "setM171: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 3 -> getValue(lis, i, 3)
|
|
|
- 5 -> getValue(lis, i, 4)
|
|
|
- 6 -> getValue(lis, i, 5)
|
|
|
- 7 -> getValue(lis, i, 6)
|
|
|
- 8 -> getValue(lis, i, 7)
|
|
|
- 9 -> getValue(lis, i, 8)
|
|
|
-
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
- fun setM178(lis: List<String>){
|
|
|
- Log.d(TAG, "setM178: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 2 -> getValue(lis, i, 9)
|
|
|
- 3 -> getValue(lis, i, 10)
|
|
|
- 4 -> getValue(lis, i, 11)
|
|
|
- 5 -> getValue(lis, i, 12)
|
|
|
- 6 -> getValue(lis, i, 13)
|
|
|
- 8 -> getValue(lis, i, 14)
|
|
|
-
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
- fun setM198(lis: List<String>){
|
|
|
- Log.d(TAG, "setM198: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 0 -> getValue(lis, i, 16)
|
|
|
- 1 -> getValue(lis, i, 15)
|
|
|
-
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
- fun setM208(lis: List<String>){
|
|
|
- Log.d(TAG, "setM208: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 0 -> getValue(lis, i, 17)
|
|
|
- 1 -> getValue(lis, i, 18)
|
|
|
-
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
- fun setM218(lis: List<String>){
|
|
|
- Log.d(TAG, "setM218: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 2 -> getValue(lis, i, 19)
|
|
|
- 3 -> getValue(lis, i, 20)
|
|
|
-
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
- fun setM228(lis: List<String>){
|
|
|
- Log.d(TAG, "setM228: "+lis)
|
|
|
- var i = 0
|
|
|
- val len = lis.size
|
|
|
- while (i < len) {
|
|
|
- when (i) {
|
|
|
- 2-> getValue(lis, i, 22)
|
|
|
- 3 -> getValue(lis, i, 21)
|
|
|
- }
|
|
|
- i++
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
private fun paramDataList(lis: List<String>) {
|
|
|
var i = 0
|
|
|
val len = lis.size
|
|
|
- Log.d(TAG, "paramDataList: "+lis)
|
|
|
+ Log.d(TAG, "paramDataList0: "+lis)
|
|
|
while (i < len) {
|
|
|
when (i) {
|
|
|
0-> getValue(lis, i, 8)
|
|
@@ -233,6 +135,17 @@ class DebugParamFragment :
|
|
|
i++
|
|
|
}
|
|
|
}
|
|
|
+ private fun paramDataList3(lis: List<String>) {
|
|
|
+ var i = 0
|
|
|
+ val len = lis.size
|
|
|
+ Log.d(TAG, "paramDataList3: "+lis)
|
|
|
+ while (i < len) {
|
|
|
+ when (i) {
|
|
|
+ 1->getValue2(lis,i,9)
|
|
|
+ }
|
|
|
+ i++
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 改变对应的状态
|
|
@@ -260,6 +173,25 @@ class DebugParamFragment :
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ 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)
|
|
|
+ if ("1".equals(lis[index])) {
|
|
|
+ //当它为选择状态时,无需设置,避免闪硕
|
|
|
+ if (!viewHolder.mBinding.cbManual.isChecked) { //如果已经选中了,那么我们这边就不会执行了。
|
|
|
+ viewHolder.mBinding.cbManual.isChecked = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (viewHolder.mBinding.cbManual.isChecked) {
|
|
|
+ viewHolder.mBinding.cbManual.isChecked = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private fun setWindLow(b: Boolean) {
|
|
|
getValue1(b,0)
|
|
|
}
|
|
@@ -303,6 +235,7 @@ class DebugParamFragment :
|
|
|
okCancelDialog?.type1-> {
|
|
|
okCancelDialog?.dismiss()
|
|
|
mViewModel.setBtnParam(isChecked,position)
|
|
|
+ showLoading()
|
|
|
}
|
|
|
else -> {}
|
|
|
}
|
|
@@ -311,4 +244,47 @@ class DebugParamFragment :
|
|
|
okCancelDialog?.show()
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private var dialog: ZLoadingDialog? = null
|
|
|
+ private var loadingJob: Job? = null
|
|
|
+ @SuppressLint("ResourceAsColor")
|
|
|
+ private fun showLoading() {
|
|
|
+ if (dialog == null) {
|
|
|
+ dialog = ZLoadingDialog(requireContext())
|
|
|
+ }
|
|
|
+ dialog!!.setLoadingBuilder(Z_TYPE.DOUBLE_CIRCLE) //设置类型
|
|
|
+ .setLoadingColor(
|
|
|
+ R.color.color_red
|
|
|
+ ) //颜色
|
|
|
+ .setHintText("Loading...")
|
|
|
+ .setCanceledOnTouchOutside(false)
|
|
|
+ .setCancelable(false)
|
|
|
+ .setHintTextSize(48f)
|
|
|
+
|
|
|
+ dialog!!.create().apply {
|
|
|
+ val window = this.window
|
|
|
+ window?.let {
|
|
|
+ val layoutParams = it.attributes
|
|
|
+ layoutParams.width = (800 * resources.displayMetrics.density).toInt() // 转换为 px
|
|
|
+ layoutParams.height = (400 * resources.displayMetrics.density).toInt() // 转换为 px
|
|
|
+ it.attributes = layoutParams
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dialog!!.show()
|
|
|
+ loadingJob = CoroutineScope(Dispatchers.IO).launch {
|
|
|
+ delay(10000) // 延迟 20 秒
|
|
|
+ withContext(Dispatchers.Main) {
|
|
|
+ if (dialog?.isShowing == true) {
|
|
|
+ ToastUtil.showToast("error")
|
|
|
+ closeLoading() // 在主线程调用关闭方法
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun closeLoading(){
|
|
|
+ loadingJob?.cancel()
|
|
|
+ dialog?.dismiss()
|
|
|
+ }
|
|
|
+
|
|
|
}
|