Browse Source

011D 涂鸦云 bug修改

zhangshenjie 2 months ago
parent
commit
e0df382580

+ 35 - 29
BusinessMain/src/main/java/com/develop/main/ui/HomeActivity.kt

@@ -154,9 +154,14 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
     }
 
     private fun initCallbackAndListener() {
-        if (getSN().startsWith("011")){
+        if (baseSn.startsWith("011")) {
             binding.homeImage.load(com.develop.common.R.drawable.home_bg_011)
-        }else{
+            if (baseSn.startsWith("011D")) {
+                //由于涂鸦云食谱没有历史功能,估隐藏
+                binding.historyLayout.setGone()
+            }
+
+        } else {
             binding.homeImage.setGone()
         }
 
@@ -192,17 +197,18 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
                             viewModel.recipesType = RecipesType.ONLINE
                             binding.functionTopBar.setHomeOrBack(HomeOrBack.Back)
                         } else {
-                            if (viewModel.isFromDownloadNewRecipesEntrance){
-                                viewModel.recipesType =  RecipesType.ONLINE
+                            if (viewModel.isFromDownloadNewRecipesEntrance) {
+                                viewModel.recipesType = RecipesType.ONLINE
 
-                            }else{
-                                viewModel.recipesType =  RecipesType.LOCAL
+                            } else {
+                                viewModel.recipesType = RecipesType.LOCAL
 
                             }
                             binding.functionTopBar.setHomeOrBack(HomeOrBack.Home)
                         }
                         EventBus.getDefault().post(HomeBackClickEvent(true))
                         viewModel.apply {
+                            searchLiveData.postValue(true)
                             refreshRecipesLiveData.postValue(true)
                             isSearch = false
                         }
@@ -257,7 +263,6 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
         binding.historyLayout.setOnClickListener {
 
 
-
             val bundle = Bundle()
             bundle.putString(FOOL_LIST_TITLE, getString(com.develop.common.R.string.cook_history))
             bundle.putInt(FOOD_LIST_TYPE, History)
@@ -362,19 +367,20 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
         isResetZero = CofarSDK.devInfo().resetZero.toInt()
         super.onResume()
         wifiHelp.scan()
-      updateUserInfo()
+        updateUserInfo()
     }
-   fun  updateUserInfo(){
-       appGlobalScope.launch(Dispatchers.IO) {
-           val userInfo = FoodDataProvider
-               .getUserDatabase()
-               .userInfoDao()
-               .queryUserInfoByUserId(CURRENT_USER_ID)
 
-           withContext(Dispatchers.Main){
-               updateUserInfoUi(userInfo)
-           }
-       }
+    fun updateUserInfo() {
+        appGlobalScope.launch(Dispatchers.IO) {
+            val userInfo = FoodDataProvider
+                .getUserDatabase()
+                .userInfoDao()
+                .queryUserInfoByUserId(CURRENT_USER_ID)
+
+            withContext(Dispatchers.Main) {
+                updateUserInfoUi(userInfo)
+            }
+        }
 
 
     }
@@ -444,18 +450,18 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
          * */
         if (event.devInfo.resetZero.toInt() == 1 && event.devInfo.resetZero.toInt() != isResetZero) {
 
-        var modeName = if (getSN().startsWith("011"))  {
-            resources.getString(com.develop.common.R.string.citrus_juicer_011)
-        } else {
-            resources.getString(com.develop.common.R.string.citrus_juicer)
-        }
+            var modeName = if (getSN().startsWith("011")) {
+                resources.getString(com.develop.common.R.string.citrus_juicer_011)
+            } else {
+                resources.getString(com.develop.common.R.string.citrus_juicer)
+            }
 
             navigateTo(Screens.Cook.COOK_MODES) {
                 val bundle = Bundle()
                 bundle.putString(MODE_TYPE, WorkModes.CITRUS_JUICER)
                 bundle.putString(
                     "mode_name",
-                   modeName
+                    modeName
                 )
                 with(bundle)
             }
@@ -481,16 +487,17 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
     //5037 点击切换模式eb传递
     @Subscribe
     fun onDevModes(event: DevModesEvent) {
-        if (CofarSDK.devInfo().devMode == DevModes.SOUP){
+        if (CofarSDK.devInfo().devMode == DevModes.SOUP) {
             showDevModeDialog(getString(com.develop.common.R.string.dev_air_parts))
 
-        }else if (CofarSDK.devInfo().devMode == DevModes.AIR_FRYER){
+        } else if (CofarSDK.devInfo().devMode == DevModes.AIR_FRYER) {
             showDevModeDialog(getString(com.develop.common.R.string.dev_soup_parts))
         }
 
     }
-    fun showDevModeDialog(title :String){
-        var  cancelConfirmDialog = CancelConfirmDialog()
+
+    fun showDevModeDialog(title: String) {
+        var cancelConfirmDialog = CancelConfirmDialog()
         cancelConfirmDialog.showCancel = false
         cancelConfirmDialog.showConfirm = true
         cancelConfirmDialog.confirmStr = resources.getString(
@@ -515,7 +522,6 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
             }
 
 
-
     }
 
     override fun onDestroy() {

+ 7 - 0
BusinessMain/src/main/java/com/develop/main/ui/ModeEntranceActivity.kt

@@ -123,6 +123,13 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
         }
         if (sn.startsWith("011")) {
             binding.ivTab.setImageResource(com.develop.common.R.drawable.ic_tab_011)
+
+            if (sn.startsWith("011D")){
+                //由于涂鸦云食谱没有历史功能,估隐藏
+                binding.historyLayout.setGone()
+            }
+
+
         }
 
         if (isNightTheme()) {

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

@@ -265,7 +265,7 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
                                 if (sn.startsWith("011")) viewModel.currCategoryName else model.category
                             val tvCategoryName =
                                 findView<AppCompatTextView>(R.id.tv_food_category_name)
-                            if (categoryName != null) {
+                            if (categoryName != null&&!viewModel.isSearch) {
                                 tvCategoryName.setVisible()
                                 if (!viewModel.isSearch) {
                                     tvCategoryName.updateText(categoryName)
@@ -359,7 +359,9 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
 
                         }
 
-                        com.develop.common.R.layout.food_content_night_provider, com.develop.common.R.layout.food_content_provider, com.develop.common.R.layout.food_content_blue_provider -> {
+                        com.develop.common.R.layout.food_content_night_provider,
+                        com.develop.common.R.layout.food_content_provider,
+                        com.develop.common.R.layout.food_content_blue_provider -> {
                             findView<FoodContentView>(com.develop.common.R.id.food_content_view).setFoodContent(
                                 getModel()
                             )
@@ -676,6 +678,16 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
     /**liveData回调*/
     private fun initLiveDataCallback() {
         viewModel.apply {
+            //处理011 涂鸦云食谱 搜索返回列表重复处理
+
+            searchLiveData.observe(viewLifecycleOwner){
+                //需要把列表全清除
+                recipesList.let {
+                    it.clear()
+                }
+
+            }
+
 
             refreshRecipesLiveData.observe(viewLifecycleOwner) {
 

+ 3 - 0
BusinessMain/src/main/java/com/develop/main/viewmodel/HomeViewModel.kt

@@ -37,6 +37,9 @@ class HomeViewModel : BaseViewModel() {
     val netFoodLiveData = MutableLiveData<Boolean>()
     val recipesOnFail = MutableLiveData<Int>()
     val refreshRecipesLiveData = MutableLiveData<Boolean>()
+    //处理011选择搜索后点击返回 列表重复的监听
+    val searchLiveData = MutableLiveData<Boolean>()
+
     val localCategoryLiveData = MutableLiveData<MutableList<DevRecipeCategory>>()
     val localRecipesLiveData = MutableLiveData<MutableList<Any>>()
     val onlineCategoryLiveData = MutableLiveData<MutableList<DevRecipeCategory>>()

+ 1 - 0
BusinessMain/src/main/res/layout/activity_mode_entrance.xml

@@ -93,6 +93,7 @@
             android:layout_marginStart="@dimen/convert_40px"
             android:layout_marginTop="@dimen/convert_40px"
             android:layout_marginEnd="@dimen/convert_40px"
+
             android:background="@drawable/home_menu_corners"
             android:gravity="center_vertical"
             android:orientation="horizontal">

+ 60 - 14
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepActivity.kt

@@ -639,6 +639,40 @@ class CookStepActivity : CookStepBaseActivity() {
             titleName = it?.name.toString()
             binding.tvTitleStep.text = it?.name
         }
+
+        viewModel.addLikeLiveData.observe(this) {
+            if (baseSn.startsWith("011")){
+                recipesloadingDialog.removeSelf()
+            }
+
+            if (it) {
+                isLike = true
+                binding.ivAddToFav.src = com.develop.common.R.drawable.ic_like
+                EventBus.getDefault().post(RefreshLikeDataEvent(true, recipeNumber ?: ""))
+            } else {
+                LikeDialog(1)
+            }
+
+        }
+
+
+        viewModel.deleteLikeLiveData.observe(this) {
+            if (baseSn.startsWith("011")){
+                recipesloadingDialog.removeSelf()
+            }
+
+            if (it) {
+                isLike = false
+                binding.ivAddToFav.src = com.develop.common.R.drawable.ic_unlike
+                EventBus.getDefault().post(RefreshLikeDataEvent(false, recipeNumber ?: ""))
+            } else {
+                LikeDialog(2)
+            }
+
+
+        }
+
+
     }
 
     private val runningTipsDialog: CancelConfirmDialog = CancelConfirmDialog()
@@ -1595,23 +1629,35 @@ class CookStepActivity : CookStepBaseActivity() {
         binding.llStepFinish.setVisible()
         binding.ivAddToFav.setOnClickListener {
             if (isLike) {
-                isLike = false
-                FoodDataProvider.getUserDatabase().runInTransaction {
-                    FoodDataProvider.getUserDatabase().userInfoDao().removeFavoriteRecipe(
-                        CURRENT_USER_ID, recipeNumber ?: ""
-                    )
-                    EventBus.getDefault().post(RefreshLikeDataEvent(false, recipeNumber ?: ""))
+                if (baseSn.startsWith("011")) {
+                    viewModel.deleteLikeRecipes(recipeNumber ?: "")
+                    recipesloadingDialog.showDialog(supportFragmentManager, "loadingDialog")
+                }else{
+                    isLike = false
+                    FoodDataProvider.getUserDatabase().runInTransaction {
+                        FoodDataProvider.getUserDatabase().userInfoDao().removeFavoriteRecipe(
+                            CURRENT_USER_ID, recipeNumber ?: ""
+                        )
+                        EventBus.getDefault().post(RefreshLikeDataEvent(false, recipeNumber ?: ""))
+                    }
+                    binding.ivAddToFav.src = R.drawable.ic_cook_fav
                 }
-                binding.ivAddToFav.src = R.drawable.ic_cook_fav
+
             } else {
-                isLike = true
-                binding.ivAddToFav.src = R.drawable.ic_like
-                FoodDataProvider.getUserDatabase().runInTransaction {
-                    FoodDataProvider.getUserDatabase().userInfoDao().insertFavoriteRecipe(
-                        UserFavoriteRecipes(CURRENT_USER_ID, recipeNumber ?: "")
-                    )
-                    EventBus.getDefault().post(RefreshLikeDataEvent(true, recipeNumber ?: ""))
+                if (baseSn.startsWith("011")){
+                    viewModel.addLikeRecipes(recipeNumber ?: "")
+                    recipesloadingDialog.showDialog(supportFragmentManager, "loadingDialog")
+                }else{
+                    isLike = true
+                    binding.ivAddToFav.src = R.drawable.ic_like
+                    FoodDataProvider.getUserDatabase().runInTransaction {
+                        FoodDataProvider.getUserDatabase().userInfoDao().insertFavoriteRecipe(
+                            UserFavoriteRecipes(CURRENT_USER_ID, recipeNumber ?: "")
+                        )
+                        EventBus.getDefault().post(RefreshLikeDataEvent(true, recipeNumber ?: ""))
+                    }
                 }
+
             }
         }
 

+ 35 - 0
BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepBaseActivity.kt

@@ -43,6 +43,7 @@ import com.develop.common.R
 import com.develop.common.data_repo.FoodDataProvider
 import com.develop.common.data_repo.db.ModesType
 import com.develop.common.data_repo.db.entity.UserRecipeStepRemark
+import com.develop.common.dialog.LoadingDialog
 import com.develop.common.dialog.NoteEditDialog
 import com.develop.common.tag.CURRENT_USER_ID
 import com.develop.common.utils.ConfigUtils
@@ -91,6 +92,12 @@ abstract class CookStepBaseActivity :
         CancelConfirmDialog()
     }
 
+    public val recipesloadingDialog by lazy {
+        LoadingDialog()
+    }
+
+
+
     var isClickType = 0
     private var isCookDetailDialogShow = false
     private var rotateAnimator: ObjectAnimator? = null
@@ -867,4 +874,32 @@ abstract class CookStepBaseActivity :
         return noteEditPopupWindow
     }
 
+    public fun LikeDialog(i: Int) {
+        var runningDilaog = CancelConfirmDialog()
+        runningDilaog.showCancel = false
+        runningDilaog.showConfirm = true
+        runningDilaog.title =
+            if (i == 1) resources.getString(com.develop.common.R.string.add_like_fail) else resources.getString(
+                com.develop.common.R.string.delete_like_fail
+            )
+        runningDilaog.confirmStr = resources.getString(com.develop.common.R.string.confirm)
+        runningDilaog.onDialogClickListener =
+            object : CancelConfirmDialog.OnDialogClickListener {
+                override fun onConfirm() {
+                    runningDilaog.removeSelf();
+                }
+
+                override fun onCancel() {
+                }
+
+                override fun onKey() {
+                }
+
+            }
+
+        runningDilaog.showDialog(supportFragmentManager, "LikeDialog")
+
+
+    }
+
 }

+ 15 - 1
BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt

@@ -92,6 +92,8 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
     private var isResetZero = -1  //初始扭橙的值
     private var sn = getSN()
     private var stepJson = ""
+    private var isLoadingType = true
+
     private val shareQRCodeDialog by lazy {
         ShareQRCodeDialog()
     }
@@ -135,6 +137,10 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
     }
 
     private fun initData() {
+        viewModel.likeTypeLiveData.observe(this){
+            isLike = it
+        }
+
         viewModel.onfialLiveData.observe(this){
             recipesloadingDialog.removeSelf()
         }
@@ -728,6 +734,13 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         binding.tvFoodName.isScrollbarFadingEnabled = false
         val timeDescBuilder = StringBuilder()
         if (!sn.startsWith("011D")){
+            if (isLike){
+                binding.viewLike.src = com.develop.common.R.drawable.ic_like
+            }else{
+                binding.viewLike.src = com.develop.common.R.drawable.ic_unlike
+            }
+
+
             timeDescBuilder.append(
                 if (sn.startsWith("011")) " " + getString(com.develop.common.R.string.preparation_011) else getString(
                     com.develop.common.R.string.preparation
@@ -928,8 +941,9 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         super.onResume()
         viewModel.getStarCount(recipeNumber ?: "")
         if (isOnResume) {
-            if (baseSn.startsWith("011")){
+            if (baseSn.startsWith("011")&&isLoadingType){
                 recipesloadingDialog.showDialog(supportFragmentManager, "loadingDialog")
+                isLoadingType = false
             }
             viewModel.queryRecipe(
                 recipeNumber ?: "",

+ 5 - 2
BusinessStep/src/main/java/com/develop/step/viewmodel/CookDetailViewModel.kt

@@ -48,9 +48,9 @@ class CookDetailViewModel : BaseViewModel() {
 
     var addLikeLiveData = MutableLiveData<Boolean>()
     var deleteLikeLiveData = MutableLiveData<Boolean>()
-    var stepLiveDataString = MutableLiveData<String>()
-
     var onfialLiveData = MutableLiveData<String>()
+    var likeTypeLiveData = MutableLiveData<Boolean>()
+    var stepLiveDataString = MutableLiveData<String>()
 
     var recipeNumber: String? = null
     private var mRecipeUrl: String? = null
@@ -89,6 +89,9 @@ class CookDetailViewModel : BaseViewModel() {
 
                         //处理涂鸦步骤
                         isTuyaStep = true
+                        //通知收藏结果
+                        likeTypeLiveData.postValue(t.isStar)
+
                         var devRecipeCookingStep = mutableListOf<DevRecipeCookingStep>()
 
                         //步骤

+ 51 - 0
BusinessStep/src/main/java/com/develop/step/viewmodel/CookStepViewModel.kt

@@ -12,12 +12,14 @@ import com.develop.common.data_repo.FoodDataProvider
 import com.develop.common.data_repo.db.entity.DevRecipe
 import com.develop.common.data_repo.db.entity.DevRecipeCookingStep
 import com.develop.common.utils.CofarUtils
+import com.develop.common.utils.CommonUtils
 import com.develop.common.utils.GsonUtils
 import com.develop.step.CookSettingType
 import com.develop.step.R
 import com.develop.step.ui.cook_step.model.CookStepStatus
 import com.develop.step.ui.cook_step.model.CookStepUiData
 import com.develop.step.ui.recipes_detail.model.CookStatus
+import com.google.gson.Gson
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.DevStatus
 import com.kuyuntech.cofarcooking.device.sdk.constant.core.MotorDirections
 import java.util.concurrent.CopyOnWriteArrayList
@@ -38,6 +40,12 @@ class CookStepViewModel : BaseViewModel() {
     var cookingStep: CookStepStatus? = null
     var recipe: DevRecipe?= null;
 
+    var addLikeLiveData = MutableLiveData<Boolean>()
+    var deleteLikeLiveData = MutableLiveData<Boolean>()
+    var onfialLiveData = MutableLiveData<String>()
+
+
+
     fun queryRecipeCookStep(number: String, currentStepIndex: Int = 0) {
         FoodDataProvider.getDatabase().runInTransaction {
             allSteps.clear()
@@ -145,6 +153,49 @@ class CookStepViewModel : BaseViewModel() {
         return allSteps.getOrNull(index + 1)
     }
 
+
+
+    fun addLikeRecipes(number: String) {
+        var map = HashMap<String, Any>()
+        map["menuId"] = number
+        var gson = Gson()
+        var json = gson.toJson(map)
+        CommonUtils.getTuyaLike("tuya.device.menu.star.add", "1.0",
+            json, object : CommonUtils.TuyaBooleanHttp {
+                override fun bean(t: Boolean) {
+                    addLikeLiveData.postValue(t)
+
+                }
+
+                override fun fail() {
+                    onfialLiveData.postValue("")
+                }
+
+            })
+
+    }
+
+    fun deleteLikeRecipes(number: String) {
+        var map = HashMap<String, Any>()
+        map["menuId"] = number
+        var gson = Gson()
+        var json = gson.toJson(map)
+        CommonUtils.getTuyaLike("tuya.device.menu.star.delete", "1.0",
+            json, object : CommonUtils.TuyaBooleanHttp {
+                override fun bean(t: Boolean) {
+                    deleteLikeLiveData.postValue(t)
+                }
+
+                override fun fail() {
+                    onfialLiveData.postValue("")
+                }
+
+            })
+    }
+
+
+
+
     fun setTargetCookingStep(cookStep: CookStepStatus) {
         val stepIndex = allSteps.indexOf(cookStep)
         if (stepIndex < 0) {