Browse Source

食谱步骤,SDK更新

zhangshenjie 8 months ago
parent
commit
8ffa12f1ff

+ 2 - 1
BusinessCommon/src/main/java/com/develop/common/data_repo/db/ModelKit.kt

@@ -60,7 +60,8 @@ enum class ModesType {
     KNEAD,
     STEAM,
     FOOD_PROCESSOR,
-    TURBO,AUTO_CLEAN,
+    TURBO,
+    AUTO_CLEAN,
     SM_TURBO,
     SM_WIGHT,
     CITRUS_JUICER,

+ 4 - 0
BusinessCommon/src/main/java/com/develop/common/utils/StringUtils.java

@@ -55,6 +55,10 @@ public class StringUtils {
         }
     }
 
+    public static boolean isEmpty(CharSequence cs) {
+        return cs == null || cs.length() == 0;
+    }
+
     public  static String getUpdateTime(){
         String path = "system/media/cofa_update_recipe.txt";
         StringBuilder content = new StringBuilder();

+ 11 - 4
BusinessSetting/src/main/java/com/develop/setting/ui/SettingMainActivity.kt

@@ -62,6 +62,7 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
     private var onIsResume = true
     private var isNetwork = false
     private var sn = getSN()
+    private var isNetWordLoading = true
     private val tuyaLoadingDialog = TuyaLoadingDialog()
     override fun createViewBinding(inflater: LayoutInflater): ActivitySettingMainBinding {
         return ActivitySettingMainBinding.inflate(layoutInflater)
@@ -188,14 +189,18 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
                         }
 
                         SettingType.TUYA -> {
-
+                            Log.e("TAG isTuya"," SettingType.TUYA SettingType.TUYA SettingType.TUYA")
                             if (CofarSDK.devInfo().status !== DevStatus.STOP.toInt()) {
                                 ToastUtils.showShort(getString(com.develop.common.R.string.change_lang_tips))
                             } else {
                                 if (getNetwork()) {
-                                    if(isTuya&&TuyaUtils.qrcodeUrl== ""){
+                                    if (isNetWordLoading){
+                                        showTuyaLoadingDialog()
+                                    } else if(isTuya&&TuyaUtils.qrcodeUrl== ""){
+                                        Log.e("TAG isTuya","isTuyaisTuyaisTuyaisTuya")
                                         showTuyaLoadingDialog()
-                                    }else{
+                                    } else{
+                                        Log.e("TAG TUYA","TUYATUYATUYATUYATUYATUYATUYA")
                                         navigateTo(Screens.Setting.TUYA)
                                     }
                                 } else {
@@ -295,6 +300,7 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
             return
         }
         this.apply {
+            isNetWordLoading = true
             scopeNetLife {
                 val result = Post<DevInfoResult>(Api.DEV_INFO) {
                     body = DeviceInfoBody.genDeviceInfoBody()
@@ -317,6 +323,7 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
                 TuyaUtils.mUid = it.uuid
                 TuyaUtils.initSDK(TopResumedAtyHolder.getCurrentActivity(), "1.0.0")
                 isTuya = true
+                isNetWordLoading = false
                 //涂鸦存值判断有涂鸦功能
                 MMkvUtils.save(ISTUYA, true)
                 tuyaEvent()
@@ -342,7 +349,7 @@ class SettingMainActivity : CommonBindingActivity<ActivitySettingMainBinding>()
             //涂鸦存值判断没有涂鸦功能
             MMkvUtils.save(ISTUYA, false)
         }
-
+        isNetWordLoading = false
         tuyaEvent()
 
 

+ 34 - 13
BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt

@@ -131,8 +131,8 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     private var sn = getSN()
     private var keep: Boolean = false
     private var mWeightTime: Long = 0  //防止客户重复点击称重
-
-
+    private var resetConfig = false
+    private var mResetPressedTime: Long = 0  //防止客户重复点击复位
     private var isWeightNum: Float = -50F
     private lateinit var baseMode: BaseDevMode
 
@@ -778,10 +778,19 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onDevStateEvent(event: DevStatusEvent) {
+
         if (!initModeData) {
             return
         }
 
+        if (resetConfig){
+            //兼容复位的一下子数据闪动问题
+            Handler().postDelayed({
+                resetConfig = false
+            },500)
+            return
+        }
+
         Log.d("TAG DevStateEvent", "event:" + event.devInfo.toString())
         //由于sdk没有判断E7到E16 需要判断运行和暂停过程中,设备发生故障弹出窗口告知故障
         if ((isClickType == DevStatus.RUNNING.toInt() || isClickType == DevStatus.PAUSE.toInt()
@@ -916,9 +925,9 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             currDevInfo.mode.apply {
 
 
-                //判断如果称重不更新其他UI
+                //判断称重点动不更新其他UI,因为点动需要12速度,点动一切换模式的话,转速一下子闪了12速度
                 if (!(viewModel.modeType == ModesType.WIGHT.name
-                            || viewModel.modeType == ModesType.SM_WIGHT.name)
+                            || viewModel.modeType == ModesType.SM_WIGHT.name )
                 ) {
 
 
@@ -1456,7 +1465,11 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
 
         } else {
             if (sn.startsWith("063")) {
-                binding.tvCount.setVisible()
+                if (binding.tvCount.text=="0"){
+                    binding.tvCount.setGone()
+                }else{
+                    binding.tvCount.setVisible()
+                }
                 binding.ivPotCover.setVisible()
             } else {
                 binding.tvCount.setGone()
@@ -1796,10 +1809,10 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
         this.minTemp = minTemp.toInt()
         this.isTempChange = isTempChange
 
-        Log.d(
-            "TAG updateTempUI",
-            "minTemp:$minTemp   maxTemp:$maxTemp  当前温度 currentTemp:$currentTemp    目标温度 targetTemp:$targetTemp  currDevInfo.temp:${currDevInfo.temp}  "
-        )
+//        Log.d(
+//            "TAG updateTempUI",
+//            "minTemp:$minTemp   maxTemp:$maxTemp  当前温度 currentTemp:$currentTemp    目标温度 targetTemp:$targetTemp  currDevInfo.temp:${currDevInfo.temp}  "
+//        )
 
 
         binding.apply {
@@ -1871,10 +1884,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 计算
@@ -2371,9 +2384,16 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     }
 
     private fun resetConfigClick() {
+        if (SystemClock.elapsedRealtime() - mResetPressedTime < 1000) {
+            return
+        }
+
+        //兼容复位一下子显示其他数据
+        resetConfig = true
         //确认
         userChanging = false
         initModeData(modeType)
+        mResetPressedTime = SystemClock.elapsedRealtime()
     }
 
     /**
@@ -2933,6 +2953,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
             }
 
             baseMode.defaultMotorGear = defMotorGear
+            currentMotorGer = defMotorGear
 //            if (isStop){
 ////                baseMode.isMotorGearChange = true
 //                CofarSDK.devInfo().motorGear = defMotorGear.toByte()

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

@@ -2,6 +2,7 @@ package com.develop.step.ui.cook_step
 
 import android.annotation.SuppressLint
 import android.os.Bundle
+import android.os.SystemClock
 import android.text.method.ScrollingMovementMethod
 import android.util.Log
 import android.view.KeyEvent
@@ -88,7 +89,7 @@ class CookStepActivity : CookStepBaseActivity() {
     private var isFromOverWrite = false
     private var configJson: CfConfig? = null
     private var isSelectMode: String? = ""
-
+    private var mResetPressedTime: Long = 0  //防止客户重复点击复位
     @JvmField
     @Autowired(name = "cook_step_detail")
     var cookStepDetail: String? = null
@@ -302,15 +303,17 @@ class CookStepActivity : CookStepBaseActivity() {
 
 
         binding.viewChangeCrush.setOnClickListener {
-            if (currModes != "WIGHT" && currModes != "WEIGH" && currModes != "WEIGHT") {
-                binding.viewWeightClose.setVisible()
-                binding.viewChangeCrush.visibility = View.INVISIBLE
-            }
             //此主题下,点餐是称重
             if (CofarSDK.devInfo().status == DevStatus.RUNNING.toInt()) {
                 Toast.makeText(this, "Step is running!", Toast.LENGTH_SHORT).show()
                 return@setOnClickListener
             }
+
+            if (currModes != "WIGHT" && currModes != "WEIGH" && currModes != "WEIGHT") {
+                binding.viewWeightClose.setVisible()
+                binding.viewChangeCrush.visibility = View.INVISIBLE
+            }
+
             val weightSelected = binding.viewChangeWeight.isSelected
             if (weightSelected) {
                 CofarSDK.stoptWeight()
@@ -495,6 +498,7 @@ class CookStepActivity : CookStepBaseActivity() {
                 } else {
                     binding.ivCookBg.setGone()
                 }
+
                 updateUiSetting(it)
                 playStepAudio(it.source.audioFilePath)
                 tryConsumePendingCookStep(it)
@@ -601,6 +605,12 @@ class CookStepActivity : CookStepBaseActivity() {
 
     private fun initStepData() {
         if (CofarSDK.devInfo().status == DevStatus.STOP.toInt()) {
+
+            //回到温度 初始化
+//            whereIndex = -1
+//            binding.controller.clSetTime.stopAlphaAnim()
+//            changeTempSettingPanel()
+
             configing = true;
             if (viewModel.allSteps.isNotEmpty()) {
                 viewModel.allSteps.get(viewModel.stepIndex)?.let {
@@ -825,10 +835,19 @@ class CookStepActivity : CookStepBaseActivity() {
             isClickType = 0
             CofarSDK.stop(true)
         } else if (tag == BUTTON_TAG_RESET) {
+            if (SystemClock.elapsedRealtime() - mResetPressedTime < 1000) {
+                return
+            }
+
             val current = viewModel.displayStep() ?: return
             val stepIndex = viewModel.allSteps.indexOf(current)
             viewModel.stepIndex = stepIndex
             initStepData()
+            whereIndex = -1
+            binding.controller.clSetTime.stopAlphaAnim()
+            changeTempSettingPanel()
+
+            mResetPressedTime = SystemClock.elapsedRealtime();
 
         } else if (tag == BUTTON_TAG_CANCEL) {
             CofarSDK.cancel()

+ 47 - 19
BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt

@@ -27,6 +27,7 @@ import com.develop.common.tag.CURRENT_USER_ID
 import com.develop.common.ui.CommonBVMActivity
 import com.develop.common.utils.Resource
 import com.develop.common.dialog.DownloadFailedDialog
+import com.develop.common.dialog.PlainDialogView
 import com.develop.common.dialog.ShareQRCodeDialog
 import com.develop.common.event.RefreshDataEvent
 import com.develop.common.event.RefreshLikeDataEvent
@@ -34,6 +35,7 @@ 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
+import com.develop.common.utils.StringUtils
 import com.develop.common.utils.setLeftDrawable
 import com.develop.step.databinding.ActivityCookDetailBinding
 import com.develop.step.viewmodel.CookDetailViewModel
@@ -92,6 +94,11 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         DownloadFailedDialog()
     }
 
+    private val loadingDialog by lazy {
+        PlainDialogView(this, com.develop.common.R.layout.dialog_wifi_loading)
+    }
+
+    private var isLoadingDialog = false //判断是否显示了loading,主要用在在线食谱
 
     override fun createViewModel(): CookDetailViewModel {
         return getViewModel(CookDetailViewModel::class.java)
@@ -117,6 +124,10 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         viewModel.getRecipeLiveData().observe(this) {
             cookDetailJson = Json.encodeToString(it)
             updateCookDetail(it)
+            if (cookSource == "remote" &&isLoadingDialog){
+                dismissloadingDialog()
+                startCookStep()
+            }
         }
         viewModel.getErrorCodeLiveData().observe(this) {
             if (it == CookDetailViewModel.ERR_NO_RECIPE_MATCH) {
@@ -312,26 +323,14 @@ 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)
+//                    recipeLiveData
+                    //处理在线食谱存在数据还没返回,但可以点击进去到食谱步骤
+                    if (StringUtils.isEmpty(cookDetailJson)){
+                        isLoadingDialog = true
+                        showloadingDialog()
+                        return@setOnClickListener
                     }
+                    startCookStep()
                 } else if (!viewModel.isDownloading()) {
                     binding.tvDownload.setText(com.develop.common.R.string.downloading)
                     viewModel.downloadRecipe()
@@ -467,6 +466,26 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         }
     }
 
+    private  fun  startCookStep(){
+        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)
+        }
+    }
+
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onDevStateEvent(event: DevStatusEvent) {
@@ -754,6 +773,15 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         dialog.showDialog(supportFragmentManager, "RecipeDeleteConfirmDialog")
     }
 
+    fun showloadingDialog(cancelable: Boolean = false) {
+        loadingDialog.showDialog(cancelable)
+    }
+
+    fun dismissloadingDialog() {
+        loadingDialog.hideDialog()
+    }
+
+
     @Subscribe
     fun refreshLikeRecipes(event: RefreshLikeDataEvent) {
         if (event.isLike) {

+ 5 - 2
BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookSourceActivity.kt

@@ -40,8 +40,11 @@ class CookSourceActivity:BaseBVMActivity<ActivityCookSourceBinding, CookDetailVi
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         ARouter.getInstance().inject(this)
-        val result: CookDetailInfo = Json.decodeFromString(cookStepDetail ?: "")
-        val result1: DevRecipePortionSize = Json.decodeFromString(portionSizelJson ?: "")
+        var str = cookStepDetail
+        var ssq = portionSizelJson
+
+        val result: CookDetailInfo = Json.decodeFromString(cookStepDetail ?: "{}")
+        val result1: DevRecipePortionSize = Json.decodeFromString(portionSizelJson ?: "{}")
         addFragment(R.id.fragment_container,CookDetailSourceFragment())
         binding.ivClose.post {
             viewModel.recipeLiveData.value = result

+ 1 - 1
app/src/brand011ETuya/res/values-pl/strings.xml

@@ -272,7 +272,7 @@
     <string name="air_fryer">Frytkownica beztłuszczowa</string>
     <string name="meat">Steki</string>
     <string name="fish">Ryba</string>
-    <string name="back">Wrócić</string>
+    <string name="back">COFNIJ</string>
     <string name="drumsticks">Pałki z kurczaka</string>
     <string name="chicken_wing">Skrzydełka z kurczaka</string>
     <string name="vegetable">Warzywa</string>

BIN
app/src/main/assets/skins/zeroOneOne.skin


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

@@ -220,7 +220,7 @@ fun getSN(): String {
 //        return "000A50370020123010190004"
 //        return "011A50370020123010190003"
 //        return "011A50370020123010190006"
-//        return "011E50370020123010190001"
+        return "011E50370020123010190001"
 //    return "007D20020020123010190001"
 //        return "036I21060020123010190007"
 //        return "030A10390020123010190004"
@@ -244,7 +244,7 @@ fun getSN(): String {
 //        return "062A20030020123010190004"
 //        return  "063A10390020123010190001"
 //        return  "063B10390020123010190001"
-        return "063B21050020123010190001"
+//        return "063B21050020123010190001"
 //        return  "049B10390020123010190001"
 //        return "000A50370020123010190017"
 

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