|
@@ -1,5 +1,6 @@
|
|
|
package com.quyunshuo.module.home.fragment.fragment
|
|
|
|
|
|
+import android.annotation.SuppressLint
|
|
|
import android.os.Handler
|
|
|
import android.text.format.DateFormat
|
|
|
import android.util.Log
|
|
@@ -39,6 +40,8 @@ import com.quyunshuo.module.home.enums.LogoEnum
|
|
|
import com.quyunshuo.module.home.fragment.vm.MakeFragmentVM
|
|
|
import com.quyunshuo.module.home.utils.SimplePlayerUtil
|
|
|
import com.quyunshuo.module.home.weight.ProgressView
|
|
|
+import com.quyunshuo.sbm10.common.util.FileUtil
|
|
|
+import com.quyunshuo.sbm10.common.util.UiUtil
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
@@ -59,7 +62,7 @@ import java.util.UUID
|
|
|
*/
|
|
|
@RegisterEventBus
|
|
|
@AndroidEntryPoint
|
|
|
-class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),LifecycleObserver {
|
|
|
+class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(), LifecycleObserver {
|
|
|
|
|
|
private val TAG = "MakeFragment"
|
|
|
private var simplePlayerUtil: SimplePlayerUtil? = null
|
|
@@ -70,11 +73,19 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
override fun createVB() = HomeFragmentMakeBinding.inflate(layoutInflater)
|
|
|
var jobHandler: Job? = null
|
|
|
private var shoppingCartItems: MutableList<ShoppingCartBean> = mutableListOf()
|
|
|
+ private var saveShoppingCartItems: MutableList<ShoppingCartBean> = mutableListOf()
|
|
|
private var isProcessing = false // 标志位,用于确保只执行一次
|
|
|
private var isMakePoc = false
|
|
|
private var firstItem: ShoppingCartBean? = null
|
|
|
+ private var productCount = 1
|
|
|
|
|
|
+ @SuppressLint("SetTextI18n")
|
|
|
override fun HomeFragmentMakeBinding.initView() {
|
|
|
+ val deviceId = FileUtil.getDeviceId()
|
|
|
+ if (deviceId.isNotEmpty()) {
|
|
|
+ tvClientId.text =
|
|
|
+ UiUtil.getStringRes(R.string.home_dev_id) + deviceId.substring(deviceId.length - 6)
|
|
|
+ }
|
|
|
//处理传递过来的商品数据,进行制作、数据保存
|
|
|
val selectPro = arguments?.getString("SELECT_PRO")
|
|
|
val price = arguments?.getDouble("PRICE")
|
|
@@ -82,16 +93,18 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
// 解析 JSON 数据
|
|
|
simplePlayerUtil = SimplePlayerUtil(svVideo)
|
|
|
simplePlayerUtil!!.setUrl("/storage/emulated/0/adB/1440.mp4")
|
|
|
- if ((Heartbeat.acceptBill+Heartbeat.coinData)>price1){
|
|
|
- Heartbeat.acceptBill = (Heartbeat.acceptBill+Heartbeat.coinData).subtract(price1)
|
|
|
- }else{
|
|
|
- Heartbeat.acceptBill= BigDecimal.ZERO.setScale(2, java.math.RoundingMode.HALF_UP);
|
|
|
+ if ((Heartbeat.acceptBill + Heartbeat.coinData) > price1) {
|
|
|
+ Heartbeat.acceptBill = (Heartbeat.acceptBill + Heartbeat.coinData).subtract(price1)
|
|
|
+ } else {
|
|
|
+ Heartbeat.acceptBill = BigDecimal.ZERO.setScale(2, java.math.RoundingMode.HALF_UP);
|
|
|
}
|
|
|
initProgress()
|
|
|
//首先判断是否有做糖数据,如果有则发送指令,如果没有就结束。
|
|
|
if (selectPro != null) {
|
|
|
shoppingCartItems = parseShoppingCartData(selectPro).toMutableList()
|
|
|
- Log.d(TAG, "制作列表: "+shoppingCartItems)
|
|
|
+ saveShoppingCartItems = parseShoppingCartData(selectPro).toMutableList()//保存购物车的清单
|
|
|
+
|
|
|
+ Log.d(TAG, "制作列表: " + shoppingCartItems)
|
|
|
// if (shoppingCartItems.isNotEmpty()) {
|
|
|
// mViewModel.startSendMake(shoppingCartItems[0].nameChinese)
|
|
|
// val item = shoppingCartItems[0]
|
|
@@ -102,7 +115,6 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
// }
|
|
|
// }
|
|
|
}
|
|
|
-
|
|
|
LongClickUtils.setLongClick(Handler(), ivLogo, 5000, object : View.OnLongClickListener {
|
|
|
override fun onLongClick(p0: View?): Boolean {
|
|
|
val findNavController = findNavController()
|
|
@@ -147,6 +159,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
// showAgainBuyDialog()
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|
|
@@ -199,7 +212,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
override fun handleMessage(msg: android.os.Message) {
|
|
|
when (msg.what) {
|
|
|
1 -> {
|
|
|
- if (fragment.mBinding!=null) {
|
|
|
+ if (fragment.mBinding != null) {
|
|
|
if (fragment.isMakePoc) {
|
|
|
Log.d("makefragment", "进度条: " + fragment.plannedSpeed)
|
|
|
fragment.plannedSpeed++
|
|
@@ -233,6 +246,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|
|
@@ -250,9 +264,11 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
Message.Type.ack -> {
|
|
|
mViewModel.ack(messageEvent)
|
|
|
}
|
|
|
+
|
|
|
Message.Type.response -> {
|
|
|
mViewModel.response(messageEvent)
|
|
|
}
|
|
|
+
|
|
|
Message.Type.connected -> {}
|
|
|
Message.Type.disconnected -> {}
|
|
|
Message.Type.sendError -> {}
|
|
@@ -265,7 +281,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
when (messageEvent.name) {
|
|
|
"backPrev" -> {
|
|
|
val findNavController = findNavController()
|
|
|
- findNavController.navigate(R.id.home_action_home_makefragment_to_home_homefragment)
|
|
|
+ findNavController.navigate(R.id.home_action_home_makefragment_to_home_homefragment)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -283,13 +299,18 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
}
|
|
|
val overheatState = HexUtils.hexStr2BinStr(messageEvent.data.substring(4, 6))
|
|
|
val split = overheatState.trim().split("")
|
|
|
- mBinding.tvLutou.text = ((split[1].toInt() * 256) + com.quyunshuo.sbm10.common.util.ByteUtils.hexStr2decimal(messageEvent.data.substring(6, 8))).toString()+"℃"
|
|
|
+ mBinding.tvLutou.text =
|
|
|
+ ((split[1].toInt() * 256) + com.quyunshuo.sbm10.common.util.ByteUtils.hexStr2decimal(
|
|
|
+ messageEvent.data.substring(6, 8)
|
|
|
+ )).toString() + "℃"
|
|
|
cmdHeartbeat(messageEvent)
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @SuppressLint("SetTextI18n")
|
|
|
private fun cmdHeartbeat(messageEvent: VBoxMessage) {
|
|
|
val deviceState = messageEvent.data.substring(0, 2)//机器状态码
|
|
|
Log.d(TAG, "deviceState:1 " + messageEvent.data)
|
|
@@ -305,10 +326,15 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
isShowAgainBuyDialog = true
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
"04" -> {//开始制作
|
|
|
isMakePoc = true
|
|
|
Log.d(TAG, "initProgress: 进度条: true")
|
|
|
if (isProcessing) {
|
|
|
+ val nameId = UiUtil.getResId(shoppingCartItems[0].nameId, R.string::class.java)
|
|
|
+ val additionalText = saveShoppingCartItems.size // 要添加的字符串
|
|
|
+ mBinding.tvMakingProduct.text =
|
|
|
+ getString(nameId) + productCount + "/" + additionalText
|
|
|
mViewModel.threadHomeParam.stopSendMake()
|
|
|
Log.d(TAG, "startMake:stopMake ")
|
|
|
initProgress()
|
|
@@ -323,10 +349,12 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
} else {
|
|
|
shoppingCartItems.removeAt(0)
|
|
|
}
|
|
|
+ productCount++
|
|
|
}
|
|
|
isProcessing = false // 重置标志位
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
"10" -> {//制作完成
|
|
|
mBinding.tvProgressDescribe.setText(100.toString() + "%")
|
|
|
if (isShowAgainBuyDialog) {
|
|
@@ -340,6 +368,7 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|
|
@@ -356,10 +385,11 @@ class MakeFragment : BaseFragment<HomeFragmentMakeBinding, MakeFragmentVM>(),Lif
|
|
|
val findNavController = findNavController()
|
|
|
try {
|
|
|
findNavController.navigate(R.id.home_action_home_makefragment_to_home_homefragment)
|
|
|
- }catch (e: IllegalArgumentException){
|
|
|
- Log.d(TAG, "onClickListener: "+e.message)
|
|
|
+ } catch (e: IllegalArgumentException) {
|
|
|
+ Log.d(TAG, "onClickListener: " + e.message)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
else -> {}
|
|
|
}
|
|
|
}
|