Browse Source

提交人:jtm
提交内容:主页优化

江天明 2 years ago
parent
commit
21f505ddfa
39 changed files with 272 additions and 398 deletions
  1. 4 3
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/DataFactory.kt
  2. 1 1
      BusinessCommon/src/main/java/com/develop/common/data_repo/db/ModelKit.kt
  3. 3 3
      BusinessCommon/src/main/java/com/develop/common/food_sdk/FloatWindowManager.kt
  4. 1 0
      BusinessCommon/src/main/java/com/develop/common/tag/CommonTag.kt
  5. 3 0
      BusinessCommon/src/main/java/com/develop/common/ui/CommonBVMActivity.kt
  6. 2 2
      BusinessCommon/src/main/java/com/develop/common/widget/CommonSearchLayout.kt
  7. 16 13
      BusinessCommon/src/main/java/com/develop/common/widget/FoodContentView.kt
  8. 24 7
      BusinessCommon/src/main/java/com/develop/common/widget/HomeFilterSortSearchView.kt
  9. 17 54
      BusinessCommon/src/main/java/com/develop/common/widget/HomeFunctionTopBar.kt
  10. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_gray_net.webp
  11. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_home.webp
  12. 20 14
      BusinessCommon/src/main/res/layout/common_search_view.xml
  13. 3 0
      BusinessCommon/src/main/res/layout/food_content_provider.xml
  14. 3 6
      BusinessCommon/src/main/res/layout/food_content_view.xml
  15. 0 9
      BusinessCommon/src/main/res/layout/food_grid_view.xml
  16. 2 3
      BusinessCommon/src/main/res/layout/home_function_top_bar_view.xml
  17. 2 11
      BusinessCommon/src/main/res/layout/home_sort_filter_search_view.xml
  18. 6 6
      BusinessCommon/src/main/res/layout/item_search_title_view.xml
  19. 3 0
      BusinessCommon/src/main/res/values-en/strings.xml
  20. 3 0
      BusinessCommon/src/main/res/values-fr/strings.xml
  21. 3 0
      BusinessCommon/src/main/res/values-ja/strings.xml
  22. 3 0
      BusinessCommon/src/main/res/values-zh-rCN/strings.xml
  23. 3 0
      BusinessCommon/src/main/res/values/strings.xml
  24. 27 15
      BusinessMain/src/main/java/com/develop/main/ui/HomeActivity.kt
  25. 10 5
      BusinessMain/src/main/java/com/develop/main/ui/ModeEntranceActivity.kt
  26. 3 71
      BusinessMain/src/main/java/com/develop/main/ui/ModesFragment.kt
  27. 50 55
      BusinessMain/src/main/java/com/develop/main/ui/RecipesFragment.kt
  28. 6 3
      BusinessMain/src/main/java/com/develop/main/viewmodel/HomeViewModel.kt
  29. 9 0
      BusinessMain/src/main/res/layout/food_grid_view.xml
  30. 8 48
      BusinessMain/src/main/res/layout/fragment_modes.xml
  31. 6 7
      BusinessMain/src/main/res/layout/item_mode_card_view.xml
  32. 2 2
      BusinessSetting/src/main/java/com/develop/setting/ui/LanguageActivity.kt
  33. 2 2
      BusinessSetting/src/main/java/com/develop/setting/ui/PrivacyPolicyActivity.kt
  34. 11 23
      BusinessStep/src/main/java/com/develop/step/ui/FoodListActivity.kt
  35. 2 2
      BusinessStep/src/main/java/com/develop/step/ui/ModesDetailActivity.kt
  36. 2 2
      BusinessStep/src/main/java/com/develop/step/ui/cook_step/CookStepBaseActivity.kt
  37. 1 6
      BusinessStep/src/main/java/com/develop/step/viewmodel/FoodListViewModel.kt
  38. 11 9
      BusinessStep/src/main/res/layout/activity_food_list.xml
  39. 0 16
      BusinessStep/src/main/res/layout/food_content_provider.xml

+ 4 - 3
BusinessCommon/src/main/java/com/develop/common/data_repo/db/DataFactory.kt

@@ -271,7 +271,7 @@ object DataFactory {
         sortedType: SortedType
     ): MutableList<Any> {
         val result = mutableListOf<Any>()
-        result.add(FilterSortModel(""))
+        result.add(FilterSortModel("", isOnLineState = true))
         result.add(categoryName)
         val favoriteRecipesIds = mutableListOf<String>()
         favoriteRecipes.forEach {
@@ -305,10 +305,10 @@ object DataFactory {
                 }
             }
         })
