Browse Source

慢炖和揉面逻辑上传,涂鸦功能修改

zhangshenjie 8 months ago
parent
commit
f20c3dc5d5

+ 17 - 0
BusinessAirFryer/src/main/assets/config.json

@@ -163,6 +163,23 @@
       "devMode": "SOUP",
       "listShow": true
     },
+    {
+      "type": "DICING",
+      "name": "dicing",
+      "bg": "ic_mode_dicing",
+      "icon": "ic_grid_dicing",
+      "devMode": "SOUP",
+      "listShow": false
+    },
+
+    {
+      "type": "POTATO_PEELER",
+      "name": "potato_peeler",
+      "bg": "ic_mode_potato_peeler",
+      "icon": "ic_grid_potato_peeler",
+      "devMode": "SOUP",
+      "listShow": false
+    },
     {
       "type": "AIR_FRYER",
       "name": "air_fryer",

+ 6 - 1
BusinessCommon/src/main/java/com/develop/common/dialog/TuyaLoadingDialog.kt

@@ -13,7 +13,7 @@ import com.develop.common.databinding.DialogTuyaLoadingBinding
 class TuyaLoadingDialog: FullScreenTransparentDialog() {
 
     private lateinit var binding: DialogTuyaLoadingBinding
-
+    var onDialogClickListener: OnDialogClickListener? = null
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
@@ -23,6 +23,7 @@ class TuyaLoadingDialog: FullScreenTransparentDialog() {
             inflater, container, false
         )
         binding.tuyaCloseIv.setOnClickListener {
+            onDialogClickListener?.onCancel()
             removeSelf()
         }
 
@@ -31,4 +32,8 @@ class TuyaLoadingDialog: FullScreenTransparentDialog() {
         return binding.root
     }
 
+    interface OnDialogClickListener {
+        fun onCancel()
+    }
+
 }

+ 0 - 1
BusinessCommon/src/main/java/com/develop/common/event/CommonEvent.kt

@@ -20,5 +20,4 @@ data class CookStepEvent(
     var modeType: String = "",
     var detailJson: String = "",
     var sizelJson: String = "",
-    var startMotorGer:Int = 0
 ) {}

+ 0 - 6
BusinessCommon/src/main/java/com/develop/common/food_sdk/FloatWindowManager.kt

@@ -41,7 +41,6 @@ object FloatWindowManager {
     private var ivFood: CircleImageView? = null
     private var tvStep: MarqueeTextView? = null
     private var modeType = ""
-    private var startMotorGer = 0
     private val confirmCancelDialog by lazy {
         CancelConfirmDialog()
     }
@@ -79,8 +78,6 @@ object FloatWindowManager {
         modeName = event.modeName
         isMode = event.isMode
         modeType = event.modeType
-        startMotorGer = event.startMotorGer
-        Log.e("startMotorGer","showStepFlowWindow startMotorGer :"+event.startMotorGer)
         if (!EventBus.getDefault().isRegistered(this)) {
             EventBus.getDefault().register(this)
         }
@@ -117,13 +114,11 @@ object FloatWindowManager {
 
                 it.findViewById<RelativeLayout>(R.id.content_layout).setOnClickListener {
                     if (isMode) {
-                        Log.e("startMotorGer","event startMotorGer :"+startMotorGer)
 
                         globalApp().navigateTo(Screens.Cook.COOK_MODES) {
                             withString("cook_name", modeName)
                             withString(MODE_TYPE, event.modeType)
                             withBoolean("keep",true)
-                            withInt("startMotorGer",startMotorGer)
                         }
                     } else {
                         globalApp().navigateTo(Screens.Cook.COOK_STEP2) {
@@ -132,7 +127,6 @@ object FloatWindowManager {
                             withString("portionSizelJson", event.sizelJson)
                             withInt("stepIndex", step)
                             withBoolean("keep",true)
-                            withInt("startMotorGer",startMotorGer)
                         }
                     }
                 }

+ 2 - 2
BusinessMain/src/main/java/com/develop/main/ui/ModesFragment.kt

@@ -30,6 +30,7 @@ import com.develop.base.ext.updateText
 import com.develop.base.util.TopResumedAtyHolder
 import com.develop.common.data_repo.db.ModesType
 import com.develop.common.dialog.CancelConfirmDialog
+import com.develop.common.food_sdk.FloatWindowManager
 import com.develop.common.router.Screens
 import com.develop.common.tag.MODE_TYPE
 import com.develop.common.ui.CommonBVMFragment
@@ -167,9 +168,8 @@ class  ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>()
                             return@onClick
                         }
 
-                        navigateTo(Screens.Cook.COOK_MODES) {
-
 
+                        navigateTo(Screens.Cook.COOK_MODES) {
                             val bundle = Bundle()
                             bundle.putString(MODE_TYPE, modes?.get(absoluteAdapterPosition)?.type)
                             with(bundle)

+ 15 - 9
BusinessSetting/src/main/java/com/develop/setting/ui/SettingMainActivity.kt

@@ -32,6 +32,7 @@ import com.develop.common.data_repo.db.SettingType
 import com.develop.common.data_repo.net.Api
 import com.develop.common.data_repo.net.model.request.DeviceInfoBody
 import com.develop.common.data_repo.net.model.response.DevInfoResult
+import com.develop.common.dialog.CancelConfirmImageDialog
 import com.develop.common.dialog.PotCoverUnlockedDialog
 import com.develop.common.dialog.TuyaLoadingDialog
 import com.develop.common.router.Screens
@@ -61,7 +62,7 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
     private var onIsResume = true
     private var isNetwork = false
     private var sn = getSN()
-
+    private val tuyaLoadingDialog = TuyaLoadingDialog()
     override fun createViewBinding(inflater: LayoutInflater): ActivitySettingMainBinding {
         return ActivitySettingMainBinding.inflate(layoutInflater)
     }
@@ -191,13 +192,13 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
                             if (CofarSDK.devInfo().status !== DevStatus.STOP.toInt()) {
                                 ToastUtils.showShort(getString(com.develop.common.R.string.change_lang_tips))
                             } else {
-                                if (NetworkInfo.DetailedState.CONNECTED == WifiHelp.Build(ctx)
-                                        .build().getDetailedState()
-                                ) {
-                                    navigateTo(Screens.Setting.TUYA)
-                                } else if(isTuya&&TuyaUtils.qrcodeUrl== ""){
-                                    showTuyaLoadingDialog()
-                                }else {
+                                if (getNetwork()) {
+                                    if(isTuya&&TuyaUtils.qrcodeUrl== ""){
+                                        showTuyaLoadingDialog()
+                                    }else{
+                                        navigateTo(Screens.Setting.TUYA)
+                                    }
+                                } else {
                                     navigateTo(Screens.Setting.WIFI, 200) {
                                         val bundle = Bundle()
                                         bundle.putBoolean(WIFI_FROM_MAIN_SETTING, true)
@@ -217,8 +218,13 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
 
 
     private fun showTuyaLoadingDialog() {
-        val tuyaLoadingDialog = TuyaLoadingDialog()
         tuyaLoadingDialog.showDialog(supportFragmentManager, "TuyaLoadingDialog")
+        tuyaLoadingDialog.onDialogClickListener = object : TuyaLoadingDialog.OnDialogClickListener{
+            override fun onCancel() {
+                tuyaLoadingDialog.removeSelf();
+            }
+
+        }
     }
 
 

+ 55 - 66
BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

@@ -18,7 +18,6 @@ import androidx.appcompat.widget.AppCompatTextView
 import androidx.core.graphics.drawable.DrawableCompat
 import androidx.databinding.ViewDataBinding
 import com.alibaba.android.arouter.facade.annotation.Route
-import com.blankj.utilcode.util.ToastUtils
 import com.bumptech.glide.Glide
 import com.develop.base.ext.getModelNum
 import com.develop.base.ext.getSN
@@ -32,7 +31,6 @@ import com.develop.base.ext.setVisible
 import com.develop.base.ext.src
 import com.develop.base.ext.updateText
 import com.develop.base.util.ThreadUtils
-import com.develop.base.util.TopResumedAtyHolder
 import com.develop.base.util.TuyaEventEntity
 import com.develop.base.widgets.CommonPopupWindow
 import com.develop.common.bean.TuyaEvent
@@ -61,7 +59,6 @@ import com.develop.common.widget.EggsSelectorLayout
 import com.develop.common.widget.RingControlView
 import com.develop.common.widget.TimePickerView
 import com.develop.step.CookSettingType
-import com.develop.step.R
 import com.develop.step.databinding.ActivityModeDetailBinding
 import com.develop.step.viewmodel.ModesViewMode
 import com.drake.net.time.Interval
@@ -72,10 +69,6 @@ import com.kuyuntech.cofarcooking.device.sdk.constant.core.HeatModes
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.MotorDirections
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.WorkModes
 import com.kuyuntech.cofarcooking.device.sdk.devmode.core.BaseDevMode
-import com.kuyuntech.cofarcooking.device.sdk.devmode.core.Kettle
-import com.kuyuntech.cofarcooking.device.sdk.devmode.core.Knead
-import com.kuyuntech.cofarcooking.device.sdk.devmode.core.SlowCooking010D
-import com.kuyuntech.cofarcooking.device.sdk.devmode.core.SlowCooking033F
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.core.DevInfo
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.DevCommonEvent
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.DevStatusEvent
@@ -107,7 +100,6 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     private var minMotorGear = 0
     private var maxWaterGear = 0
     private var minWaterGear = 0
-    private var startMotorGer = 0
     private var currTime = 0L
     private var maxTime = 0L
     private var minTime = 0L
@@ -273,10 +265,6 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         modeName = intent.extras?.getString("mode_name", "") ?: ""
         opMode = intent.extras?.getString("OP_MODE", "HAND") ?: "HAND"
         keep = intent.extras?.getBoolean("keep", false) ?: false
-        if (keep){
-            startMotorGer = intent.extras?.getInt("startMotorGer", 0) ?: 0
-            currentMotorGer = startMotorGer
-        }
         viewModel.lastModeType = viewModel.modeType
         lastModeType = viewModel.modeType
         modeType = lastModeType
@@ -1281,7 +1269,6 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
                                     packageName
                                 )
                             ),
-                            startMotorGer = startMotorGer
                         )
 
                         FloatWindowManager.showStepFlowWindow(cookStepEvent)
@@ -1468,6 +1455,13 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             }
 
         } else {
+            if (sn.startsWith("063")) {
+                binding.tvCount.setVisible()
+                binding.ivPotCover.setVisible()
+            } else {
+                binding.tvCount.setGone()
+                binding.ivPotCover.setGone()
+            }
 //            isWidget = true
             binding.ivWeight.visibility = View.VISIBLE
             binding.ivTurbo.visibility = View.VISIBLE
@@ -1801,9 +1795,17 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         this.maxTemp = maxTemp.toInt()
         this.minTemp = minTemp.toInt()
         this.isTempChange = isTempChange
+
+        Log.d(
+            "TAG updateTempUI",
+            "minTemp:$minTemp   maxTemp:$maxTemp  当前温度 currentTemp:$currentTemp    目标温度 targetTemp:$targetTemp  currDevInfo.temp:${currDevInfo.temp}  "
+        )
+
+
         binding.apply {
 
 
+
             clCookTemp.updateChangeValue("${FoodSdkUtils.parseTemp(currDevInfo.temp)}°C")
             tempRingView.setRange(minTemp, maxTemp)
             tempRingView.setCanTouch(isTempChange)
@@ -1869,10 +1871,10 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             var hours = 0
             var minute = 0
             var sec = 0
-            Log.d(
-                "TAG updateTimeUI",
-                "minTime:$minTime   maxTime:$maxTime  dev:${currDevInfo.remainTime.toLong()}    remainTime:$remainTime  targetTime:$targetTime  isTimeChange:$isTimeChange   focusUpdate$focusUpdate  type :$type"
-            )
+//            Log.d(
+//                "TAG updateTimeUI",
+//                "minTime:$minTime   maxTime:$maxTime  dev:${currDevInfo.remainTime.toLong()}    remainTime:$remainTime  targetTime:$targetTime  isTimeChange:$isTimeChange   focusUpdate$focusUpdate  type :$type"
+//            )
             /**
              * 由于速度大于7或等于7的时候 ,SDK会回调onDevCommonEvent方法,这个方法focusUpdate传入true,
              * 就会调用下面if方法,故下面clSetTime.setTimeInternal,由于之前的minute  sec 方法计算错误,现特殊处理minute  sec 计算
@@ -1926,14 +1928,33 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
                     else DirectionView.Direction.LEFT
                 )
             }
-            if (mRunningState == DevStatus.RUNNING.toInt() && currDevInfo.motorGear > 0) {
-                viewModel.playRotateAnimator(
-                    CofarSDK.devInfo().motorDirection.toInt(),
-                    binding.clCookDirection.binding.viewIcon
-                )
-            } else {
-                viewModel.pauseRotateAnimator(binding.clCookDirection.binding.viewIcon)
+
+            //兼容揉面,慢炖的方向转速UI是否暂停
+            if (modeType == WorkModes.KNEAD
+                || modeType == WorkModes.KNEAD_TOUGH
+                ||modeType == WorkModes.SLOW_COOKING
+                || modeType == WorkModes.SLOW_COOK){
+                if (CofarSDK.devInfo().isSpeedType&&mRunningState == DevStatus.RUNNING.toInt()){
+                    viewModel.playRotateAnimator(
+                        CofarSDK.devInfo().motorDirection.toInt(),
+                        binding.clCookDirection.binding.viewIcon
+                    )
+                }else{
+                    viewModel.pauseRotateAnimator(binding.clCookDirection.binding.viewIcon)
+                }
+
+            }else{
+                if (mRunningState == DevStatus.RUNNING.toInt() && currDevInfo.motorGear > 0) {
+                    viewModel.playRotateAnimator(
+                        CofarSDK.devInfo().motorDirection.toInt(),
+                        binding.clCookDirection.binding.viewIcon
+                    )
+                } else {
+                    viewModel.pauseRotateAnimator(binding.clCookDirection.binding.viewIcon)
+                }
             }
+
+
         }
     }
 
@@ -1961,45 +1982,9 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
 
         this.isMotorGearChange = isMotorGearChange
         binding.apply {
-            speedRingView.setCanTouch(isMotorGearChange)
-            //处理慢炖0挡速的时候,要显示设置当
-            /**
-             * 010D 033F
-             * 处理慢炖开5停25逻辑,因为SDK 停的时候 设置挡速为0,客户那边说不能显示0挡速估在这UI处理
-             *
-             * */
-
-            /**
-             * 各个平台的揉面 需要处理
-             *
-             * */
-            if (((modeType == WorkModes.KNEAD || modeType == WorkModes.KNEAD_TOUGH)&& currentMotorGer == 0)
-                ||((sn.startsWith("010") || sn.startsWith("033")) && (modeType == WorkModes.SLOW_COOKING || modeType == WorkModes.SLOW_COOK)&& currentMotorGer == 0) ) {
-                /**
-                 * 后台运行,点击回来,会导致挡速度,因为开5停25 的原因 currentMotorGer 是0
-                 * 客户那边说不能显示0挡速估在这UI处理,估另外处理后台运行,点击回来挡速
-                 * */
-
-                if (keep) {
-
-                    var current: Int = startMotorGer
-                    clCookSpeed.updateChangeValue(current.toString())
-                    speedRingView.setRange(minMotorGear, maxMotorGear)
-                    speedRingText.text = current.toString()
-                    if (!userChanging || focusUpdate) {
-                        speedRingView.updateProgress(current)
-                        speedRingText.text = current.toString()
-                    }
-
-                    return@apply
-                }
-                return@apply
-            }
-
             clCookSpeed.updateChangeValue(currentMotorGer.toString())
             speedRingView.setRange(minMotorGear, maxMotorGear)
-            speedRingText.text = currentMotorGer.toString()
-
+            speedRingView.setCanTouch(isMotorGearChange)
             if (!userChanging || focusUpdate) {
                 speedRingView.updateProgress(currentMotorGer)
                 speedRingText.text = currentMotorGer.toString()
@@ -2266,11 +2251,18 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
                 isClickType = 1
                 CofarSDK.cancel()
                 CofarSDK.devInfo().runningRecipeId = null
-                //处理010 033 后台后回来的显示转速问题
-                startMotorGer = if (CofarSDK.devInfo().motorGearBuffer.toInt()!=-1) CofarSDK.devInfo().motorGearBuffer.toInt() else if (CofarSDK.devInfo().motorGear.toInt()!=0) CofarSDK.devInfo().motorGear.toInt() else currentMotorGer
                 var startConfig = HashMap<String, Any>()
                 startConfig.put("stopTips", showStopTips)
+                //处理揉面0温度 会自动STOP问题
                 CofarSDK.startWithConfig(viewModel.modeType, startConfig)
+                if ((modeType == "KNEAD" || modeType == "KNEAD_TOUGH")&&currentTemp==0){
+                    //
+                    /**
+                     * 之前试过设置1度的时候,mcu没接收,估设置5度
+                     * 设置2度 但是目标温度是0度,但是没有自动暂停
+                     * */
+                    CofarSDK.cfgHeatNativeNoParse(2, HeatModes.PU_TONG)
+                }
                 whereIndex = -1
                 binding.clSetTime.stopAlphaAnim()
             }
@@ -2358,9 +2350,6 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         binding.clSetTime.stopAlphaAnim()
         //确认
         userChanging = false
-
-        //处理010 033 后台后回来的显示转速问题
-        startMotorGer = if (CofarSDK.devInfo().motorGearBuffer.toInt()!=-1) CofarSDK.devInfo().motorGearBuffer.toInt() else if (CofarSDK.devInfo().motorGear.toInt()!=0) CofarSDK.devInfo().motorGear.toInt() else currentMotorGer
         //配置
         CofarSDK.confirm()
         binding.btnCancel.visibility = View.GONE

+ 36 - 79
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt

@@ -111,7 +111,6 @@ class CookStepActivity : CookStepBaseActivity() {
     private var currentBgId = R.drawable.pot_clover_ele_unlock //0是开锁图,1上锁图
     private var isModelNum = ""
     private var modeType = ""
-    private var startMotorGer = -1
     private var keep: Boolean = false
     private val deviceStateDialog by lazy {
         CancelConfirmDialog()
@@ -147,10 +146,6 @@ class CookStepActivity : CookStepBaseActivity() {
         isModelNum = getModelNum()
 
         keep = intent.extras?.getBoolean("keep", false) ?: false
-        if (keep) {
-            startMotorGer = intent.extras?.getInt("startMotorGer", 0) ?: 0
-            currentMotorGer = startMotorGer
-        }
 
         if (baseSn.startsWith("011")) {
             binding.tvWeightTare.text = resources.getString(com.develop.common.R.string.tare_011)
@@ -525,7 +520,6 @@ class CookStepActivity : CookStepBaseActivity() {
                             modeName = this@CookStepActivity.binding.tvTitleStep.text.toString(),
                             detailJson = cookStepDetail ?: "",
                             sizelJson = portionSizelJson ?: "",
-                            startMotorGer = startMotorGer
 
                         )
                         FloatWindowManager.showStepFlowWindow(cookStepEvent)
@@ -688,10 +682,6 @@ class CookStepActivity : CookStepBaseActivity() {
             // 当前为手动步骤, 下一个步骤切换会设置为当前烹饪步骤
             pendingCookStep = true
         }
-       if (CofarSDK.devInfo().runningStatus != DevStatus.RUNNING){
-           keep = false
-           startMotorGer = -1
-       }
 
         viewModel.nextStep()
         binding.tvStepName.scrollTo(0, 0)
@@ -713,10 +703,6 @@ class CookStepActivity : CookStepBaseActivity() {
             // 当前为手动步骤, 上一个步骤切换会设置为当前烹饪步骤
             pendingCookStep = true
         }
-        if (CofarSDK.devInfo().runningStatus != DevStatus.RUNNING){
-            keep = false
-            startMotorGer = -1
-        }
         binding.tvStepName.scrollTo(0, 0)
         binding.tvStepMsg.scrollTo(0, 0)
         whereIndex = -1
@@ -831,7 +817,6 @@ class CookStepActivity : CookStepBaseActivity() {
             CofarSDK.resume()
         } else if (tag == BUTTON_TAG_CONFIRM) {
             //处理010 033 后台后回来的显示转速问题
-            startMotorGer = if (CofarSDK.devInfo().motorGearBuffer.toInt()!=-1) CofarSDK.devInfo().motorGearBuffer.toInt() else if (CofarSDK.devInfo().motorGear.toInt()!=0) CofarSDK.devInfo().motorGear.toInt() else currentMotorGer
            CofarSDK.confirm()
             binding.controller.btnStart.setGone()
             binding.controller.btnReset.setGone()
@@ -947,6 +932,7 @@ class CookStepActivity : CookStepBaseActivity() {
                 it.uiData.limitMinTemp = devInfo.mode.minTemp
                 it.uiData.limitMaxTime = devInfo.mode.maxTime
                 it.uiData.limitMinTime = devInfo.mode.minTime
+                it.uiData.mode = devInfo.mode.mode
 
             }
 
@@ -1078,7 +1064,6 @@ class CookStepActivity : CookStepBaseActivity() {
 
     private fun configDataAndStart(uiData: CookStepUiData) {
 
-        startMotorGer = uiData.currentSpeed
         CofarSDK.changeModeWithoutCfg(
             "$recipeNumber:${viewModel.stepIndex}",
             CofarSDK.devMode(viewModel.cookingStep?.workMode)
@@ -1092,7 +1077,11 @@ class CookStepActivity : CookStepBaseActivity() {
             }
         )
         CofarSDK.cfgMotorGear(uiData.currentSpeed.toByte())
-        CofarSDK.cfgHeat(uiData.targetTemp.toShort(), HeatModes.PU_TONG)
+        if ((modeType == "KNEAD" || modeType == "KNEAD_TOUGH")&&uiData.targetTemp==0){
+            CofarSDK.cfgHeatNativeNoParse(2, HeatModes.PU_TONG)
+        }else{
+            CofarSDK.cfgHeat(uiData.targetTemp.toShort(), HeatModes.PU_TONG)
+        }
         CofarSDK.cancel()
         if (isFromOverWrite) {
             //覆盖调用
@@ -1532,16 +1521,28 @@ class CookStepActivity : CookStepBaseActivity() {
             binding.controller.steamFireSmall.configNum(uiData.targetTemp);
         }
 
-        // 播放电机转动动画
-        if (viewModel.isCurrentOnCookingStep()
-            && uiData.runningStatus == DevStatus.RUNNING.toInt()
-            && uiData.currentSpeed > 0
-        ) {
-            playRotateAnimator(CofarSDK.devInfo().motorDirection.toInt()) //2023年06月28日20:58:13 旋转方向和实时固定
-        } else {
-            pauseRotateAnimator()
+        //电机转动动画特殊处理 慢炖 和 揉面
+        if (uiData.mode == WorkModes.KNEAD
+            || uiData.mode == WorkModes.KNEAD_TOUGH
+            ||uiData.mode == WorkModes.SLOW_COOKING
+            || uiData.mode == WorkModes.SLOW_COOK){
+            if (viewModel.isCurrentOnCookingStep() && uiData.runningStatus == DevStatus.RUNNING.toInt() && CofarSDK.devInfo().isSpeedType) {
+                playRotateAnimator(CofarSDK.devInfo().motorDirection.toInt())
+            } else {
+                pauseRotateAnimator()
+            }
+        }else{
+            // 播放电机转动动画
+            if (viewModel.isCurrentOnCookingStep() && uiData.runningStatus == DevStatus.RUNNING.toInt() && uiData.currentSpeed > 0) {
+                playRotateAnimator(CofarSDK.devInfo().motorDirection.toInt()) //2023年06月28日20:58:13 旋转方向和实时固定
+            } else {
+                pauseRotateAnimator()
+            }
         }
 
+
+
+
         // 时间设置
         val time = if (uiData.targetTimeBuffer != -1) {
             uiData.targetTimeBuffer
@@ -1577,64 +1578,22 @@ class CookStepActivity : CookStepBaseActivity() {
         binding.controller.tvCookingTempTarget.updateText("--${FoodSdkUtils.parseTemp(currentTemp.toShort())}°C--")            // 下面的TAB-目标运行温度
         binding.controller.tempRingView.updateProgress(
             FoodSdkUtils.parseTemp(currentTemp.toShort()).toInt()
-        )                                 // 圆环设置-当前运行温度
+        ) // 圆环设置-当前运行温度
         binding.controller.tvRingTempText.updateText("${FoodSdkUtils.parseTemp(currentTemp.toShort())}°C")                     // 圆环内的数字-当前运行温度
         binding.controller.tvTempValue.updateText("${uiData.currentTemp}°C")                       // 下面的TAB-当前运行温度
 
 
-        /**
-         * 慢炖速度兼容 010 033
-         * */
-        /**
-         * 010D 033F
-         * 处理慢炖开5停25逻辑,因为SDK 停的时候 设置挡速为0,客户那边说不能显示0挡速估在这UI处理
-         *
-         * */
-
-        /**
-         * 各个平台的揉面 需要处理
-         *
-         * */
-        if (((viewModel.displayStep()?.workMode == ModesType.KNEAD_TOUGH.name || viewModel.displayStep()?.workMode == ModesType.KNEAD.name)
-                    ||((baseSn.startsWith("010") || baseSn.startsWith("033")) && viewModel.displayStep()?.workMode == ModesType.SLOW_COOK.name)) && keep) {
-            if (CofarSDK.devInfo().runningStatus == DevStatus.PAUSE){
-                return
-            }
-              // 速度设置
-            binding.controller.speedRingView.updateProgress(startMotorGer)                               // 圆环设置-当前运行速度
-            binding.controller.tvSpeedText.updateText(startMotorGer.toString())                          // 圆环内的数字-当前运行速度
-            binding.controller.tvSetSpeed.updateText(startMotorGer.toString())                           // 下面的TAB-当前运行速度
-
-
+        // 速度设置
+        val speed = if (uiData.motorGearBuffer != -1) {
+            uiData.motorGearBuffer
         } else {
-
-            if (CofarSDK.devInfo().runningStatus == DevStatus.PAUSE){
-                return
-            }
-            // 速度设置
-            val speed =
-                if ((viewModel.displayStep()?.workMode == ModesType.KNEAD_TOUGH.name || viewModel.displayStep()?.workMode == ModesType.KNEAD.name)
-                            ||((baseSn.startsWith("010") || baseSn.startsWith("033")) && viewModel.displayStep()?.workMode == ModesType.SLOW_COOK.name))  {
-                    if (startMotorGer == -1) {
-                        if (uiData.motorGearBuffer != -1) {
-                            uiData.motorGearBuffer
-                        } else {
-                            uiData.currentSpeed
-                        }
-                    } else startMotorGer
-                } else {
-                    if (uiData.motorGearBuffer != -1) {
-                        uiData.motorGearBuffer
-                    } else {
-                        uiData.currentSpeed
-                    }
-                }
-            LogUtils.d("========${uiData.motorGearBuffer}===${uiData.currentSpeed}")
-            binding.controller.speedRingView.updateProgress(speed)                               // 圆环设置-当前运行速度
-            binding.controller.tvSpeedText.updateText(speed.toString())                          // 圆环内的数字-当前运行速度
-            binding.controller.tvSetSpeed.updateText(speed.toString())                           // 下面的TAB-当前运行速度
-
+            uiData.currentSpeed
         }
+        LogUtils.d("========${uiData.motorGearBuffer}===${uiData.currentSpeed}")
+        binding.controller.speedRingView.updateProgress(speed)                               // 圆环设置-当前运行速度
+        binding.controller.tvSpeedText.updateText(speed.toString())                          // 圆环内的数字-当前运行速度
+        binding.controller.tvSetSpeed.updateText(speed.toString())                           // 下面的TAB-当前运行速度
+
 
 
         // 喷水设置
@@ -1831,8 +1790,6 @@ class CookStepActivity : CookStepBaseActivity() {
                             modeName = this@CookStepActivity.binding.tvTitleStep.text.toString(),
                             detailJson = cookStepDetail ?: "",
                             sizelJson = portionSizelJson ?: "",
-                            startMotorGer = startMotorGer
-
                         )
                         FloatWindowManager.showStepFlowWindow(cookStepEvent)
                         getRecipe(number)

+ 4 - 0
BusinessStep/src/main/java/com/develop/step/ui/cook_step/model/CookStepUiData.kt

@@ -68,6 +68,8 @@ class CookStepUiData {
     var isMotorGearChange = false
     var isWaterGearChange = false
 
+    var mode = ""
+
     var isMotorDirectionChange = false
 
     fun applyRecipeSetting(data: DevRecipeCookingStep) {
@@ -92,6 +94,7 @@ class CookStepUiData {
             limitMinWaterGear = it.minWaterGear
             limitMaxWaterGear = it.maxWaterGear
             isMotorDirectionChange = it.isMotorDirectionChange
+            mode = it.mode
         }
         targetTime = getFixedValue(targetTime, limitMinTime, limitMaxTime)
         targetTemp = getFixedValue(targetTemp, limitMinTemp, limitMaxTemp)
@@ -136,6 +139,7 @@ class CookStepUiData {
             it.motorGearBuffer = motorGearBuffer
             it.waterGearBuffer = waterGearBuffer
             it.isMotorDirectionChange = isMotorDirectionChange
+            it.mode = mode
         }
         return uiData
     }

+ 93 - 26
BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt

@@ -30,6 +30,7 @@ import com.develop.common.dialog.DownloadFailedDialog
 import com.develop.common.dialog.ShareQRCodeDialog
 import com.develop.common.event.RefreshDataEvent
 import com.develop.common.event.RefreshLikeDataEvent
+import com.develop.common.food_sdk.FloatWindowManager
 import com.develop.common.tag.CURRENT_LANGUAGE
 import com.develop.common.tag.LOGIN_TAG
 import com.develop.common.tag.MODE_TYPE
@@ -40,6 +41,7 @@ import java.util.*
 import com.develop.step.R
 import com.develop.step.ui.recipes_detail.model.CookDetailInfo
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevModes
+import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevStatus
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.WorkModes
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.DevStatusEvent
 import com.kuyuntech.cofarcooking.device.sdk.util.core.CofarSDK
@@ -166,16 +168,16 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
             binding.tvMoreScore.visibility = View.GONE
             binding.viewMore.visibility = View.INVISIBLE
         }
-        if (sn.startsWith("011")){
+        if (sn.startsWith("011")) {
             binding.startLayout.visibility = View.INVISIBLE
             binding.viewMore.visibility = View.INVISIBLE
             binding.viewHide.visibility = View.INVISIBLE
             binding.tvEasy.visibility = View.VISIBLE
         }
-        if (sn.startsWith("017A") || sn.startsWith("062A")||sn.startsWith("029")) {
-            if (sn.startsWith("029")){
+        if (sn.startsWith("017A") || sn.startsWith("062A") || sn.startsWith("029")) {
+            if (sn.startsWith("029")) {
                 binding.viewIcon3.visibility = View.VISIBLE
-            }else{
+            } else {
                 binding.viewIcon3.visibility = View.INVISIBLE
             }
             binding.tvJarCount.visibility = View.VISIBLE
@@ -234,9 +236,9 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         if (cookSource == "local") {
             binding.tvDownload.setText(com.develop.common.R.string.start_cooking)
             if (isNightTheme()) {
-                if (getSN().startsWith("011")){
+                if (getSN().startsWith("011")) {
                     binding.viewProgress.setButtonColor(Color.parseColor("#D51317"))
-                }else{
+                } else {
                     binding.viewProgress.setButtonColor(Color.parseColor("#E03E52"))
                 }
             } else if (is062) {
@@ -274,10 +276,10 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         allTabViews.add(binding.ivTab2)
         allTabViews.add(binding.ivTab3)
         binding.ivTab4.setGone()
-        if (!sn.startsWith("033")){
+        if (!sn.startsWith("033")) {
             binding.ivTab5.setGone()
-        }else{
-         allTabViews.add(binding.ivTab5)
+        } else {
+            allTabViews.add(binding.ivTab5)
         }
         selectTab(TAB_SOURCE)
         if (is062) {
@@ -285,7 +287,7 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         } else {
             binding.tvMoreDelete.setGone()
         }
-        if (sn.startsWith("010F")||sn.startsWith("011")||sn.startsWith("033")) {
+        if (sn.startsWith("010F") || sn.startsWith("011") || sn.startsWith("033")) {
             binding.tvMoreShare.setGone()
         }
     }
@@ -310,22 +312,49 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         binding.clStartCooking.setOnClickListener {
             if (cookSource == "remote") {
                 if (viewModel.isDownloadSuccess()) {
+                    var step = 0
+                    if (FloatWindowManager.isStepShow()){
+                        var runingId = CofarSDK.devInfo().runningInstId
+                        if (runingId.contains(":")) {
+                            var (numbers, steps) = runingId.split(":")
+                            if (recipeNumber == numbers) {
+                                step = steps.toInt()
+                            }
+                        }
+                    }
+
+
+
                     navigateTo(Screens.Cook.COOK_STEP2) {
                         withString("number", recipeNumber)
                         withBoolean("isLike", isLike)
                         withString("cook_step_detail", cookDetailJson)
                         withString("portionSizelJson", portionSizelJson)
+                        withInt("stepIndex", step)
                     }
                 } else if (!viewModel.isDownloading()) {
                     binding.tvDownload.setText(com.develop.common.R.string.downloading)
                     viewModel.downloadRecipe()
                 }
             } else {
+                //处理后台点击
+                var step = 0
+                if (FloatWindowManager.isStepShow()){
+                    var runingId = CofarSDK.devInfo().runningInstId
+                    if (runingId.contains(":")) {
+                        var (numbers, steps) = runingId.split(":")
+                        if (recipeNumber == numbers) {
+                            step = steps.toInt()
+                        }
+                    }
+                }
+
                 navigateTo(Screens.Cook.COOK_STEP2) {
                     withString("number", recipeNumber)
                     withBoolean("isLike", isLike)
                     withString("cook_step_detail", cookDetailJson)
                     withString("portionSizelJson", portionSizelJson)
+                    withInt("stepIndex", step)
                 }
             }
         }
@@ -448,7 +477,7 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
          * */
         if (event.devInfo.resetZero.toInt() == 1 && event.devInfo.resetZero.toInt() != isResetZero) {
 
-            var modeName = if (sn.startsWith("011"))  {
+            var modeName = if (sn.startsWith("011")) {
                 resources.getString(com.develop.common.R.string.citrus_juicer_011)
             } else {
                 resources.getString(com.develop.common.R.string.citrus_juicer)
@@ -516,42 +545,74 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         binding.tvFoodName.movementMethod = ScrollingMovementMethod.getInstance()
         binding.tvFoodName.isScrollbarFadingEnabled = false
         val timeDescBuilder = StringBuilder()
-        timeDescBuilder.append(if (sn.startsWith("011")) " "+getString(com.develop.common.R.string.preparation_011)else getString(com.develop.common.R.string.preparation))
+        timeDescBuilder.append(
+            if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.preparation_011) else getString(
+                com.develop.common.R.string.preparation
+            )
+        )
         timeDescBuilder.append(" ")
         if (detail.recipe.prepareHours.isPositive()) {
             timeDescBuilder.append(detail.recipe.prepareHours)
-            timeDescBuilder.append(if (sn.startsWith("011"))" "+getString(com.develop.common.R.string.hours_011) else getString(com.develop.common.R.string.hours))
+            timeDescBuilder.append(
+                if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.hours_011) else getString(
+                    com.develop.common.R.string.hours
+                )
+            )
             timeDescBuilder.append(" ")
         }
         if (detail.recipe.prepareMinutes.isPositive()) {
             timeDescBuilder.append(detail.recipe.prepareMinutes)
-            timeDescBuilder.append(if (sn.startsWith("011")) " "+getString(com.develop.common.R.string.min_011) else getString(com.develop.common.R.string.min))
+            timeDescBuilder.append(
+                if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.min_011) else getString(
+                    com.develop.common.R.string.min
+                )
+            )
 
         }
         timeDescBuilder.append("\n")
-        timeDescBuilder.append(if (sn.startsWith("011")) getString(com.develop.common.R.string.ready_in_011)  else getString(com.develop.common.R.string.ready_in))
+        timeDescBuilder.append(
+            if (sn.startsWith("011")) getString(com.develop.common.R.string.ready_in_011) else getString(
+                com.develop.common.R.string.ready_in
+            )
+        )
         timeDescBuilder.append(" ")
         if (detail.recipe.makeHours.isPositive()) {
             timeDescBuilder.append(detail.recipe.makeHours)
-            timeDescBuilder.append(if (sn.startsWith("011"))" "+getString(com.develop.common.R.string.hours_011) else getString(com.develop.common.R.string.hours))
+            timeDescBuilder.append(
+                if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.hours_011) else getString(
+                    com.develop.common.R.string.hours
+                )
+            )
             timeDescBuilder.append(" ")
         }
         if (detail.recipe.makeMinutes.isPositive()) {
             timeDescBuilder.append(detail.recipe.makeMinutes)
-            timeDescBuilder.append(if (sn.startsWith("011")) " "+getString(com.develop.common.R.string.min_011) else getString(com.develop.common.R.string.min))
+            timeDescBuilder.append(
+                if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.min_011) else getString(
+                    com.develop.common.R.string.min
+                )
+            )
         }
-        if (sn.startsWith("033")){
+        if (sn.startsWith("033")) {
             timeDescBuilder.append("\n")
             timeDescBuilder.append(getString(com.develop.common.R.string.rest_time))
             timeDescBuilder.append(" ")
             if (detail.recipe.restHours.isPositive()) {
                 timeDescBuilder.append(detail.recipe.restHours)
-                timeDescBuilder.append(if (sn.startsWith("011"))" "+getString(com.develop.common.R.string.hours_011) else getString(com.develop.common.R.string.hours))
+                timeDescBuilder.append(
+                    if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.hours_011) else getString(
+                        com.develop.common.R.string.hours
+                    )
+                )
                 timeDescBuilder.append(" ")
             }
             if (detail.recipe.restMinutes.isPositive()) {
                 timeDescBuilder.append(detail.recipe.restMinutes)
-                timeDescBuilder.append(if (sn.startsWith("011")) " "+getString(com.develop.common.R.string.min_011) else getString(com.develop.common.R.string.min))
+                timeDescBuilder.append(
+                    if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.min_011) else getString(
+                        com.develop.common.R.string.min
+                    )
+                )
             }
 
 
@@ -560,15 +621,21 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
 
 
         binding.tvFoodTime.text = timeDescBuilder.toString()
-        if (binding.tvEasy.visibility == View.VISIBLE){
+        if (binding.tvEasy.visibility == View.VISIBLE) {
             detail.recipe.difficultyLevel?.let {
-                var  difficultyLevel = if (it.isEmpty()){
+                var difficultyLevel = if (it.isEmpty()) {
                     "easy"
-                }else{
+                } else {
                     it
                 }
 
-                binding.tvEasy.text = resources.getString(resources.getIdentifier(difficultyLevel, "string", this.packageName))
+                binding.tvEasy.text = resources.getString(
+                    resources.getIdentifier(
+                        difficultyLevel,
+                        "string",
+                        this.packageName
+                    )
+                )
             }
         }
 
@@ -633,9 +700,9 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
                 binding.tvDownload.setText(com.develop.common.R.string.start_cooking)
                 binding.viewProgress.setProgress(1f)
                 if (isNightTheme()) {
-                    if (getSN().startsWith("011")){
+                    if (getSN().startsWith("011")) {
                         binding.viewProgress.setButtonColor(Color.parseColor("#D51317"))
-                    }else{
+                    } else {
                         binding.viewProgress.setButtonColor(Color.parseColor("#E03E52"))
                     }
                 } else {

+ 2 - 1
libBase/src/main/java/com/develop/base/ext/GlobaExt.kt

@@ -212,7 +212,7 @@ fun getSN(): String {
 //     return "000A10390020123010170001"
 //     return "000A10390020123010190001"
 //        return "000A50670020123010190005"
-        return "010D10390020123010190001"
+//        return "010D10390020123010190001"
 //        return "010F10390020123010190001"
 //        return "011D10390020123010190001"
 //        return "011A10390020123010190001"
@@ -244,6 +244,7 @@ fun getSN(): String {
 //        return "062A20030020123010190004"
 //        return  "063A10390020123010190001"
 //        return  "063B10390020123010190001"
+        return "063B21050020123010190001"
 //        return  "049B10390020123010190001"
 //        return "000A50370020123010190017"
 

BIN
libThirdPart/libs/cofar-cooking-device-sdk-0.0.1-SNAPSHOT.jar