Browse Source

提示正在制作的商品以及未制作商品的数量

ccc 2 months ago
parent
commit
2ccde36a9e

+ 2 - 0
lib_base/src/main/res/values-ar/strings.xml

@@ -284,5 +284,7 @@
     <string name="system_setting">أدخل إعدادات النظام</string>
     <string name="make_faild">فشل الإنتاج، يُرجى إعادة التشغيل</string>
     <string name="reset_product">إعادة الضبط</string>
+    <string name="now_make">الصنع:</string>
+
 </resources>
 <!--阿拉伯语-->

+ 1 - 0
lib_base/src/main/res/values-de/strings.xml

@@ -283,4 +283,5 @@
     <string name="system_setting">Systemeinstellungen aufrufen</string>
     <string name="make_faild">Produktion fehlgeschlagen, bitte neu starten</string>
     <string name="reset_product">Zurücksetzen</string>
+    <string name="now_make">Herstellung:</string>
 </resources><!--德语-->

+ 1 - 0
lib_base/src/main/res/values-en/strings.xml

@@ -283,6 +283,7 @@
     <string name="system_setting">Enter system settings</string>
     <string name="make_faild">Production failed, please restart</string>
     <string name="reset_product">Reset settings</string>
+    <string name="now_make">Making:</string>
 
 </resources>
     <!--英文-->

+ 2 - 0
lib_base/src/main/res/values-fr/strings.xml

@@ -282,4 +282,6 @@
     <string name="system_setting">Accéder aux paramètres système</string>
     <string name="make_faild">Échec de la production, veuillez redémarrer</string>
     <string name="reset_product">Réinitialiser</string>
+    <string name="now_make">Fabrication:</string>
+
 </resources><!--法语-->

+ 1 - 0
lib_base/src/main/res/values/strings.xml

@@ -283,6 +283,7 @@
     <string name="system_setting">进入系统设置</string>
     <string name="make_faild">制作失败,请重新开机</string>
     <string name="reset_product">重置设置</string>
+    <string name="now_make">正在制作:</string>
 
 </resources>
 <!--中文-->

+ 1 - 1
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/HomeFragment.kt

@@ -260,7 +260,7 @@ class HomeFragment : BaseFragment<HomeFragmentHomeBinding, HomeFragmentVM>(), Vi
         product = productList[position]
         Log.d(TAG, "clickProduct: " + product)
         //点击前校验 有没有开机、有没有选择支付方式等。
-//        if (checkToBuy()) return//是否开机
+        if (checkToBuy()) return//是否开机
 
 //        selectProductDataBean = ProTypeEnum.getEnumByValue(product!!.nameChinese)
         //todo 测试做糖 传递价格等信息过去。

+ 43 - 13
module_home/src/main/java/com/quyunshuo/module/home/fragment/fragment/MakeFragment.kt

@@ -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 -> {}
                     }
                 }

+ 14 - 0
module_home/src/main/res/layout/home_fragment_make.xml

@@ -88,6 +88,20 @@
         app:layout_constraintEnd_toEndOf="@+id/progressView"
         app:layout_constraintStart_toStartOf="@+id/progressView"
         app:layout_constraintTop_toTopOf="@+id/progressView" />
+    <TextView
+        android:id="@+id/tv_making_product"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text=""
+        android:textColor="@color/black"
+        android:textSize="50sp"
+        android:textStyle="bold"
+        android:layout_marginTop="200dp"
+        android:layout_alignParentBottom="true"
+        android:layout_centerInParent="true"
+        app:layout_constraintStart_toStartOf="@+id/home_guideline"
+        app:layout_constraintEnd_toStartOf="@+id/home_guideline"
+        app:layout_constraintTop_toTopOf="@+id/home_guideline3" />
 
 
     <androidx.constraintlayout.widget.Guideline