Browse Source

5037 空炸问题 称重问题,和添加空炸沉重模式

zhangshenjie 1 year ago
parent
commit
934882b81e

+ 8 - 0
BusinessAirFryer/src/main/assets/config_000.json

@@ -97,6 +97,14 @@
       "devMode": "AIR_FRYER",
       "listShow": true
     },
+    {
+      "type": "WIGHT",
+      "name": "wight",
+      "bg": "ic_mode_weight",
+      "icon": "ic_grid_weight",
+      "devMode": "AIR_FRYER",
+      "listShow": true
+    },
     {
       "type": "AF_BAKE",
       "name": "af_bake",

+ 0 - 1
BusinessAirFryer/src/main/assets/lang_config_030.json

@@ -119,7 +119,6 @@
       "showName": "Eesti keel",
       "show": false
     },
-    ,
     {
       "name": "Hungarian(匈牙利语)",
       "value": "HU",

+ 57 - 104
BusinessMain/src/main/java/com/develop/main/ui/ModeEntranceActivity.kt

@@ -12,6 +12,7 @@ import androidx.lifecycle.MutableLiveData
 import androidx.recyclerview.widget.RecyclerView
 import androidx.room.Update
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.develop.base.ext.getModelNum
 import com.develop.base.ext.getSN
 import com.develop.base.ext.isBrand011A
 import com.develop.base.ext.isBrand036I
@@ -48,12 +49,14 @@ import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevModes
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.WorkModes
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.DevCommonEvent
 import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.DevPromptEvent
+import com.kuyuntech.cofarcooking.device.sdk.eventbus.event.DevStatusEvent
 import com.kuyuntech.cofarcooking.device.sdk.util.core.CofarSDK
 import com.smarx.notchlib.utils.ScreenUtil
 import com.tuya.smartai.iot_sdk.Log
 import org.alee.component.skin.service.ThemeSkinService
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 
 @Route(path = Screens.Main.ENTRANCE_CHOSEN)
 class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>() {
@@ -69,11 +72,21 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
 
     private var title = ""
     private var isShowLoading = false
+    private var isDevModes = true
+    private var isModelNum = ""
+    private var devMode = ""
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         MMkvUtils.save(FIRST_IN, true)
         //设置键盘语言
-        SettingKeyBoardUtils.setTingKeyBoard(this,MMkvUtils.getString(CURRENT_LANGUAGE)?.lowercase() ?:"en")
+        SettingKeyBoardUtils.setTingKeyBoard(
+            this,
+            MMkvUtils.getString(CURRENT_LANGUAGE)?.lowercase() ?: "en"
+        )
+        devMode = CofarSDK.devInfo().devMode
+        isModelNum = getModelNum()
+
         prepareDataLiveData = FoodDataProvider.getPrepareLiveData() as MutableLiveData<Boolean>
         prepareDataLiveData.observe(this) {
             loadingDialog.removeSelf()
@@ -138,6 +151,7 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
 
                             EntranceType.manual_cooking -> {
                                 if (FoodDataProvider.checkDataExit()) {
+
                                     navigateTo(Screens.Cook.COOK_MODES) {
 
                                         if (DevModes.SOUP == CofarSDK.devInfo().devMode) {
@@ -264,96 +278,7 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
                     }
                 }
             }.models = DataFactory.get002DEntranceData()
-        }
-
-//        else if (getSN().startsWith("011A")) {
-//            binding.entranceRecycle.apply {
-//                grid(2)
-//                setup {
-//                    addType<EntranceData>(R.layout.item_entrance)
-//                    onBind {
-//                        val itemView = findView<EntranceItemView>(R.id.entrance_item)
-//                        val params = itemView.layoutParams as LayoutParams
-//                        params.height = (ScreenUtil.getScreenSize(this@ModeEntranceActivity)[1] / 2)
-//                        itemView.layoutParams = params
-//                        itemView.setEntranceData(getModel())
-//
-//                    }
-//                    R.id.entrance_item.onClick {
-//                        val clickModel = getModel<EntranceData>()
-//                        title = getString(clickModel.title2StrId)
-//                        when (clickModel.type) {
-//                            EntranceType.automatic_recipes -> {
-//                                if (FoodDataProvider.checkDataExit()) {
-//                                    val bundle = Bundle()
-//                                    bundle.putInt(MODE_ENTRANCE, Recipes)
-//                                    bundle.putInt(RECIPES_TYPE, LocalFood)
-//                                    bundle.putString(HOME_TITLE, title)
-//                                    navigateTo(Screens.Main.HOME) {
-//                                        with(bundle)
-//                                    }
-//                                } else {
-//                                    showLoading()
-//                                }
-//                            }
-//
-//                            EntranceType.automatic_programmes -> {
-//                                if (FoodDataProvider.checkDataExit()) {
-//                                    val bundle = Bundle()
-//                                    bundle.putInt(MODE_ENTRANCE, Mode)
-//                                    bundle.putString(HOME_TITLE, title)
-//                                    navigateTo(Screens.Main.HOME) {
-//                                        with(bundle)
-//                                    }
-//                                } else {
-//                                    showLoading()
-//                                }
-//
-//                            }
-//
-//                            EntranceType.manual_cooking -> {
-//                                if (FoodDataProvider.checkDataExit()) {
-//                                    navigateTo(Screens.Cook.COOK_MODES) {
-//                                        if (DevModes.SOUP == CofarSDK.devInfo().devMode) {
-//                                            val bundle = Bundle()
-//                                            bundle.putString(MODE_TYPE, WorkModes.ADAPTED_COOKING)
-//                                            bundle.putString(
-//                                                "mode_name",
-//                                                resources.getString(com.develop.common.R.string.adapted_cooking)
-//                                            )
-//                                            with(bundle)
-//                                        } else {
-//                                            val bundle = Bundle()
-//                                            bundle.putString(MODE_TYPE, WorkModes.AF_DIY)
-//                                            with(bundle)
-//                                        }
-//                                    }
-//                                } else {
-//                                    showLoading()
-//                                }
-//                            }
-//
-//                            EntranceType.download_new_recipes -> {
-//                                if (FoodDataProvider.checkDataExit()) {
-//                                    val bundle = Bundle()
-//                                    bundle.putInt(MODE_ENTRANCE, Recipes)
-//                                    bundle.putInt(RECIPES_TYPE, NetFood)
-//                                    bundle.putString(HOME_TITLE, title)
-//                                    navigateTo(Screens.Main.HOME) {
-//                                        with(bundle)
-//                                    }
-//                                } else {
-//                                    showLoading()
-//                                }
-//
-//                            }
-//                        }
-//                    }
-//                }
-//            }.models  = DataFactory.get011AEntranceData()
-//        }
-//
-        else {
+        } else {
             binding.entranceRecycle.apply {
                 grid(2)
                 setup {
@@ -400,8 +325,9 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
 
                             EntranceType.manual_cooking -> {
                                 if (FoodDataProvider.checkDataExit()) {
+
                                     navigateTo(Screens.Cook.COOK_MODES) {
-                                        if (DevModes.SOUP == CofarSDK.devInfo().devMode) {
+                                        if (CofarSDK.devInfo().devMode == DevModes.SOUP) {
                                             val bundle = Bundle()
                                             bundle.putString(MODE_TYPE, WorkModes.ADAPTED_COOKING)
                                             bundle.putString(
@@ -439,9 +365,9 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
                 }
             }.models =
                 if (isBrand036I()) DataFactory.get036IEntranceData()
-                else if (isBrand011A())DataFactory.get011A5037EntranceData()
-                else if (isBrand054A())DataFactory.get054AEntranceData()
-                else if (getSN().startsWith("045"))DataFactory.get045AEntranceData()
+                else if (isBrand011A()) DataFactory.get011A5037EntranceData()
+                else if (isBrand054A()) DataFactory.get054AEntranceData()
+                else if (getSN().startsWith("045")) DataFactory.get045AEntranceData()
                 else DataFactory.getEntranceData()
         }
 
@@ -505,7 +431,7 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
             }
         }
 
-            //2024.01.04 客户需要把法语的字体变回来
+        //2024.01.04 客户需要把法语的字体变回来
 //        if (isFrLanguage()) {
 //            binding.tvFavourite.textSize = HomeActivity.dp20
 //            binding.tvSetting.textSize = HomeActivity.dp20
@@ -515,8 +441,8 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
 //        }
 
         //032客户需要隐藏登录和注册
-        if (getSN().startsWith("032D")||getSN().startsWith("011A")){
-            binding.tvUserName.visibility  = View.GONE
+        if (getSN().startsWith("032D") || getSN().startsWith("011A")) {
+            binding.tvUserName.visibility = View.GONE
             //头像需要占位显示
             binding.ivAvatar.visibility = View.INVISIBLE
         }
@@ -524,6 +450,7 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
     }
 
     override fun onResume() {
+        devMode = CofarSDK.devInfo().devMode
         super.onResume()
         AppVersionUtil.checkRecipeUpdate(false)
 //        UpdateUtil.checkApkVersion(false)
@@ -581,15 +508,41 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
         loadingDialog.showDialog(supportFragmentManager, "Loading")
     }
 
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onDevStateEvent(event: DevStatusEvent) {
+        Log.e("TAG devMode","devMode :$devMode")
+        ////devInfo.potStatus 0是有锅  1是没锅
+        //当没有锅得时候,默认是汤锅模式 //切当前Fragment可见状态 // 只针对5037的处理
+        if (isModelNum == "5037" && event.devInfo.potStatus.toInt() == 1) {
+            // isDevModes 避免重复刷新
+            if (isDevModes && devMode != DevModes.SOUP) {
+                isDevModes = false
+                CofarSDK.changeDevModeFocus(DevModes.SOUP)
+            }
+        } else if (isModelNum == "5037" && event.devInfo.potStatus.toInt() == 0) {
+            /**
+             * 由于客户无锅状态下是默认汤锅列表,但是在一进来是空炸锅,拿出来(无锅的时候已经换了汤锅模式),
+             * 但重新放空炸锅,onDevModeChange 是不会回调的,固需要用potCoverType 锅盖协议来判断是否需要重新换模式
+             * */
+            //potCoverType 0 是汤锅 1是空炸
+            if (event.devInfo.potCloverType.toInt() == 1 && devMode == DevModes.SOUP) {
+                CofarSDK.changeDevModeFocus(DevModes.AIR_FRYER)
+            } else if (event.devInfo.potCloverType.toInt() == 0 && devMode == DevModes.AIR_FRYER) {
+                CofarSDK.changeDevModeFocus(DevModes.SOUP)
+            }
+            isDevModes = true
+
+        }
+
+
+    }
+
     @Subscribe
     fun onDevModeChange(event: DevCommonEvent) {
         //在当前页面,换了模式以后 重新启动
-//        if (this == TopResumedAtyHolder.getCurrentActivity() && CommonEventTypes.DEV_MODE_CHANGE == event.type) {
-//            val intent =
-//                Intent(this, ModeEntranceActivity::class.java)
-//            intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
-//            this.startActivity(intent)
-//        }
+        if (CommonEventTypes.DEV_MODE_CHANGE == event.type) {
+            devMode = CofarSDK.devInfo().devMode
+        }
 
 
     }

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

@@ -53,7 +53,7 @@ import kotlin.math.abs
 /**
  * 烹饪模式入口
  */
-class ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>() {
+class  ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>() {
     private var isRegister = true
     private var isGrid = false
 
@@ -263,22 +263,27 @@ class ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>() {
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onDevStateEvent(event: DevStatusEvent) {
-        event.devInfo.potCloverType
         //当没有锅得时候,默认是汤锅模式 //切当前Fragment可见状态 // 只针对5037的处理
-        if (isModelNum == "5037" && isVisible && event.devInfo.potStatus.toInt() == 1) {
+        if (isModelNum == "5037" && isVisible&& isResumed && event.devInfo.potStatus.toInt() == 1) {
+            Log.d("TAG ModeChange","onDevStateEventonDevStateEventonDevStateEvent")
+
             // isDevModes 避免重复刷新
             if (isDevModes) {
                 isDevModes = false
                 CofarSDK.changeDevModeFocus(DevModes.SOUP)
             }
-        } else if (isModelNum == "5037" && isVisible && event.devInfo.potStatus.toInt() == 0) {
+        } else if (isModelNum == "5037" && isVisible&& isResumed && event.devInfo.potStatus.toInt() == 0) {
             /**
              * 由于客户无锅状态下是默认汤锅列表,但是在一进来是空炸锅,拿出来(无锅的时候已经换了汤锅模式),
              * 但重新放空炸锅,onDevModeChange 是不会回调的,固需要用potCoverType 锅盖协议来判断是否需要重新换模式
              * */
             //potCoverType 0 是汤锅 1是空炸
             if (event.devInfo.potCloverType.toInt() == 1 && devMode == DevModes.SOUP) {
+                Log.d("TAG ModeChange","ModeChangeModeChangeModeChange")
                 CofarSDK.changeDevModeFocus(DevModes.AIR_FRYER)
+            }else if (event.devInfo.potCloverType.toInt() == 0 && devMode == DevModes.AIR_FRYER){
+                Log.d("TAG ModeChange","ModeChangeModeChangeModeChange2222222222")
+                CofarSDK.changeDevModeFocus(DevModes.SOUP)
             }
             isDevModes = true
 

+ 115 - 20
BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

@@ -17,6 +17,7 @@ import androidx.core.graphics.drawable.DrawableCompat
 import androidx.databinding.ViewDataBinding
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.bumptech.glide.Glide
+import com.develop.base.ext.getModelNum
 import com.develop.base.ext.getSN
 import com.develop.base.ext.isNightTheme
 import com.develop.base.ext.navigateTo
@@ -112,8 +113,13 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     private var potCloverInterval: Interval? = null
     private var workMode: WorkMode? = null
     private var sdkDevMode: String = ""
-    private var isClickType  = 0
-    private val deviceStateDialog by  lazy {
+    private var isClickType = 0
+
+    private var isDevModes = true
+    private var isModelNum = ""
+    private var devMode = ""
+
+    private val deviceStateDialog by lazy {
         CancelConfirmDialog()
     }
 
@@ -206,6 +212,9 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         hasShowScreenSaver = true
         configLock = true
 
+        devMode = CofarSDK.devInfo().devMode
+        isModelNum = getModelNum()
+
         if (!isNightTheme()) {
             binding.ivBack.drawable?.apply {
                 DrawableCompat.setTint(
@@ -678,19 +687,54 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         if (!initModeData) {
             return
         }
-        Log.d("TAG dddddd", "event:" + event.devInfo.toString())
+
+        Log.d("TAG DevStateEvent","event:" + event.devInfo.toString())
         //由于sdk没有判断E7到E16 需要判断运行和暂停过程中,设备发生故障弹出窗口告知故障
-        if (isClickType == DevStatus.RUNNING.toInt()||isClickType == DevStatus.PAUSE.toInt()){
-            if (ConfigUtils.getBooleanErrCode(event.devInfo.errCode.toInt())){
+        if ((isClickType == DevStatus.RUNNING.toInt() || isClickType == DevStatus.PAUSE.toInt()
+                    || isClickType == DevStatus.STOP.toInt())&& viewModel.modeType!=ModesType.WIGHT.name) {
+
+            if (ConfigUtils.getBooleanErrCode(event.devInfo.errCode.toInt())&&event.devInfo.devMode==DevModes.AIR_FRYER) {
                 showErrCodeDialog(event.devInfo.errCode.toInt())
                 isClickType = event.devInfo.status
                 return
             }
         }
 
+        ////devInfo.potStatus 0是有锅  1是没锅
+        //处理换锅问题
+        if (isModelNum == "5037" && event.devInfo.potStatus.toInt() == 1) {
+            Log.d("TAG ModeChange","onDevStateEventonDevStateEventonDevStateEvent")
+
+                // isDevModes 避免重复刷新
+//            if (isDevModes && workMode?.devMode!=DevModes.SOUP) {
+//                isDevModes = false
+//                CofarSDK.changeDevModeFocus(DevModes.SOUP)
+//                return
+//            }
+        } else if (isModelNum == "5037"  && event.devInfo.potStatus.toInt() == 0 && workMode?.type != "WIGHT") {
+            /**
+             * 由于客户无锅状态下是默认汤锅列表,但是在一进来是空炸锅,拿出来(无锅的时候已经换了汤锅模式),
+             * 但重新放空炸锅,onDevModeChange 是不会回调的,固需要用potCoverType 锅盖协议来判断是否需要重新换模式
+             * */
+            //potCoverType 0 是汤锅 1是空炸
+            if (event.devInfo.potCloverType.toInt() == 1 && devMode == DevModes.SOUP) {
+                Log.d("TAG ModeChange","ModeChangeModeChangeModeChange")
+                CofarSDK.changeDevModeFocus(DevModes.AIR_FRYER)
+                return
+            }else if (event.devInfo.potCloverType.toInt() == 0 && devMode == DevModes.AIR_FRYER){
+                Log.d("TAG ModeChange","ModeChangeModeChangeModeChange2222222222")
+                CofarSDK.changeDevModeFocus(DevModes.SOUP)
+                return
+            }
+            isDevModes = true
+
+        }
+
+
+
         //处理中途换换锅问题
         if (sdkDevMode != event.devInfo.devMode) {
-           return
+            return
         }
 
         ThreadUtils.runOnMainThread {
@@ -1593,10 +1637,10 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     ) {
 
 
-        Log.d(
-            "TAG updateTimeUI",
-            "minTime:$minTime   maxTime:$maxTime  remainTime:$remainTime  targetTime:$targetTime  isTimeChange:$isTimeChange   focusUpdate$focusUpdate  type :$type"
-        )
+//        Log.d(
+//            "TAG updateTimeUI",
+//            "minTime:$minTime   maxTime:$maxTime  remainTime:$remainTime  targetTime:$targetTime  isTimeChange:$isTimeChange   focusUpdate$focusUpdate  type :$type"
+//        )
 
         this.isTimeChange = isTimeChange
         this.maxTime = maxTime.toLong()
@@ -1862,12 +1906,21 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     private fun startClick(showStopTips: Boolean = true) {
         var devInfo = CofarSDK.devInfo()
         //判断是否是空炸错误,由于汤锅错误SDK 已经做了
-        if (ConfigUtils.getBooleanErrCode(devInfo.errCode.toInt())){
+        if (ConfigUtils.getBooleanErrCode(devInfo.errCode.toInt())&&devInfo.devMode==DevModes.AIR_FRYER) {
+            lastMsg=""
             showErrCodeDialog(devInfo.errCode.toInt())
-        }else{
-            if (CofarSDK.devInfo().potCloverStatus.toInt() == 1) {
+        } else {
+
+            //devInfo.potStatus 0是有锅  1是没锅
+//              //devInfo.potCloverStatus 0是合盖,1是没盒盖
+//            if (CofarSDK.devInfo().potCloverStatus.toInt() == 1) {
+//                showPotCloverDialog()
+//            }
+            if (CofarSDK.devInfo().potStatus.toInt() == 1) {
+                showErrMsgDialog("mei_fang_guo_yi_chan")
+            } else if (CofarSDK.devInfo().potStatus.toInt() == 0 && CofarSDK.devInfo().potCloverStatus.toInt() == 1) {
                 showPotCloverDialog()
-            }else if (mRunningInstId != mSettingInstId) {
+            } else if (mRunningInstId != mSettingInstId) {
                 overrideModeDialog.showDialog(supportFragmentManager, "overrideModeDialog")
                 overrideModeDialog.onConfirmClick()
             } else {
@@ -1888,6 +1941,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         val warnDialog = PotCoverUnlockedDialog()
         warnDialog.showDialog(supportFragmentManager, "PotCloverDialog")
     }
+
     /**
      * 点击恢复操作
      */
@@ -2270,9 +2324,10 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             binding.ivEggs.visibility = View.GONE
         }
     }
-    private fun  showErrCodeDialog(code:Int){
-        var errCodeStr =  ConfigUtils.getErrCodeStr(this,code)
-        if (errCodeStr.isNullOrEmpty()){
+
+    private fun showErrCodeDialog(code: Int) {
+        var errCodeStr = ConfigUtils.getErrCodeStr(this, code)
+        if (errCodeStr.isNullOrEmpty() || lastMsg == "e" + code + "_errCode") {
             return
         }
         lastMsg = "e" + code + "_errCode"
@@ -2281,6 +2336,35 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         deviceStateDialog.confirmStr = getString(com.develop.common.R.string.confirm)
         deviceStateDialog.title = errCodeStr
         deviceStateDialog.showDialog(supportFragmentManager, "errCodeCancelDialog")
+        deviceStateDialog.onDialogClickListener =
+            object : CancelConfirmDialog.OnDialogClickListener {
+                override fun onConfirm() {
+                    deviceStateDialog.removeSelf();
+//                    lastMsg = "";
+                }
+
+                override fun onCancel() {
+                    deviceStateDialog.removeSelf();
+//                    lastMsg = "";
+                }
+
+            }
+    }
+
+    private fun showErrMsgDialog(msg: String) {
+        if (lastMsg == msg) {
+            return
+        }
+        lastMsg = msg
+        deviceStateDialog.showCancel = false
+        deviceStateDialog.showConfirm = true
+        deviceStateDialog.confirmStr = getString(com.develop.common.R.string.confirm)
+        deviceStateDialog.title = resources.getString(
+            resources.getIdentifier(
+                lastMsg, "string", this.packageName
+            )
+        )
+        deviceStateDialog.showDialog(supportFragmentManager, "errCodeCancelDialog")
         deviceStateDialog.onDialogClickListener =
             object : CancelConfirmDialog.OnDialogClickListener {
                 override fun onConfirm() {
@@ -2301,8 +2385,14 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     fun onDevModeChange(event: DevCommonEvent) {
         //在当前页面,换了模式以后 重新启动
         if (CommonEventTypes.DEV_MODE_CHANGE == event.type) {
+            Log.d("TAG ModeChange","workMode?.devMode :${workMode?.devMode}")
             //针对DIY处理
-            if (lastModeType== WorkModes.ADAPTED_COOKING||lastModeType==WorkModes.AF_DIY){
+            if (workMode?.devMode!=CofarSDK.devInfo().devMode &&(lastModeType == WorkModes.ADAPTED_COOKING || lastModeType == WorkModes.AF_DIY)) {
+//                isWidget = false
+//                viewModel.stopTurbo()
+//                viewModel.cancelAnimator()
+//                hasShowScreenSaver = false
+
                 navigateTo(Screens.Cook.COOK_MODES) {
                     if (DevModes.SOUP == CofarSDK.devInfo().devMode) {
                         val bundle = Bundle()
@@ -2319,8 +2409,13 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
                     }
                 }
                 finish()
-            }else{
-                finish()
+            } else {
+                if (workMode?.devMode==CofarSDK.devInfo().devMode || workMode?.type == "WIGHT" ){
+                    return
+                }else{
+                    finish()
+
+                }
             }
         }
     }

+ 64 - 5
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt

@@ -12,6 +12,7 @@ import com.develop.base.ext.load
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.blankj.utilcode.util.LogUtils
 import com.develop.base.ext.background_drawable
+import com.develop.base.ext.getModelNum
 import com.develop.base.ext.getSN
 import com.develop.base.ext.isNightTheme
 import com.develop.base.ext.navigateTo
@@ -94,6 +95,11 @@ class CookStepActivity : CookStepBaseActivity() {
     private var potCloverEleStatus = 0
     private var photoPath: String? = ""
     private var currentBgId = R.drawable.pot_clover_ele_unlock //0是开锁图,1上锁图
+    private var isModelNum = ""
+    private val deviceStateDialog by lazy {
+        CancelConfirmDialog()
+    }
+
     private fun turnDevModeUI(devMode: String?) {
         isSelectMode = devMode
 
@@ -123,7 +129,7 @@ class CookStepActivity : CookStepBaseActivity() {
 
         //做食谱步骤判断
         configJson = ConfigUtils.loadConfig()
-
+        isModelNum = getModelNum()
         if (!isNightTheme()) {
             binding.viewChangeCrush.setBgColor(R.color.view_change)
             binding.viewChangeWeight.setBgColor(R.color.view_change)
@@ -650,7 +656,7 @@ class CookStepActivity : CookStepBaseActivity() {
 
             isClickType = 1
             //判断是否是空炸错误,由于汤锅错误SDK 已经做了 ;
-            if (ConfigUtils.getBooleanErrCode(CofarSDK.devInfo().errCode.toInt())) {
+            if (ConfigUtils.getBooleanErrCode(CofarSDK.devInfo().errCode.toInt())&&CofarSDK.devInfo().devMode==DevModes.AIR_FRYER) {
                 showErrCodeDialog(CofarSDK.devInfo().errCode.toInt())
             } else {
                 if (viewModel.allSteps.size == 0) {
@@ -669,7 +675,9 @@ class CookStepActivity : CookStepBaseActivity() {
                         wrokDevMode
                     )
                 } else {
-                    if (CofarSDK.devInfo().potCloverStatus.toInt() == 1) {
+                    if (CofarSDK.devInfo().potStatus.toInt() == 1) {
+                        showErrMsgDialog("mei_fang_guo_yi_chan")
+                    } else if (CofarSDK.devInfo().potCloverStatus.toInt() == 1) {
                         showPotCloverDialog()
                     } else if (CofarSDK.devInfo().runningInstId != "${recipeNumber}:${viewModel.stepIndex}") {
                         overrideModeDialog.showDialog(supportFragmentManager, "overrideModeDialog")
@@ -881,7 +889,34 @@ class CookStepActivity : CookStepBaseActivity() {
             binding.weightView.setWeightNumber(uiData.weightNum.toFloat())
         }
     }
+    private fun showErrMsgDialog(msg: String) {
+        if (lastMsg == msg) {
+            return
+        }
+        lastMsg = msg
+        deviceStateDialog.showCancel = false
+        deviceStateDialog.showConfirm = true
+        deviceStateDialog.confirmStr = getString(com.develop.common.R.string.confirm)
+        deviceStateDialog.title = resources.getString(
+            resources.getIdentifier(
+                lastMsg, "string", this.packageName
+            )
+        )
+        deviceStateDialog.showDialog(supportFragmentManager, "errCodeCancelDialog")
+        deviceStateDialog.onDialogClickListener =
+            object : CancelConfirmDialog.OnDialogClickListener {
+                override fun onConfirm() {
+                    deviceStateDialog.removeSelf();
+                    lastMsg = "";
+                }
 
+                override fun onCancel() {
+                    deviceStateDialog.removeSelf();
+                    lastMsg = "";
+                }
+
+            }
+    }
 
     private fun showPotCloverDialog() {
         val warnDialog = PotCoverUnlockedDialog()
@@ -1471,13 +1506,37 @@ class CookStepActivity : CookStepBaseActivity() {
         Log.d("TAG dddddd", "cook event:" + event.devInfo.toString())
         //由于sdk没有判断E7到E16 需要判断运行和暂停过程中,设备发生故障弹出窗口告知故障
         if (isClickType == DevStatus.RUNNING.toInt() || isClickType == DevStatus.PAUSE.toInt()) {
-            if (ConfigUtils.getBooleanErrCode(event.devInfo.errCode.toInt())) {
+            if (ConfigUtils.getBooleanErrCode(event.devInfo.errCode.toInt())&&event.devInfo.devMode==DevModes.AIR_FRYER) {
                 showErrCodeDialog(event.devInfo.errCode.toInt())
                 isClickType = event.devInfo.status
                 return
             }
         }
 
+        ////devInfo.potStatus 0是有锅  1是没锅
+        //处理换锅问题   viewModel.allSteps.get(viewModel.stepIndex)?.isWeightMode() 判断是否是称重
+        if (isModelNum == "5037" &&
+            event.devInfo.potStatus.toInt() == 0 &&
+            viewModel.allSteps.get(viewModel.stepIndex)?.isWeightMode() == false
+        ) {
+            /**
+             * 由于客户无锅状态下是默认汤锅列表,但是在一进来是空炸锅,拿出来(无锅的时候已经换了汤锅模式),
+             * 但重新放空炸锅,onDevModeChange 是不会回调的,固需要用potCoverType 锅盖协议来判断是否需要重新换模式
+             * */
+            //potCoverType 0 是汤锅 1是空炸
+            if (event.devInfo.potCloverType.toInt() == 1 && CofarSDK.devInfo().devMode == DevModes.SOUP) {
+                CofarSDK.changeDevModeFocus(DevModes.AIR_FRYER)
+                return
+            } else if (event.devInfo.potCloverType.toInt() == 0 && CofarSDK.devInfo().devMode == DevModes.AIR_FRYER) {
+                CofarSDK.changeDevModeFocus(DevModes.SOUP)
+                return
+            }
+
+        }
+
+
+
+
         ThreadUtils.runOnMainThread {
             runningState = event.devInfo.status.toInt()
             onDevStateChange(event.devInfo)
@@ -1523,7 +1582,7 @@ class CookStepActivity : CookStepBaseActivity() {
                     }
                 }
             } else {
-                //处理正常步骤,但客户换锅的情况下
+                //处理正常步骤,但客户换错误的锅情况下
                 GlobalDevEvent.msgDialog.let {
                     if (!it.isShow) {
                         GlobalDevEvent.msgDilaog(

+ 12 - 7
app/build.gradle

@@ -13,8 +13,8 @@ ext{
     versionCode=Integer.parseInt(new SimpleDateFormat("yyMMddHH").format(new Date()) + 1)
 //    versionCode=230617180
 //    brandCode="036I"
-    brandCode="030A"
-    model="1039"
+    brandCode="000A"
+    model="5037"
 
 }
 
@@ -69,10 +69,10 @@ android {
             applicationId "com.develop.foodcooking"
             buildConfigField("String", "UpdatePlatform", "\"normal\"")
             resValue("string", "app_theme", "@style/SplashTheme")
-            buildConfigField("String", "model", "\"1039\"")
+            buildConfigField("String", "model", "\"5037\"")
             buildConfigField("String", "brandCode", "\"000A\"")
-            //versionCode 1.01 指向bug修复,2.01指向功能变更
-            buildConfigField("String", "versionCode", "\"1.01\"")
+            //appCode 1.01 指向bug修复,2.01指向功能变更
+            buildConfigField("String", "appCode", "\"1.01\"")
 //            buildConfigField("String", "versionCode", "\"2.01\"")
         }
 
@@ -155,6 +155,8 @@ android {
             applicationId "com.develop.foodcooking"
             buildConfigField("String", "UpdatePlatform", "\"normal\"")
             resValue("string", "app_theme", "@style/SplashTheme")
+            buildConfigField("String", "model", "\"1039\"")
+            buildConfigField("String", "brandCode", "\"000A\"")
         }
 
         brand010D {
@@ -262,9 +264,12 @@ android {
 //            buildConfigField("String", "brandCode", "\"011A\"")
 
 
-            buildConfigField("String", "UpdatePlatform", "\"normal\"")
             resValue("string", "app_theme", "@style/SplashTheme")
-            buildConfigField("String", "model", "\"1039\"")
+            buildConfigField("String", "UpdatePlatform", "\"normal\"")
+            buildConfigField("String", "model", "\"5037\"")
+            //versionCode 1.01 指向bug修复,2.01指向功能变更
+            buildConfigField("String", "appCode", "\"1.01\"")
+//            buildConfigField("String", "versionCode", "\"2.01\"")
         }
     }
 

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

@@ -218,8 +218,8 @@ fun getSN(): String {
 //    return "010D10390020123010190001"
 //    return "000A10390020123010190009"
 //    return  "032D21060020123010190001"
-//        return "000A50370020123010190011"
-    return  "030A10390020123010190002"
+        return "000A50370020123010190011"
+//    return  "030A10390020123010190002"
 //        return "029C21010020123010190001"
     } else {
         //通过反射获取sn号