-
+        val foodList = mutableListOf<FoodContentModel>()
         for (i in recipesList.indices) {
             val recipes = recipesList[i]
-            result.add(
+            foodList.add(
                 FoodContentModel(
                     recipes.photoPath ?: "",
                     recipes.name ?: "",
@@ -324,6 +324,7 @@ object DataFactory {
                 )
             )
         }
+        result.add(FoodListModel(foodList, categoryName))
         return result
     }
 

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

@@ -4,7 +4,7 @@ package com.develop.common.data_repo.db
 data class ModelsModel(var resId: Int, var modeName: String, var modesType: ModesType)
 data class NewsModel(var title: String, var des: String, var hasRead: Boolean)
 data class SettingModel(var resId: Int, var name: String, var type: SettingType)
-data class FilterSortModel(var name: String)
+data class FilterSortModel(var name: String, var isOnLineState: Boolean = false)
 data class HomeBannerListModel(var data: MutableList<HomeBannerModel>)
 data class HomeBannerModel(var cover: Any, var zipUrl: String)
 data class CommonSearchModel(var data: MutableList<CommonSearchItem>)

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

@@ -46,7 +46,7 @@ object FloatWindowManager {
             getFilterClass(FilterClass.COOK_MODES),
             getFilterClass(FilterClass.COOK_STEP),
         )
-        EventBus.getDefault().register(this)
+        
 
         confirmCancelDialog.onDialogClickListener =
             object : CancelConfirmDialog.OnDialogClickListener {
@@ -69,7 +69,7 @@ object FloatWindowManager {
         modeName = event.modeName
         isMode = event.isMode
         if (!EventBus.getDefault().isRegistered(this)) {
-            EventBus.getDefault().register(this)
+            
         }
         EasyFloat.with(globalApp())
             .setShowPattern(ShowPattern.ALL_TIME)
@@ -109,7 +109,7 @@ object FloatWindowManager {
     }
 
     fun hideStepFlowWindow() {
-        EventBus.getDefault().unregister(this)
+        
         if (EasyFloat.isShow()) {
             EasyFloat.dismiss()
         }

+ 1 - 0
BusinessCommon/src/main/java/com/develop/common/tag/CommonTag.kt

@@ -9,6 +9,7 @@ const val FOOD_LIST_TYPE = "FOOD_LIST_TYPE"
 const val WIFI_FROM_MAIN_SETTING = "WIFI_FROM_MAIN_SETTING"
 const val POLICY_FROM_MAIN_SETTING = "POLICY_FROM_MAIN_SETTING"
 const val MODE_ENTRANCE = "MODE_ENTRANCE"
+const val RECIPES_TYPE = "RECIPES_TYPE"
 const val MODE_TYPE = "mode_type"
 const val LANGUAGE_FROM_SETTING = "LANGUAGE_FROM_SETTING"
 const val SCREENSAVER = "ScreenSaver"

+ 3 - 0
BusinessCommon/src/main/java/com/develop/common/ui/CommonBVMActivity.kt

@@ -3,6 +3,7 @@ package com.develop.common.ui
 import android.os.Bundle
 import androidx.viewbinding.ViewBinding
 import com.develop.base.mvvm.BaseViewModel
+import org.greenrobot.eventbus.EventBus
 
 
 /**
@@ -18,10 +19,12 @@ abstract class CommonBVMActivity<VB : ViewBinding, VM : BaseViewModel> :
         super.onCreate(savedInstanceState)
         viewModel = createViewModel()
         lifecycle.addObserver(viewModel)
+        EventBus.getDefault().register(this)
     }
 
     override fun onDestroy() {
         super.onDestroy()
+        EventBus.getDefault().unregister(this)
         lifecycle.removeObserver(viewModel)
     }
 }

+ 2 - 2
BusinessCommon/src/main/java/com/develop/common/widget/CommonSearchLayout.kt

@@ -53,7 +53,7 @@ class CommonSearchLayout : LinearLayout {
                     parent: RecyclerView,
                     state: RecyclerView.State
                 ) {
-                    outRect.bottom = dp47
+                    outRect.bottom = dp24
                 }
             })
             setup {
@@ -81,6 +81,6 @@ class CommonSearchLayout : LinearLayout {
     }
 
     companion object {
-        var dp47 = (com.develop.base.R.dimen.convert_47px).resId2Dimension().toInt()
+        var dp24 = (com.develop.base.R.dimen.convert_24px).resId2Dimension().toInt()
     }
 }

+ 16 - 13
BusinessCommon/src/main/java/com/develop/common/widget/FoodContentView.kt

@@ -38,6 +38,7 @@ class FoodContentView : RelativeLayout {
     private var mFoodContent: FoodContentModel? = null
 
     private var mIsFoodList = false
+    var mIsHistoryList = false
 
     init {
         val root = View.inflate(context, R.layout.food_content_view, this)
@@ -97,16 +98,13 @@ class FoodContentView : RelativeLayout {
                 setCommentTextColorGray()
             }
             tvTimeAndLevel.updateText("${content.time}・${content.level}")
-            if (isFoodList) {
-                if (hasDownload) {
-                    ivLike.setBackgroundResource(R.drawable.ic_delete)
-                } else {
-                    if (isNetRecipes) {
-                        ivNet.visibility = View.VISIBLE
-                    } else {
-                        ivNet.visibility = View.GONE
-                    }
-                }
+            if (isNetRecipes) {
+                ivNet.visibility = View.VISIBLE
+            } else {
+                ivNet.visibility = View.GONE
+            }
+            if (hasDownload) {
+                ivLike.load(R.drawable.ic_delete)
             } else {
                 if (isLike) {
                     ivLike.load(R.drawable.ic_like)
@@ -164,7 +162,10 @@ class FoodContentView : RelativeLayout {
                                 CURRENT_USER_ID, content.foodId
                             )
                         }
-                        EventBus.getDefault().post(RefreshDataEvent())
+                        if (!mIsHistoryList) {
+                            EventBus.getDefault().post(RefreshDataEvent())
+                        }
+
                     } else {
                         content.isLike = true
                         ivLike.load(R.drawable.ic_like)
@@ -173,14 +174,16 @@ class FoodContentView : RelativeLayout {
                                 UserFavoriteRecipes(CURRENT_USER_ID, content.foodId)
                             )
                         }
-                        EventBus.getDefault().post(RefreshDataEvent())
+                        if (!mIsHistoryList) {
+                            EventBus.getDefault().post(RefreshDataEvent())
+                        }
                     }
                 }
             }
         }
     }
 
-    companion object{
+    companion object {
         val dp10 = (com.develop.base.R.dimen.convert_10px).resId2Dimension()
     }
 

+ 24 - 7
BusinessCommon/src/main/java/com/develop/common/widget/HomeFilterSortSearchView.kt

@@ -28,12 +28,6 @@ class HomeFilterSortSearchView : RelativeLayout {
     init {
         val root = View.inflate(context, R.layout.home_sort_filter_search_view, this)
         binding = HomeSortFilterSearchViewBinding.bind(root)
-        binding.ivBack.setOnClickListener {
-            binding.cardLayout.visibility = View.VISIBLE
-            binding.searchLayout.visibility = View.GONE
-            KeyboardUtils.hideSoftInput(context as Activity)
-            onFunctionCallback?.onBackClick()
-        }
         binding.searchCardView.setOnClickListener {
             binding.cardLayout.visibility = View.GONE
             binding.searchLayout.visibility = View.VISIBLE
@@ -52,6 +46,18 @@ class HomeFilterSortSearchView : RelativeLayout {
                 onFunctionCallback?.onInputSearch(content)
             }
         }
+        binding.downloadLayout.setOnClickListener {
+            onFunctionCallback?.onDownloadClick()
+        }
+
+        binding.onlineLayout.setOnClickListener {
+            onFunctionCallback?.onOnlineRecipesClick()
+        }
+    }
+
+    fun resetView() {
+        binding.cardLayout.visibility = View.VISIBLE
+        binding.searchLayout.visibility = View.GONE
     }
 
     interface OnFunctionCallback {
@@ -59,7 +65,6 @@ class HomeFilterSortSearchView : RelativeLayout {
         fun onSortClick(sortView: View)
         fun onSearchClick()
         fun onInputSearch(searchContent: String)
-        fun onBackClick()
         fun onDownloadClick()
         fun onOnlineRecipesClick()
     }
@@ -75,5 +80,17 @@ class HomeFilterSortSearchView : RelativeLayout {
     fun updateHotWord(hotWord: String) {
         binding.etSearch.setText(hotWord)
     }
+
+    fun hideOnlineLayout(isOnLineState: Boolean) {
+        if (isOnLineState) {
+            binding.onlineLayout.visibility = View.INVISIBLE
+        } else {
+            binding.onlineLayout.visibility = View.VISIBLE
+        }
+    }
+
+    fun getOnlineLayoutVisible(): Boolean {
+        return binding.onlineLayout.visibility == View.VISIBLE
+    }
 }
 

+ 17 - 54
BusinessCommon/src/main/java/com/develop/common/widget/HomeFunctionTopBar.kt

@@ -28,6 +28,7 @@ class HomeFunctionTopBar : RelativeLayout, View.OnClickListener {
     var onHomeFunctionClickListener: OnHomeFunctionClickListener? = null
 
     private var tempFunType = FunType.LocalRecipes
+    private var homeOrBackType = HomeOrBack.Home
 
     init {
         val root = View.inflate(context, R.layout.home_function_top_bar_view, this)
@@ -39,77 +40,34 @@ class HomeFunctionTopBar : RelativeLayout, View.OnClickListener {
         binding.ivWifi.setOnClickListener(this)
         binding.ivWifi.setImageResource(R.drawable.icon_wifi_signal_level)
         binding.ivWifi.setImageLevel(0)
-        binding.ivFunction.load(R.drawable.ic_mode)
+        binding.ivFunction.load(R.drawable.ic_home)
 
     }
 
-    fun setCurrentFunType(type: FunType) {
-        funType = type
-        tempFunType = funType
-        when (type) {
-            FunType.Modes -> {
-                updateIconSize(false)
-                binding.ivFunction.load(R.drawable.ic_recipes)
-                binding.functionName.text = resources.getString(R.string.recipes)
-            }
-            FunType.LocalRecipes -> {
-                updateIconSize(false)
-                binding.ivFunction.load(R.drawable.ic_mode)
-                binding.functionName.text = resources.getString(R.string.mode)
-            }
-            else -> {}
+    fun setHomeOrBack(type: HomeOrBack) {
+        homeOrBackType = type
+        if (type == HomeOrBack.Home) {
+            binding.ivFunction.load(R.drawable.ic_home)
+            binding.functionName.text = resources.getString(R.string.home)
+        } else {
+            binding.ivFunction.load(R.drawable.ic_white_back)
+            binding.functionName.text = resources.getString(R.string.back)
         }
     }
 
-    /**
-     * 切换网络菜谱时调用
-     */
-    fun updateNetFunType() {
-        funType = FunType.NetRecipes
-        updateIconSize(true)
-        binding.ivFunction.load(R.drawable.ic_white_back)
-        binding.functionName.text = resources.getString(R.string.local_recipes)
-    }
 
     interface OnHomeFunctionClickListener {
-        fun onModeClick(funType: FunType)
         fun onWifiClick()
         fun onUserClick()
         fun onTabClick()
         fun onNotifyClick()
+        fun onHomeOrBackClick(homeOrBack: HomeOrBack)
     }
 
     override fun onClick(p0: View) {
         when (p0.id) {
             R.id.mode_layout -> {
-                when (funType) {
-                    FunType.Modes -> {
-                        funType = FunType.LocalRecipes
-                        tempFunType = funType
-                        updateIconSize(false)
-                        binding.ivFunction.load(R.drawable.ic_mode)
-                        binding.functionName.text = resources.getString(R.string.mode)
-                    }
-                    FunType.LocalRecipes -> {
-                        updateIconSize(false)
-                        funType = FunType.Modes
-                        tempFunType = funType
-                        binding.ivFunction.load(R.drawable.ic_recipes)
-                        binding.functionName.text = resources.getString(R.string.recipes)
-                    }
-                    FunType.NetRecipes -> {
-                        updateIconSize(false)
-                        funType = tempFunType
-                        if (funType == FunType.LocalRecipes) {
-                            binding.ivFunction.load(R.drawable.ic_mode)
-                            binding.functionName.text = resources.getString(R.string.mode)
-                        } else {
-                            binding.ivFunction.load(R.drawable.ic_recipes)
-                            binding.functionName.text = resources.getString(R.string.recipes)
-                        }
-                    }
-                }
-                onHomeFunctionClickListener?.onModeClick(funType)
+                onHomeFunctionClickListener?.onHomeOrBackClick(homeOrBackType)
             }
             R.id.user_layout -> {
                 onHomeFunctionClickListener?.onUserClick()
@@ -154,4 +112,9 @@ class HomeFunctionTopBar : RelativeLayout, View.OnClickListener {
         var dp60 = (dimen.convert_60px).resId2Dimension().toInt()
         var dp120 = (dimen.convert_120px).resId2Dimension().toInt()
     }
+}
+
+enum class HomeOrBack {
+    Home,
+    Back
 }

BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_gray_net.webp


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_home.webp


+ 20 - 14
BusinessCommon/src/main/res/layout/common_search_view.xml

@@ -6,28 +6,34 @@
 
     <androidx.appcompat.widget.AppCompatTextView
         android:id="@+id/tv_title"
-        android:layout_marginStart="@dimen/convert_45px"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="@dimen/convert_24px"
-        android:text="@string/the_most_commonly_searched"
-        android:textColor="@color/color_6B6B6B"
-        android:textSize="54px" />
+        android:layout_marginStart="@dimen/convert_24px"
+        android:text="@string/historical_search"
+        android:textColor="@color/color_1A1A1A"
+        android:textSize="@dimen/convert_36px" />
 
-    <View
-        android:layout_marginStart="@dimen/convert_45px"
-        android:layout_marginEnd="@dimen/convert_45px"
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/history_search_recycle"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/convert_2px"
-        android:layout_marginTop="@dimen/convert_66px"
-        android:background="@color/color_E5E5E5" />
+        android:layout_height="wrap_content" />
+
+
+    <androidx.appcompat.widget.AppCompatTextView
+        android:id="@+id/tv_search_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/convert_24px"
+        android:layout_marginTop="@dimen/convert_36px"
+        android:text="@string/the_most_commonly_searched"
+        android:textColor="@color/color_1A1A1A"
+        android:textSize="@dimen/convert_36px" />
 
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/search_recycler"
+        android:layout_marginTop="@dimen/convert_25px"
         android:layout_width="match_parent"
-        android:layout_marginStart="@dimen/convert_45px"
         android:layout_height="match_parent"
-        android:layout_below="@id/tv_title"
-        android:layout_marginTop="@dimen/convert_77px" />
+        android:layout_marginStart="@dimen/convert_24px" />
 
 </LinearLayout>

+ 3 - 0
BusinessCommon/src/main/res/layout/food_content_provider.xml

@@ -3,7 +3,10 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/recipes_layout"
     android:layout_width="match_parent"
+    android:layout_marginStart="@dimen/convert_10px"
+    android:layout_marginEnd="@dimen/convert_10px"
     android:layout_height="@dimen/convert_330px"
+    android:layout_marginBottom="@dimen/convert_24px"
     app:cardCornerRadius="@dimen/convert_10px"
     app:cardElevation="@dimen/convert_10px">
 

+ 3 - 6
BusinessCommon/src/main/res/layout/food_content_view.xml

@@ -28,6 +28,7 @@
     </RelativeLayout>
 
     <RelativeLayout
+        android:paddingStart="@dimen/convert_22px"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_below="@id/iv_cover"
@@ -38,16 +39,15 @@
             android:id="@+id/iv_net"
             android:layout_width="@dimen/convert_24px"
             android:layout_height="@dimen/convert_24px"
-            android:layout_marginStart="@dimen/convert_22px"
             android:layout_marginTop="@dimen/convert_18px"
-            android:background="@drawable/ic_net"
+            android:layout_marginEnd="@dimen/convert_8px"
+            android:background="@drawable/ic_gray_net"
             android:visibility="gone" />
 
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/tv_food_name"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/convert_22px"
             android:layout_marginTop="@dimen/convert_10px"
             android:layout_marginEnd="@dimen/convert_10px"
             android:layout_toEndOf="@id/iv_net"
@@ -63,7 +63,6 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_below="@id/tv_food_name"
-            android:layout_marginStart="@dimen/convert_22px"
             android:layout_marginEnd="@dimen/convert_10px"
             android:ellipsize="end"
             android:singleLine="true"
@@ -76,8 +75,6 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentBottom="true"
-
-            android:layout_marginStart="@dimen/convert_22px"
             android:layout_marginBottom="@dimen/convert_28px" />
     </RelativeLayout>
 </RelativeLayout>

+ 0 - 9
BusinessCommon/src/main/res/layout/food_grid_view.xml

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.recyclerview.widget.RecyclerView android:id="@+id/food_recycle"
-    android:layout_width="match_parent"
-    android:paddingStart="@dimen/convert_24px"
-    android:paddingEnd="@dimen/convert_24px"
-    android:layout_height="wrap_content"
-    xmlns:android="http://schemas.android.com/apk/res/android">
-
-</androidx.recyclerview.widget.RecyclerView>

+ 2 - 3
BusinessCommon/src/main/res/layout/home_function_top_bar_view.xml

@@ -15,16 +15,15 @@
             android:layout_width="@dimen/convert_40px"
             android:layout_height="@dimen/convert_40px"
             android:layout_centerVertical="true"
-            android:layout_marginStart="@dimen/convert_26px" />
+            android:layout_marginStart="@dimen/convert_40px" />
 
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/function_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerVertical="true"
-            android:layout_marginStart="@dimen/convert_20px"
+            android:layout_marginStart="@dimen/convert_24px"
             android:layout_toEndOf="@id/iv_function"
-            android:text="@string/mode"
             android:textColor="@color/color_fff"
             android:textSize="@dimen/convert_36px" />
     </RelativeLayout>

+ 2 - 11
BusinessCommon/src/main/res/layout/home_sort_filter_search_view.xml

@@ -156,25 +156,16 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/convert_88px"
         android:layout_marginStart="@dimen/convert_290px"
-        android:layout_marginTop="@dimen/convert_80px"
+        android:layout_marginTop="@dimen/convert_40px"
         android:layout_marginEnd="@dimen/convert_290px"
         android:layout_marginBottom="@dimen/convert_60px"
         android:visibility="gone">
 
-        <ImageView
-            android:id="@+id/iv_back"
-            android:layout_width="@dimen/convert_75px"
-            android:layout_height="@dimen/convert_90px"
-            android:layout_centerVertical="true"
-            android:rotation="90"
-            android:src="@drawable/ic_down_arrow"
-            android:visibility="gone" />
-
         <EditText
             android:id="@+id/et_search"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:layout_toEndOf="@id/iv_back"
+            android:layout_centerHorizontal="true"
             android:background="@drawable/shape_60pxe5e5e5_stoke"
             android:gravity="center_vertical"
             android:hint="@string/enter_search"

+ 6 - 6
BusinessCommon/src/main/res/layout/item_search_title_view.xml

@@ -2,13 +2,13 @@
 <androidx.appcompat.widget.AppCompatTextView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="wrap_content"
     android:id="@+id/tv_search_name"
-    android:paddingStart="@dimen/convert_56px"
-    android:paddingEnd="@dimen/convert_56px"
-    android:layout_height="@dimen/convert_90px"
-    android:background="@drawable/shape_45pxf4a12e_stoke"
+    android:paddingStart="@dimen/convert_40px"
+    android:paddingEnd="@dimen/convert_40px"
+    android:layout_height="@dimen/convert_60px"
+    android:background="@drawable/shape_10pxf4a12e_stoke"
     android:gravity="center"
-    android:layout_marginEnd="@dimen/convert_47px"
-    android:textColor="@color/color_F4A12E"
+    android:layout_marginEnd="@dimen/convert_25px"
+    android:textColor="@color/color_EE8F08"
     android:textSize="@dimen/convert_39px">
 
 </androidx.appcompat.widget.AppCompatTextView>

+ 3 - 0
BusinessCommon/src/main/res/values-en/strings.xml

@@ -138,4 +138,7 @@
     <string name="automatic_programmes">Automatic\nProgrammes</string>
     <string name="manual_cooking">Manual\ncooking</string>
     <string name="download_new_recipes">Download\nnew recipes</string>
+    <string name="home">HOME</string>
+    <string name="back">BACK</string>
+    <string name="historical_search">Historical search</string>
 </resources>

+ 3 - 0
BusinessCommon/src/main/res/values-fr/strings.xml

@@ -138,4 +138,7 @@
     <string name="automatic_programmes">Automatic\nProgrammes</string>
     <string name="manual_cooking">Manual\ncooking</string>
     <string name="download_new_recipes">Download\nnew recipes</string>
+    <string name="home">HOME</string>
+    <string name="back">BACK</string>
+    <string name="historical_search">Historical search</string>
 </resources>

+ 3 - 0
BusinessCommon/src/main/res/values-ja/strings.xml

@@ -138,4 +138,7 @@
     <string name="automatic_programmes">Automatic\nProgrammes</string>
     <string name="manual_cooking">Manual\ncooking</string>
     <string name="download_new_recipes">Download\nnew recipes</string>
+    <string name="home">HOME</string>
+    <string name="back">BACK</string>
+    <string name="historical_search">Historical search</string>
 </resources>

+ 3 - 0
BusinessCommon/src/main/res/values-zh-rCN/strings.xml

@@ -138,4 +138,7 @@
     <string name="automatic_programmes">Automatic\nProgrammes</string>
     <string name="manual_cooking">Manual\ncooking</string>
     <string name="download_new_recipes">Download\nnew recipes</string>
+    <string name="home">HOME</string>
+    <string name="back">BACK</string>
+    <string name="historical_search">Historical search</string>
 </resources>

+ 3 - 0
BusinessCommon/src/main/res/values/strings.xml

@@ -213,4 +213,7 @@ Nanfang plus client is an online information platform developed and operated by
     <string name="automatic_programmes">Automatic\nProgrammes</string>
     <string name="manual_cooking">Manual\ncooking</string>
     <string name="download_new_recipes">Download\nnew recipes</string>
+    <string name="home">HOME</string>
+    <string name="back">BACK</string>
+    <string name="historical_search">Historical search</string>
 </resources>

+ 27 - 15
BusinessMain/src/main/java/com/develop/main/ui/HomeActivity.kt

@@ -20,6 +20,7 @@ import com.develop.common.router.Screens
 import com.develop.common.tag.*
 import com.develop.common.ui.CommonBVMActivity
 import com.develop.common.widget.HomeFunctionTopBar
+import com.develop.common.widget.HomeOrBack
 import com.develop.common.widget.NewsLayout
 import com.develop.main.R
 import com.develop.main.databinding.ActivityHomeBinding
@@ -76,15 +77,19 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
 
     private fun initFragment(intent: Intent?, isFromNewIntent: Boolean = false) {
         currModeEntrance = intent?.extras?.getInt(MODE_ENTRANCE) ?: Recipes
+        if ((intent?.extras?.getInt(RECIPES_TYPE) ?: LocalFood) == LocalFood) {
+            viewModel.recipesType = RecipesType.LOCAL
+        } else {
+            viewModel.recipesType = RecipesType.ONLINE
+        }
+        binding.functionTopBar.setHomeOrBack(HomeOrBack.Home)
         if (currModeEntrance == Recipes) {
-            binding.functionTopBar.setCurrentFunType(FunType.LocalRecipes)
             if (isFromNewIntent) {
                 replaceFragment(R.id.fragment_container, recipesFragment)
             } else {
                 addFragment(R.id.fragment_container, recipesFragment)
             }
         } else {
-            binding.functionTopBar.setCurrentFunType(FunType.Modes)
             if (isFromNewIntent) {
                 replaceFragment(R.id.fragment_container, modesFragment)
             } else {
@@ -102,21 +107,29 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
         }.build()
         binding.functionTopBar.onHomeFunctionClickListener =
             object : HomeFunctionTopBar.OnHomeFunctionClickListener {
-                override fun onModeClick(funType: FunType) {
-                    if (funType == FunType.LocalRecipes) {
-                        replaceFragment(R.id.fragment_container, recipesFragment)
-                        viewModel.recipesType = RecipesType.LOCAL
-                        viewModel.refreshRecipesLiveData.postValue(true)
-                    } else if (funType == FunType.Modes) {
-                        replaceFragment(R.id.fragment_container, modesFragment)
-                    }
-                }
-
                 override fun onNotifyClick() {
                     newsPopupWindow.showAtLocation(binding.functionTopBar, Gravity.TOP, 0, 0)
 
                 }
 
+                override fun onHomeOrBackClick(homeOrBack: HomeOrBack) {
+                    if (homeOrBack == HomeOrBack.Home) {
+                        navigateTo(Screens.Main.ENTRANCE_CHOSEN)
+                        finish()
+                    } else {
+                        //搜索后,返回后当前还是onLine的菜谱,还是显示返回,可以返回本地菜谱
+                        if (viewModel.recipesType == RecipesType.ONLINE && viewModel.isSearch) {
+                            binding.functionTopBar.setHomeOrBack(HomeOrBack.Back)
+                        } else {
+                            binding.functionTopBar.setHomeOrBack(HomeOrBack.Home)
+                        }
+                        viewModel.apply {
+                            refreshRecipesLiveData.postValue(true)
+                            isSearch = false
+                        }
+                    }
+                }
+
                 override fun onTabClick() {
                     binding.contentView.openDrawer(binding.rightContentLayout)
                 }
@@ -180,11 +193,10 @@ class HomeActivity : CommonBVMActivity<ActivityHomeBinding, HomeViewModel>() {
         }
 
         viewModel.apply {
-            netFoodLiveData.observe(this@HomeActivity) {
-                binding.functionTopBar.updateNetFunType()
+            homeOrBackLiveData.observe(this@HomeActivity) {
+                binding.functionTopBar.setHomeOrBack(it)
             }
         }
-
     }
 
     companion object {

+ 10 - 5
BusinessMain/src/main/java/com/develop/main/ui/ModeEntranceActivity.kt

@@ -8,12 +8,10 @@ import com.develop.base.ext.navigateTo
 import com.develop.common.data_repo.FoodDataProvider
 import com.develop.base.util.MMkvUtils
 import com.develop.common.data_repo.db.DataFactory
+import com.develop.common.data_repo.db.RecipesType
 import com.develop.common.dialog.LoadingDialog
 import com.develop.common.router.Screens
-import com.develop.common.tag.FIRST_IN
-import com.develop.common.tag.MODE_ENTRANCE
-import com.develop.common.tag.Mode
-import com.develop.common.tag.Recipes
+import com.develop.common.tag.*
 import com.develop.common.ui.CommonBindingActivity
 import com.develop.common.widget.EntranceData
 import com.develop.common.widget.EntranceItemView
@@ -57,6 +55,7 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
                             if (FoodDataProvider.checkDataExit()) {
                                 val bundle = Bundle()
                                 bundle.putInt(MODE_ENTRANCE, Recipes)
+                                bundle.putInt(RECIPES_TYPE, LocalFood)
                                 navigateTo(Screens.Main.HOME) {
                                     with(bundle)
                                 }
@@ -77,7 +76,13 @@ class ModeEntranceActivity : CommonBindingActivity<ActivityModeEntranceBinding>(
                             finish()
                         }
                         EntranceType.download_new_recipes -> {
-
+                            val bundle = Bundle()
+                            bundle.putInt(MODE_ENTRANCE, Recipes)
+                            bundle.putInt(RECIPES_TYPE, NetFood)
+                            navigateTo(Screens.Main.HOME) {
+                                with(bundle)
+                            }
+                            finish()
                         }
                     }
                 }

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

@@ -51,57 +51,10 @@ class ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>() {
     override fun onPostCreateView() {
         super.onPostCreateView()
         initView()
-        initListener()
     }
 
     private fun initView() {
         modeTypeList = DataFactory.modesTypeList
-
-        binding.gridRecycle.apply {
-            addItemDecoration(object : RecyclerView.ItemDecoration() {
-                override fun getItemOffsets(
-                    outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State
-                ) {
-                    super.getItemOffsets(outRect, view, parent, state)
-                    val srcPosition = parent.getChildAdapterPosition(view)
-                    if (srcPosition == 0 || srcPosition == 1) {
-                        outRect.top = dp74
-                    }
-                    when (srcPosition % 2) {
-                        0 -> {
-                            outRect.left = dp60
-
-                            outRect.right = dp30
-                        }
-                        1 -> {
-                            outRect.left = dp30
-                            outRect.right = dp60
-                        }
-                    }
-                    outRect.bottom = dp74
-                }
-            })
-            grid(2, RecyclerView.VERTICAL)
-            setup {
-                addType<ModelsModel>(R.layout.item_grid_view)
-                onBind {
-                    val model = getModel<ModelsModel>()
-                    findView<ImageView>(R.id.iv_icon).load(model.resId)
-                    findView<AppCompatTextView>(R.id.tv_mode_name).updateText(
-                        model.modeName
-                    )
-
-                }
-                R.id.grid_item.onClick {
-                    navigateTo(Screens.Cook.COOK_MODES) {
-                        val bundle = Bundle()
-                        bundle.putString(MODE_TYPE, modeTypeList[absoluteAdapterPosition].name)
-                        with(bundle)
-                    }
-                }
-            }.models = DataFactory.genGridModesList(resources)
-        }
-
         binding.galleryRecycle.apply {
             linear(RecyclerView.HORIZONTAL)
             setup {
@@ -126,14 +79,6 @@ class ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>() {
             // 绑定到 mRecyclerView
             snapHelper.attachToRecyclerView(this)
             scrollToPosition(1)
-            addItemDecoration(object : RecyclerView.ItemDecoration() {
-                override fun getItemOffsets(
-                    outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State
-                ) {
-                    super.getItemOffsets(outRect, view, parent, state)
-                    outRect.right = dp28
-                }
-            })
             addOnScrollListener(object : RecyclerView.OnScrollListener() {
                 override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                     super.onScrolled(recyclerView, dx, dy)
@@ -150,6 +95,7 @@ class ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>() {
                         val scale = MAX_SCALE - bl * (MAX_SCALE - MIN_SCALE)
                         val alpha = MAX_ALPHA - bl * (MAX_ALPHA - MIN_ALPHA)
                         child.scaleY = scale
+                        child.scaleX = scale
                         child.alpha = alpha
                     }
                 }
@@ -158,28 +104,14 @@ class ModesFragment : CommonBVMFragment<FragmentModesBinding, HomeViewModel>() {
         }
     }
 
-    private fun initListener() {
-        binding.listMode.setOnClickListener {
-            isGrid = !isGrid
-            if (isGrid) {
-                binding.listName.text = getString(com.develop.common.R.string.list_view)
-                binding.gridRecycle.visibility = View.VISIBLE
-                binding.galleryRecycle.visibility = View.GONE
-            } else {
-                binding.listName.text = getString(com.develop.common.R.string.grid_view)
-                binding.gridRecycle.visibility = View.GONE
-                binding.galleryRecycle.visibility = View.VISIBLE
-            }
-        }
-    }
 
     companion object {
         var dp60 = (com.develop.base.R.dimen.convert_60px).resId2Dimension().toInt()
         var dp74 = (com.develop.base.R.dimen.convert_74px).resId2Dimension().toInt()
         var dp30 = (com.develop.base.R.dimen.convert_30px).resId2Dimension().toInt()
         var dp28 = (com.develop.base.R.dimen.convert_28px).resId2Dimension().toInt()
-        const val MIN_SCALE = 0.65f
-        const val MIN_ALPHA = 0.5f
+        const val MIN_SCALE = 0.75f
+        const val MIN_ALPHA = 0.6f
         const val MAX_SCALE = 1.0f
         const val MAX_ALPHA = 1.0f
     }

+ 50 - 55
BusinessMain/src/main/java/com/develop/main/ui/RecipesFragment.kt

@@ -1,7 +1,7 @@
 package com.develop.main.ui
 
 
-import android.graphics.Rect
+import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
@@ -9,19 +9,16 @@ import android.widget.RelativeLayout
 import androidx.appcompat.widget.AppCompatTextView
 import androidx.databinding.ViewDataBinding
 import androidx.recyclerview.widget.RecyclerView
+import com.develop.base.ext.globalApp
 import com.develop.base.ext.navigateTo
 import com.develop.base.ext.resId2Dimension
 import com.develop.base.ext.updateText
-import com.develop.base.util.GridSpaceItemDecoration
 import com.develop.base.widgets.CommonPopupWindow
 import com.develop.common.data_repo.db.*
 import com.develop.common.data_repo.db.entity.DevRecipeCategory
 import com.develop.common.databinding.FragmentCommeListBinding
 import com.develop.common.router.Screens
-import com.develop.common.tag.IS_LIKE_TAG
-import com.develop.common.tag.NUMBER_TAG
-import com.develop.common.tag.RECIPES_EDITION_TAG
-import com.develop.common.tag.SOURCE_TAG
+import com.develop.common.tag.*
 import com.develop.common.ui.CommonBVMFragment
 import com.develop.common.widget.*
 import com.develop.main.R
@@ -108,11 +105,7 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
 
     override fun onResume() {
         super.onResume()
-        if (viewModel.recipesType == RecipesType.ONLINE) {
-            viewModel.getOnLineCategoryList()
-        } else {
-            viewModel.queryRecipesCategory()
-        }
+        refreshOnLineOrLocalRecipes()
     }
 
     private fun initView() {
@@ -137,9 +130,8 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
                         HOME_FOOD_LIST_PROVIDER -> {
                             val foodListModel = getModel<FoodListModel>()
                             val foodRecycle =
-                                findView<RecyclerView>(com.develop.common.R.id.food_recycle)
+                                findView<RecyclerView>(R.id.food_recycle)
                             foodRecycle.apply {
-                                addItemDecoration(GridSpaceItemDecoration(4, 0, dp10))
                                 grid(4)
                                 setup {
                                     addType<FoodContentModel>(com.develop.common.R.layout.food_content_provider)
@@ -154,14 +146,13 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
                         HOME_FUNCTION_PROVIDER -> {
                             filterSortSearchView =
                                 findView<HomeFilterSortSearchView>(R.id.function_view)
-                            filterSortSearchView?.onFunctionCallback = functionCallback
-                        }
-                        HOME_BANNER_PROVIDER -> {
-                            val bannerAdapter =
-                                HomeBannerAdapter(getModel<HomeBannerListModel>().data)
-                            bannerAdapter.onBannerItemClickListener = bannerItemClickCallback
-                            findView<Banner<*, *>>(R.id.home_banner_view).adapter = bannerAdapter
-
+                            filterSortSearchView?.apply {
+                                if (!viewModel.isSearch) {
+                                    resetView()
+                                }
+                                hideOnlineLayout(getModel<FilterSortModel>().isOnLineState)
+                                onFunctionCallback = functionCallback
+                            }
                         }
                         HOME_SEARCH_PROVIDER -> {
                             findView<CommonSearchLayout>(R.id.common_search_view).apply {
@@ -185,12 +176,7 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
         binding.page.apply {
             setEnableRefresh(false)
             onRefresh {
-                if (viewModel.recipesType == RecipesType.ONLINE) {
-                    viewModel.netFoodLiveData.postValue(true)
-                    viewModel.getOnLineCategoryList()
-                } else {
-                    viewModel.queryLocalRecipes(categoryCode)
-                }
+                refreshOnLineOrLocalRecipes()
             }
             onLoadMore {
                 if (viewModel.recipesType == RecipesType.ONLINE) {
@@ -224,6 +210,10 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
         }
 
         override fun onSearchClick() {
+            viewModel.apply {
+                isSearch = true
+                homeOrBackLiveData.postValue(HomeOrBack.Back)
+            }
             //进入搜索页
             if (viewModel.recipesType == RecipesType.ONLINE) {
                 viewModel.getOnLineHotTags()
@@ -242,18 +232,23 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
         }
 
         override fun onDownloadClick() {
-
+            navigateTo(Screens.Cook.FOOD_LIST) {
+                val bundle = Bundle()
+                bundle.putString(
+                    FOOL_LIST_TITLE, globalApp().getString(com.develop.common.R.string.download)
+                )
+                bundle.putInt(FOOD_LIST_TYPE, Downloaded)
+                with(bundle)
+            }
         }
 
         override fun onOnlineRecipesClick() {
-
-        }
-
-        override fun onBackClick() {
-            if (viewModel.recipesType == RecipesType.ONLINE) {
-                viewModel.getOnLineCategoryList()
-            } else {
-                viewModel.queryLocalRecipes(categoryCode)
+            viewModel.apply {
+                getOnLineCategoryList()
+                recipesType = RecipesType.ONLINE
+                netFoodLiveData.postValue(true)
+                postEmptyOnlineRecipes()
+                homeOrBackLiveData.postValue(HomeOrBack.Back)
             }
         }
 
@@ -267,9 +262,7 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
                 viewModel.getOnLineRecipeList("", currentHotWord)
             } else {
                 viewModel.queryRecipesByHotWord(currentHotWord, CategoryType.All)
-                filterSortSearchView?.updateHotWord(
-                    hotWord
-                )
+                filterSortSearchView?.updateHotWord(hotWord)
             }
 
         }
@@ -290,19 +283,6 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
         }
 
 
-    /**banner点击回调 */
-    private var bannerItemClickCallback = object : HomeBannerAdapter.OnBannerItemClickListener {
-        override fun onNetRecipesClick(bannerModel: HomeBannerModel) {
-            viewModel.apply {
-                getOnLineCategoryList()
-                recipesType = RecipesType.ONLINE
-                netFoodLiveData.postValue(true)
-                postEmptyOnlineRecipes()
-            }
-        }
-    }
-
-
     /**绑定过滤或排序内容*/
     private fun bindFilterSortView(
         adapter: BindingAdapter,
@@ -341,9 +321,13 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
     /**liveData回调*/
     private fun initLiveDataCallback() {
         viewModel.apply {
-            //从网络菜谱切回本地菜谱,更新数据
+
             refreshRecipesLiveData.observe(viewLifecycleOwner) {
-                viewModel.queryRecipesCategory()
+                if (filterSortSearchView?.getOnlineLayoutVisible() != true) {
+                    //从网络菜谱切回本地菜谱,更新数据
+                    viewModel.recipesType = RecipesType.LOCAL
+                }
+                refreshOnLineOrLocalRecipes()
             }
             //获取本地菜谱分类回调
             localCategoryLiveData.observe(viewLifecycleOwner) {
@@ -454,9 +438,20 @@ class RecipesFragment : CommonBVMFragment<FragmentCommeListBinding, HomeViewMode
         }
     }
 
+    private fun refreshOnLineOrLocalRecipes() {
+        if (viewModel.recipesType == RecipesType.ONLINE) {
+            viewModel.apply {
+                postEmptyOnlineRecipes()
+                getOnLineCategoryList()
+            }
+        } else {
+            viewModel.queryRecipesCategory()
+        }
+    }
+
     companion object {
         val HOME_TITLE_PROVIDER = R.layout.home_title_provider
-        val HOME_FOOD_LIST_PROVIDER = com.develop.common.R.layout.food_grid_view
+        val HOME_FOOD_LIST_PROVIDER = R.layout.food_grid_view
         val HOME_BANNER_PROVIDER = R.layout.home_banner_provider
         val HOME_SEARCH_PROVIDER = R.layout.home_common_search_provider
         val HOME_CATEGORY_PROVIDER = R.layout.home_category_tab_provider

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

@@ -13,6 +13,7 @@ import com.develop.common.data_repo.net.Api
 import com.develop.common.data_repo.net.model.response.*
 import com.develop.common.tag.CURRENT_LANGUAGE
 import com.develop.common.tag.CURRENT_USER_ID
+import com.develop.common.widget.HomeOrBack
 import com.drake.net.Get
 import com.drake.net.utils.scope
 import kotlinx.coroutines.Dispatchers
@@ -36,6 +37,8 @@ class HomeViewModel : BaseViewModel() {
     var currentPageSize = 10
     var totalPageSize = 1
     var sortedType = SortedType.Popular
+    var homeOrBackLiveData = MutableLiveData<HomeOrBack>()
+    var isSearch = false
     private val userId = CURRENT_USER_ID
 
 
@@ -220,7 +223,7 @@ class HomeViewModel : BaseViewModel() {
                     DataFactory.genNetRecipesData(
                         currCategoryName,
                         tempOnLineRecipes,
-                        favoriteRecipesList,sortedType
+                        favoriteRecipesList, sortedType
                     )
                 )
             }
@@ -239,12 +242,12 @@ class HomeViewModel : BaseViewModel() {
 
 
     /**刷新空数据*/
-    fun postEmptyOnlineRecipes(){
+    fun postEmptyOnlineRecipes() {
         onLineRecipesLiveData.postValue(
             DataFactory.genNetRecipesData(
                 currCategoryName,
                 tempOnLineRecipes,
-                arrayListOf(),sortedType
+                arrayListOf(), sortedType
             )
         )
     }

+ 9 - 0
BusinessMain/src/main/res/layout/food_grid_view.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/food_recycle"
+    android:paddingStart="@dimen/convert_14px"
+    android:paddingEnd="@dimen/permission_sp_14"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+</androidx.recyclerview.widget.RecyclerView>

+ 8 - 48
BusinessMain/src/main/res/layout/fragment_modes.xml

@@ -4,60 +4,20 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <androidx.cardview.widget.CardView
-        android:id="@+id/list_mode"
-        android:layout_width="@dimen/convert_450px"
-        android:layout_height="@dimen/convert_120px"
-        android:layout_centerHorizontal="true"
-        android:layout_marginTop="@dimen/convert_105px"
-        app:cardCornerRadius="@dimen/convert_60px"
-        app:cardElevation="@dimen/convert_10px">
 
-        <RelativeLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-
-            <ImageView
-                android:id="@+id/iv_icon"
-                android:layout_width="@dimen/convert_54px"
-                android:layout_height="@dimen/convert_54px"
-                android:layout_centerVertical="true"
-                android:layout_marginStart="@dimen/convert_66px"
-                android:background="@drawable/ic_grid" />
-
-
-            <androidx.appcompat.widget.AppCompatTextView
-                android:id="@+id/list_name"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:layout_marginStart="@dimen/convert_39px"
-                android:layout_toEndOf="@id/iv_icon"
-                android:text="@string/grid_view"
-                android:textColor="@color/color_F4A12E"
-                android:textSize="@dimen/convert_54px" />
-        </RelativeLayout>
-
-    </androidx.cardview.widget.CardView>
-
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/grid_recycle"
+    <View
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_below="@id/list_mode"
-        android:layout_marginTop="@dimen/convert_20px"
-        android:visibility="gone" />
+        android:layout_height="@dimen/convert_320px"
+        android:layout_alignParentBottom="true"
+        android:background="@color/color_EE8F08" />
 
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/gallery_recycle"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/list_mode"
-        android:layout_marginTop="@dimen/convert_225px"
+        android:layout_height="match_parent"
         android:clipToPadding="false"
-        android:paddingStart="@dimen/convert_234px"
-        android:paddingEnd="@dimen/convert_234px" />
+        android:paddingStart="@dimen/convert_440px"
+        android:paddingEnd="@dimen/convert_440px" />
+
 
 </RelativeLayout>

+ 6 - 7
BusinessMain/src/main/res/layout/item_mode_card_view.xml

@@ -1,17 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
+    android:layout_width="wrap_content"
     android:layout_height="match_parent">
 
 
     <androidx.cardview.widget.CardView
         app:layout_constraintTop_toTopOf="parent"
         android:id="@+id/card_view"
-        android:layout_width="@dimen/convert_540px"
-        android:layout_height="@dimen/convert_840px"
+        android:layout_width="@dimen/convert_400px"
+        android:layout_height="@dimen/convert_400px"
         android:layout_marginTop="@dimen/convert_60px"
-        app:cardCornerRadius="@dimen/convert_30px"
         app:cardElevation="@dimen/convert_10px"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent">
@@ -24,14 +23,14 @@
     </androidx.cardview.widget.CardView>
 
     <androidx.appcompat.widget.AppCompatTextView
-        android:layout_marginTop="@dimen/convert_85px"
+        android:layout_marginTop="@dimen/convert_43px"
         android:id="@+id/tv_mode_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
         android:includeFontPadding="false"
-        android:textColor="@color/color_F4A12E"
-        android:textSize="@dimen/convert_54px"
+        android:textColor="@color/white"
+        android:textSize="@dimen/convert_40px"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@id/card_view" />

+ 2 - 2
BusinessSetting/src/main/java/com/develop/setting/ui/LanguageActivity.kt

@@ -47,7 +47,7 @@ class LanguageActivity : BaseBindingActivity<ActivityLanguageBinding>() {
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        EventBus.getDefault().register(this)
+        
         val isFromSetting = intent.extras?.getBoolean(LANGUAGE_FROM_SETTING) ?: false
         if (isFromSetting) {
             binding.apply {
@@ -194,7 +194,7 @@ class LanguageActivity : BaseBindingActivity<ActivityLanguageBinding>() {
 
     override fun onDestroy() {
         super.onDestroy()
-        EventBus.getDefault().unregister(this)
+        
         cancelConfirmDialog.removeSelf()
     }
 

+ 2 - 2
BusinessSetting/src/main/java/com/develop/setting/ui/PrivacyPolicyActivity.kt

@@ -27,7 +27,7 @@ class PrivacyPolicyActivity : BaseBindingActivity<ActivityPrivacePolicyBinding>(
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        EventBus.getDefault().register(this)
+        
         if (intent.extras?.getBoolean(POLICY_FROM_MAIN_SETTING) == true) {
             binding.ivSelected.visibility = View.GONE
             binding.tvAgree.visibility = View.GONE
@@ -78,7 +78,7 @@ class PrivacyPolicyActivity : BaseBindingActivity<ActivityPrivacePolicyBinding>(
     override fun onDestroy() {
         super.onDestroy()
         timeDownUtil?.cancel()
-        EventBus.getDefault().unregister(this)
+        
     }
 
     @Subscribe

+ 11 - 23
BusinessStep/src/main/java/com/develop/step/ui/FoodListActivity.kt

@@ -1,26 +1,21 @@
 package com.develop.step.ui
 
-import android.graphics.Rect
+
 import android.os.Bundle
 import android.view.LayoutInflater
-import android.view.View
-import androidx.recyclerview.widget.RecyclerView
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.develop.base.ext.resId2Dimension
 import com.develop.base.ext.updateText
 import com.develop.common.data_repo.db.FoodContentModel
 import com.develop.common.event.RefreshDataEvent
 import com.develop.common.router.Screens
-import com.develop.common.tag.FOOD_LIST_TYPE
-import com.develop.common.tag.FOOL_LIST_TITLE
-import com.develop.common.tag.Favourite
 import com.develop.common.ui.CommonBVMActivity
 import com.develop.common.widget.FoodContentView
-import com.develop.step.R
+import com.develop.common.R
+import com.develop.common.tag.*
 import com.develop.step.databinding.ActivityFoodListBinding
 import com.develop.step.viewmodel.FoodListViewModel
 import com.drake.brv.utils.grid
-import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
 import org.greenrobot.eventbus.EventBus
@@ -40,32 +35,21 @@ class FoodListActivity : CommonBVMActivity<ActivityFoodListBinding, FoodListView
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        EventBus.getDefault().register(this)
         val bundle = intent.extras
-        title = bundle?.getString(FOOL_LIST_TITLE) ?: ""
-        binding.tvTitle.updateText(title)
         binding.ivClose.setOnClickListener {
             finish()
         }
         viewModel.foodListType = bundle?.getInt(FOOD_LIST_TYPE) ?: Favourite
+        title = bundle?.getString(FOOL_LIST_TITLE) ?: ""
+        binding.tvTitle.updateText(title)
         binding.foodListRecycler.apply {
-            addItemDecoration(object : RecyclerView.ItemDecoration() {
-                override fun getItemOffsets(
-                    outRect: Rect,
-                    view: View,
-                    parent: RecyclerView,
-                    state: RecyclerView.State
-                ) {
-                    super.getItemOffsets(outRect, view, parent, state)
-                    val pos = parent.getChildAdapterPosition(view)
-                }
-            })
             grid(4)
             setup {
                 addType<FoodContentModel>(R.layout.food_content_provider)
                 onBind {
                     val foodContentView =
                         findView<FoodContentView>(R.id.food_content_view)
+                    foodContentView.mIsHistoryList = viewModel.foodListType == History
                     foodContentView.setFoodContent(getModel(), true)
                 }
             }
@@ -73,6 +57,10 @@ class FoodListActivity : CommonBVMActivity<ActivityFoodListBinding, FoodListView
 
         viewModel.foodListLiveData.observe(this) {
             binding.foodListRecycler.models = it
+            if (viewModel.foodListType == Downloaded) {
+                title = "$title(${it.size})"
+                binding.tvTitle.updateText(title)
+            }
         }
     }
 
@@ -88,7 +76,7 @@ class FoodListActivity : CommonBVMActivity<ActivityFoodListBinding, FoodListView
 
     override fun onDestroy() {
         super.onDestroy()
-        EventBus.getDefault().unregister(this)
+
     }
 
     companion object {

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

@@ -85,7 +85,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         hasShowScreenSaver = true
-        EventBus.getDefault().register(this)
+        
         viewModel.modeType = intent.extras?.getString(MODE_TYPE, ModesType.CHOP.name) ?: ""
         viewModel.lastModeType = viewModel.modeType
         //初始化模式数据
@@ -97,7 +97,7 @@ class ModesDetailActivity : CommonBVMActivity<ActivityModeDetailBinding, ModesVi
     override fun onDestroy() {
         super.onDestroy()
         CofarSDK.stoptWeight()
-        EventBus.getDefault().unregister(this)
+        
         viewModel.stopTurbo()
         viewModel.cancelAnimator()
         hasShowScreenSaver = false

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

@@ -91,7 +91,7 @@ abstract class CookStepBaseActivity :
         super.onCreate(savedInstanceState)
         hasShowScreenSaver = true
         ARouter.getInstance().inject(this)
-        EventBus.getDefault().register(this)
+        
         binding.viewProgress.background = cookProgressDrawable
         binding.tvTitleStep.setOnClickListener {
             showCookDetailDialog()
@@ -424,7 +424,7 @@ abstract class CookStepBaseActivity :
 
     override fun onDestroy() {
         super.onDestroy()
-        EventBus.getDefault().unregister(this)
+        
         turboTimer?.cancel()
         CofarSDK.stoptWeight()
         rotateAnimator?.cancel()

+ 1 - 6
BusinessStep/src/main/java/com/develop/step/viewmodel/FoodListViewModel.kt

@@ -71,11 +71,6 @@ class FoodListViewModel : BaseViewModel() {
         val userDao = FoodDataProvider.getUserDatabase().userInfoDao()
         val recipesDao = FoodDataProvider.getDatabase().recipeDao()
         val recipesIdList = mutableListOf<String>()
-        val favoriteRecipesIds = mutableListOf<String>()
-        userDao.queryFavoriteRecipes(CURRENT_USER_ID).forEach {
-            recipesIdList.add(it.favoriteRecipesId)
-            favoriteRecipesIds.add(it.favoriteRecipesId)
-        }
         userDao.queryUserOnLineRecipesIds().forEach {
             recipesIdList.add(it.onLineRecipesId)
         }
@@ -94,7 +89,7 @@ class FoodListViewModel : BaseViewModel() {
                     3,
                     getTime(it.makeHours ?: 0, it.makeMinutes ?: 0),
                     it.difficultyLevel ?: "",
-                    isLike = favoriteRecipesIds.contains(it.number),
+                    isLike = false,
                     foodId = it.number ?: "",
                     isNetRecipes = true,
                     hasDownloaded = true,

+ 11 - 9
BusinessStep/src/main/res/layout/activity_food_list.xml

@@ -6,27 +6,29 @@
 
     <ImageView
         android:id="@+id/iv_close"
-        android:layout_width="@dimen/convert_43px"
-        android:layout_height="@dimen/convert_43px"
-        android:layout_marginStart="@dimen/convert_31px"
-        android:layout_marginTop="@dimen/convert_20px"
-        android:padding="@dimen/convert_10px"
+        android:layout_width="@dimen/convert_53px"
+        android:layout_height="@dimen/convert_53px"
+        android:layout_marginStart="@dimen/convert_21px"
+        android:layout_marginTop="@dimen/convert_10px"
+        android:padding="@dimen/convert_15px"
         android:src="@drawable/ic_close" />
 
     <androidx.appcompat.widget.AppCompatTextView
         android:id="@+id/tv_title"
-        android:layout_marginTop="@dimen/convert_28px"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
+        android:layout_marginTop="@dimen/convert_28px"
         android:textColor="@color/color_1A1A1A"
         android:textSize="@dimen/convert_36px" />
 
     <androidx.recyclerview.widget.RecyclerView
-        android:layout_below="@id/tv_title"
-        android:layout_marginTop="@dimen/convert_20px"
         android:id="@+id/food_list_recycler"
         android:layout_width="match_parent"
-        android:layout_height="match_parent" />
+        android:layout_height="match_parent"
+        android:layout_below="@id/tv_title"
+        android:layout_marginTop="@dimen/convert_39px"
+        android:paddingStart="@dimen/convert_14px"
+        android:paddingEnd="@dimen/convert_14px" />
 
 </RelativeLayout>

+ 0 - 16
BusinessStep/src/main/res/layout/food_content_provider.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/recipes_layout"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/convert_330px"
-    android:layout_marginBottom="@dimen/convert_30px"
-    app:cardCornerRadius="@dimen/convert_10px"
-    app:cardElevation="@dimen/convert_10px"
-    app:layout_goneMarginBottom="@dimen/convert_24px">
-
-    <com.develop.common.widget.FoodContentView
-        android:id="@+id/food_content_view"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
-</androidx.cardview.widget.CardView>