Browse Source

Merge remote-tracking branch 'origin/master'

江天明 2 years ago
parent
commit
c6a340d6e7
44 changed files with 159 additions and 112 deletions
  1. 24 22
      BusinessAuth/src/main/java/com/develop/auth/ui/MemberProfileFragment.kt
  2. 5 2
      BusinessAuth/src/main/java/com/develop/auth/ui/UserIconSelectDialog.kt
  3. 1 0
      BusinessAuth/src/main/res/layout/fragment_member_profile.xml
  4. 1 1
      BusinessCommon/src/main/java/com/develop/common/data_repo/FoodDataProvider.kt
  5. 3 0
      BusinessCommon/src/main/java/com/develop/common/data_repo/net/converter/SerializationConverter.kt
  6. 0 1
      BusinessCommon/src/main/java/com/develop/common/data_repo/net/model/response/RecipeDetailResult.kt
  7. 27 27
      BusinessCommon/src/main/java/com/develop/common/data_repo/net/model/response/RegisterResult.kt
  8. 2 2
      BusinessCommon/src/main/java/com/develop/common/dialog/AmountSelectDialog.kt
  9. 1 1
      BusinessCommon/src/main/java/com/develop/common/dialog/CookStepCompleteDialog.kt
  10. 1 1
      BusinessCommon/src/main/java/com/develop/common/dialog/DownloadFailedDialog.kt
  11. 6 3
      BusinessCommon/src/main/java/com/develop/common/dialog/GenderSelectDialog.kt
  12. 4 3
      BusinessCommon/src/main/java/com/develop/common/dialog/NoteEditDialog.kt
  13. 1 1
      BusinessCommon/src/main/java/com/develop/common/dialog/PotCoverUnlockedDialog.kt
  14. 2 2
      BusinessCommon/src/main/java/com/develop/common/dialog/RecipeDeleteConfirmDialog.kt
  15. 1 1
      BusinessCommon/src/main/java/com/develop/common/dialog/ShareQRCodeDialog.kt
  16. 0 0
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_back.png
  17. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_detail_back.png
  18. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_quick.png
  19. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_rotate.png
  20. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_temp.png
  21. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_time.png
  22. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cooking_crush_small.png
  23. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cooking_remark.png
  24. BIN
      BusinessCommon/src/main/res/drawable-xxhdpi/ic_cooking_weight.png
  25. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_detail_back.png
  26. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_quick.png
  27. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_rotate.png
  28. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_temp.png
  29. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_time.png
  30. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cooking_crush_small.png
  31. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cooking_remark.png
  32. BIN
      BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cooking_weight.png
  33. 7 0
      BusinessCommon/src/main/res/drawable/bg_evaluate_button.xml
  34. 1 1
      BusinessCommon/src/main/res/layout/item_note_dialog.xml
  35. 2 1
      BusinessStep/src/main/java/com/develop/step/ui/recipes_detail/CookDetailActivity.kt
  36. 13 2
      BusinessStep/src/main/java/com/develop/step/viewmodel/CookDetailViewModel.kt
  37. 2 2
      BusinessStep/src/main/res/layout/activity_cook_detail.xml
  38. 47 34
      BusinessStep/src/main/res/layout/activity_cook_evaluate.xml
  39. 2 2
      BusinessStep/src/main/res/layout/fragment_detail_cook_desc.xml
  40. 3 1
      BusinessStep/src/main/res/layout/fragment_detail_cook_method.xml
  41. 1 1
      BusinessStep/src/main/res/layout/item_cook_controller.xml
  42. 1 0
      BusinessStep/src/main/res/layout/item_cook_tool.xml
  43. 0 1
      app/src/main/AndroidManifest.xml
  44. 1 0
      libThirdPart/build.gradle

+ 24 - 22
BusinessAuth/src/main/java/com/develop/auth/ui/MemberProfileFragment.kt

@@ -5,12 +5,14 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.ViewGroup
 import androidx.lifecycle.MutableLiveData
+import com.develop.auth.R
 import com.develop.auth.databinding.FragmentMemberProfileBinding
 import com.develop.auth.viewmodel.MemberViewModel
 import com.develop.base.ext.navigateTo
 import com.develop.base.ext.resId2Dimension
 import com.develop.base.ext.setVisible
 import com.develop.base.mvvm.BaseBVMFragment
+import com.develop.base.util.MMkvUtils
 import com.develop.base.util.ThreadUtils
 import com.develop.common.data_repo.FoodDataProvider
 import com.develop.common.data_repo.db.entity.UserInfo
@@ -18,6 +20,8 @@ import com.develop.common.data_repo.net.model.response.User
 import com.develop.common.dialog.AgeSelectDialog
 import com.develop.common.dialog.GenderSelectDialog
 import com.develop.common.router.Screens
+import com.develop.common.tag.API_TOKEN
+import com.develop.common.tag.LOGIN_TAG
 import com.develop.common.ui.CommonBVMFragment
 
 class MemberProfileFragment : CommonBVMFragment<FragmentMemberProfileBinding, MemberViewModel>() {
@@ -42,7 +46,9 @@ class MemberProfileFragment : CommonBVMFragment<FragmentMemberProfileBinding, Me
                 binding.tvChooseAge.setTextColor(Color.BLACK)
             }.show()
         }
-
+        binding.ivMember.setOnClickListener {
+            UserIconSelectDialog(viewModel).show(childFragmentManager, "UserIcon")
+        }
         binding.tvChooseSex.setOnClickListener {
             GenderSelectDialog {
                 selectGender = if (it) 2 else 1
@@ -63,32 +69,16 @@ class MemberProfileFragment : CommonBVMFragment<FragmentMemberProfileBinding, Me
             )
         }
         binding.tvSkipForNow.setOnClickListener {
+            if (viewModel.enterFromHome) {
+                val saveToken: String? = null
+                MMkvUtils.save(API_TOKEN, saveToken)
+                MMkvUtils.save(LOGIN_TAG, false)
+            }
             navigateTo(Screens.Main.ENTRANCE_CHOSEN)
         }
-//        binding.tvDestroyAccount.setOnClickListener {
-//
-//        }
-
         if (viewModel.enterFromHome) {
-            (binding.tvTitle.layoutParams as ViewGroup.MarginLayoutParams).let {
-                it.topMargin = dp53
-                binding.tvTitle.requestLayout()
-            }
-            (binding.tvSave.layoutParams as ViewGroup.MarginLayoutParams).let {
-                it.topMargin = dp101
-                binding.tvSave.requestLayout()
-            }
-            (binding.tvSkipForNow.layoutParams as ViewGroup.MarginLayoutParams).let {
-                it.topMargin = dp16
-                binding.tvSkipForNow.requestLayout()
-            }
             binding.tvSkipForNow.text = "Sign out"
-//            binding.tvDestroyAccount.setVisible()
         }
-    }
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
         viewModel.apply {
             userInfoLiveData.observe(viewLifecycleOwner) {
                 it?.apply {
@@ -104,6 +94,18 @@ class MemberProfileFragment : CommonBVMFragment<FragmentMemberProfileBinding, Me
                     showToast(this)
                 }
             }
+            viewModel.chooseAvatar.observe(viewLifecycleOwner) {
+                val icons = listOf(
+                    com.develop.common.R.drawable.ic_icon1,
+                    com.develop.common.R.drawable.ic_icon2,
+                    com.develop.common.R.drawable.ic_icon3,
+                    com.develop.common.R.drawable.ic_icon4,
+                    com.develop.common.R.drawable.ic_icon5,
+                    com.develop.common.R.drawable.ic_icon6
+                )
+                val chooseIcon = icons.getOrNull(it ?: 0) ?: com.develop.common.R.drawable.ic_icon1
+                binding.ivMember.setImageResource(chooseIcon)
+            }
         }
     }
 

+ 5 - 2
BusinessAuth/src/main/java/com/develop/auth/ui/UserIconSelectDialog.kt

@@ -18,7 +18,10 @@ class UserIconSelectDialog(var viewModel: MemberViewModel) : FullScreenTranspare
             inflater, container, false
         )
         binding.ivCancel.setOnClickListener {
-            removeSelf()
+            dismissAllowingStateLoss()
+        }
+        binding.root.setOnClickListener {
+            dismissAllowingStateLoss()
         }
         settingIconClick(binding.ivIcon1, 0)
         settingIconClick(binding.ivIcon2, 1)
@@ -32,7 +35,7 @@ class UserIconSelectDialog(var viewModel: MemberViewModel) : FullScreenTranspare
     private fun settingIconClick(view: View, index: Int) {
         view.setOnClickListener {
             viewModel.chooseAvatar.value = index
-            removeSelf()
+            dismissAllowingStateLoss()
         }
     }
 }

+ 1 - 0
BusinessAuth/src/main/res/layout/fragment_member_profile.xml

@@ -92,6 +92,7 @@
         android:gravity="center_vertical"
         android:layout_gravity="center_horizontal"
         android:paddingHorizontal="@dimen/convert_66px"
+        android:layout_marginEnd="@dimen/convert_40px"
         app:layout_constraintTop_toTopOf="@+id/tv_choose_sex"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toEndOf="@+id/tv_choose_sex"/>

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

@@ -27,7 +27,7 @@ import java.util.concurrent.CountDownLatch
  * 全局管理数据
  */
 object FoodDataProvider {
-    private val SYSTEM_MODE = BuildConfig.DEBUG
+    private val SYSTEM_MODE = !BuildConfig.DEBUG
     private val RES_DST_PARENT = if (SYSTEM_MODE) {
         Environment.getExternalStorageDirectory()
     } else {

+ 3 - 0
BusinessCommon/src/main/java/com/develop/common/data_repo/net/converter/SerializationConverter.kt

@@ -9,6 +9,7 @@ import com.drake.net.exception.RequestParamsException
 import com.drake.net.exception.ResponseException
 import com.drake.net.exception.ServerResponseException
 import com.drake.net.request.kType
+import kotlinx.serialization.ExperimentalSerializationApi
 import kotlinx.serialization.json.Json
 import kotlinx.serialization.serializer
 import okhttp3.Response
@@ -28,7 +29,9 @@ class SerializationConverter(
 ) : NetConverter {
 
     companion object {
+        @OptIn(ExperimentalSerializationApi::class)
         val jsonDecoder = Json {
+            explicitNulls = false
             ignoreUnknownKeys = true // JSON和数据模型字段可以不匹配
             coerceInputValues = true // 如果JSON字段是Null则使用默认值
         }

+ 0 - 1
BusinessCommon/src/main/java/com/develop/common/data_repo/net/model/response/RecipeDetailResult.kt

@@ -10,7 +10,6 @@ data class RecipeDetailResult(
     val devRecipeFoods: List<DevRecipeFood>,
     val devRecipeNutritions: List<DevRecipeNutrition>,
     val devRecipePortionSizes: List<DevRecipePortionSize>,
-    val recipeAccessorys: List<DevRecipeAccessory>,
     val recipeUrl: String
 )
 @Serializable

+ 27 - 27
BusinessCommon/src/main/java/com/develop/common/data_repo/net/model/response/RegisterResult.kt

@@ -8,31 +8,31 @@ data class RegisterResult(
 )
 @Serializable
 data class User(
-    val account: String,
-    val age: Int,
-    val areaName: String,
-    val brandOwnerCode: String,
-    val brandOwnerNumber: String,
-    val city: String,
-    val cityName: String,
-    val code: String,
-    val country: String,
-    val countryName: String,
-    val createTime: Long,
-    val endTime: String,
-    val gender: String?,
-    val id: Int,
-    val makeCount: String,
-    val nickname: String,
-    val number: String,
-    val password: String,
-    val portrait: String?,
-    val province: String,
-    val provinceName: String,
-    val registerTime: String,
-    val startTime: String,
-    val status: String,
-    val updateTime: Long,
-    val valid: Int,
-    val version: Int
+    val account: String? = "",
+    val age: Int = 0,
+    val areaName: String? = "",
+    val brandOwnerCode: String? = "",
+    val brandOwnerNumber: String? = "",
+    val city: String? = "",
+    val cityName: String? = "",
+    val code: String? = "",
+    val country: String? = "",
+    val countryName: String? = "",
+    val createTime: Long? = 0,
+    val endTime: String? = "",
+    val gender: String? = "",
+    val id: Int = 0,
+    val makeCount: String? = "",
+    val nickname: String? = "",
+    val number: String? = "",
+    val password: String? = "",
+    val portrait: String? = "",
+    val province: String? = "",
+    val provinceName: String? = "",
+    val registerTime: Long = 0,
+    val startTime: String? = "",
+    val status: String? = "",
+    val updateTime: Long? = 0,
+    val valid: Int? = 0,
+    val version: Int? = 0
 )

+ 2 - 2
BusinessCommon/src/main/java/com/develop/common/dialog/AmountSelectDialog.kt

@@ -30,10 +30,10 @@ class AmountSelectDialog(
             inflater, container, false
         )
         binding.ivCancel.setOnClickListener {
-            removeSelf()
+            dismissAllowingStateLoss()
         }
         binding.root.setOnClickListener {
-            removeSelf()
+            dismissAllowingStateLoss()
         }
         val wrappers = mutableListOf<Wrapper>()
         data.forEach {

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

@@ -24,7 +24,7 @@ class CookStepCompleteDialog(
         )
         binding.tvOk.setOnClickListener {
             clickOk?.invoke()
-              removeSelf()
+            dismissAllowingStateLoss()
         }
         return binding.root
     }

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

@@ -21,7 +21,7 @@ class DownloadFailedDialog: FullScreenTransparentDialog() {
             inflater, container, false
         )
         binding.tvOk.setOnClickListener {
-              removeSelf()
+            dismissAllowingStateLoss()
         }
         return binding.root
     }

+ 6 - 3
BusinessCommon/src/main/java/com/develop/common/dialog/GenderSelectDialog.kt

@@ -22,20 +22,23 @@ class GenderSelectDialog(
         binding = DialogGenderSelectBinding.inflate(
             inflater, container, false
         )
+        binding.root.setOnClickListener {
+            dismissAllowingStateLoss()
+        }
         binding.ivCancel.setOnClickListener {
-            removeSelf()
+            dismissAllowingStateLoss()
         }
         binding.tvSelectMale.setOnClickListener {
             binding.tvSelectFemale.isSelected = false
             binding.tvSelectMale.isSelected = true
             onSelect(true)
-            removeSelf()
+            dismissAllowingStateLoss()
         }
         binding.tvSelectFemale.setOnClickListener {
             binding.tvSelectFemale.isSelected = true
             binding.tvSelectMale.isSelected = false
             onSelect(false)
-            removeSelf()
+            dismissAllowingStateLoss()
         }
         binding.tvSelectMale.isSelected = true
         return binding.root

+ 4 - 3
BusinessCommon/src/main/java/com/develop/common/dialog/NoteEditDialog.kt

@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import com.blankj.utilcode.util.KeyboardUtils
 import com.develop.base.mvvm.FullScreenTransparentDialog
 import com.develop.common.databinding.ItemNoteDialogBinding
 
@@ -21,13 +22,13 @@ class NoteEditDialog: FullScreenTransparentDialog() {
             inflater, container, false
         )
         binding.root.setOnClickListener {
-              removeSelf()
+            KeyboardUtils.hideSoftInput(binding.etNote)
         }
         binding.viewComplete.setOnClickListener {
-              removeSelf()
+            dismissAllowingStateLoss()
         }
         binding.viewEdit.setOnClickListener {
-              removeSelf()
+            dismissAllowingStateLoss()
         }
         return binding.root
     }

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

@@ -20,7 +20,7 @@ class PotCoverUnlockedDialog: FullScreenTransparentDialog() {
             inflater, container, false
         )
         binding.ivCancel.setOnClickListener {
-              removeSelf()
+            dismissAllowingStateLoss()
         }
         return binding.root
     }

+ 2 - 2
BusinessCommon/src/main/java/com/develop/common/dialog/RecipeDeleteConfirmDialog.kt

@@ -24,10 +24,10 @@ class RecipeDeleteConfirmDialog(
         )
         binding.tvYes.setOnClickListener {
             onConfirm()
-            removeSelf()
+            dismissAllowingStateLoss()
         }
         binding.tvCancel.setOnClickListener {
-              removeSelf()
+            dismissAllowingStateLoss()
         }
         return binding.root
     }

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

@@ -30,7 +30,7 @@ class ShareQRCodeDialog : FullScreenTransparentDialog() {
                 }
             })
         binding.ivCancel.setOnClickListener {
-            removeSelf()
+            dismissAllowingStateLoss()
         }
         return binding.root
     }

BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_back.png → BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_back.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_detail_back.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_quick.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_rotate.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_temp.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cook_time.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cooking_crush_small.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cooking_remark.png


BIN
BusinessCommon/src/main/res/drawable-xxhdpi/ic_cooking_weight.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_detail_back.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_quick.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_rotate.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_temp.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cook_time.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cooking_crush_small.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cooking_remark.png


BIN
BusinessCommon/src/main/res/drawable-xxxhdpi/ic_cooking_weight.png


+ 7 - 0
BusinessCommon/src/main/res/drawable/bg_evaluate_button.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <solid android:color="#EE8F08"/>
+    <corners android:radius="@dimen/convert_80px"/>
+
+</shape>

+ 1 - 1
BusinessCommon/src/main/res/layout/item_note_dialog.xml

@@ -9,7 +9,7 @@
         android:layout_width="@dimen/convert_550px"
         android:layout_height="@dimen/convert_360px"
         android:layout_gravity="center_horizontal"
-        android:layout_marginTop="@dimen/convert_170px"
+        android:layout_marginTop="@dimen/convert_120px"
         android:background="@drawable/bg_cook_note">
 
         <TextView

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

@@ -106,7 +106,7 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
         }
         viewModel.portionSizeLiveData.observe(this) {
             val jarsCount =
-                (it.portionSize ?: 1).toString() + " " + getString(com.develop.common.R.string.jar)
+                (it?.portionSize ?: 1).toString() + " " + getString(com.develop.common.R.string.jar)
             binding.tvJarCount.text = jarsCount
         }
     }
@@ -198,6 +198,7 @@ class CookDetailActivity : CommonBVMActivity<ActivityCookDetailBinding, CookDeta
             navigateTo(Screens.Cook.COOK_EVALUATE) {
                 withString("recipeId", recipeNumber)
             }
+            binding.clFuncMore.setGone()
         }
         binding.tvMoreDelete.setOnClickListener {
             binding.clFuncMore.setGone()

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

@@ -4,26 +4,32 @@ import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.scopeNetLife
 import com.blankj.utilcode.util.FileUtils
+import com.blankj.utilcode.util.GsonUtils
 import com.blankj.utilcode.util.ToastUtils
 import com.blankj.utilcode.util.ZipUtils
 import com.develop.base.ext.fromJson
 import com.develop.base.ext.globalApp
 import com.develop.base.mvvm.BaseViewModel
 import com.develop.base.util.FileKit
+import com.develop.base.util.MMkvUtils
 import com.develop.base.util.ThreadUtils
 import com.develop.common.data_repo.FoodDataProvider
 import com.develop.common.data_repo.db.entity.DevAccessory
 import com.develop.common.data_repo.db.entity.DevRecipePortionSize
 import com.develop.common.data_repo.db.entity.UserOnLineRecipes
 import com.develop.common.data_repo.net.Api
+import com.develop.common.data_repo.net.converter.SerializationConverter
 import com.develop.common.data_repo.net.model.response.RecipeDataConfig
 import com.develop.common.data_repo.net.model.response.RecipeDetailResult
+import com.develop.common.tag.CURRENT_LANGUAGE
 import com.develop.common.tag.CURRENT_USER_ID
 import com.develop.common.utils.Resource
 import com.develop.step.ui.recipes_detail.model.CookDetailInfo
 import com.drake.net.Get
 import com.drake.net.component.Progress
 import com.drake.net.interfaces.ProgressListener
+import kotlinx.serialization.decodeFromString
+import kotlinx.serialization.json.Json
 import java.io.File
 
 class CookDetailViewModel : BaseViewModel() {
@@ -53,7 +59,11 @@ class CookDetailViewModel : BaseViewModel() {
         this.recipeNumber = number
         if (remote) {
             scopeNetLife {
-                Get<RecipeDetailResult>(Api.GET_RECIPES_DETAIL).await().apply {
+                Get<RecipeDetailResult>(Api.GET_RECIPES_DETAIL) {
+                    addQuery("recipeNumber", number)
+                    addQuery("recipeEditon", recipesEdition)
+                    addQuery("lang", MMkvUtils.getString(CURRENT_LANGUAGE) ?: "EN")
+                }.await().apply {
                     mRecipeUrl = recipeUrl
                     val detailInfo = CookDetailInfo(
                         devRecipe,
@@ -190,7 +200,8 @@ class CookDetailViewModel : BaseViewModel() {
                 return
             }
             val jsonContent = FileKit.readFileToString(jsonFile)
-            val contentData = jsonContent.fromJson() as RecipeDataConfig
+
+            val contentData = GsonUtils.fromJson(jsonContent, RecipeDataConfig::class.java)
             contentData.resetAllCodes()
             FoodDataProvider.getDatabase().runInTransaction {
                 FoodDataProvider.getDatabase().recipeDao().apply {

+ 2 - 2
BusinessStep/src/main/res/layout/activity_cook_detail.xml

@@ -216,7 +216,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textColor="#fff"
-            android:textSize="@dimen/convert_54px"
+            android:textSize="@dimen/convert_36px"
             android:text="0%"
             android:visibility="gone"
             android:includeFontPadding="false"
@@ -230,7 +230,7 @@
             android:id="@+id/tv_download_state"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textSize="@dimen/convert_36px"
+            android:textSize="@dimen/convert_26px"
             android:textColor="#fff"
             android:text="@string/downloading"
             android:visibility="gone"

+ 47 - 34
BusinessStep/src/main/res/layout/activity_cook_evaluate.xml

@@ -6,17 +6,29 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools">
 
+    <TextView
+        android:id="@+id/tv_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="#1A1A1A"
+        android:textSize="@dimen/convert_36px"
+        android:text="GRADE"
+        android:layout_marginTop="@dimen/convert_68px"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent"/>
+
     <TextView
         android:id="@+id/tv_good"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="#FFA627"
-        android:textSize="@dimen/convert_108px"
+        android:textSize="@dimen/convert_60px"
         android:text="@string/bad"
-        android:layout_marginTop="@dimen/convert_248px"
+        android:layout_marginTop="@dimen/convert_12px"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="parent"/>
+        app:layout_constraintTop_toBottomOf="@+id/tv_title"/>
 
     <LinearLayout
         android:id="@+id/ll_stars"
@@ -24,81 +36,82 @@
         android:layout_height="wrap_content"
         android:orientation="horizontal"
         android:gravity="center_vertical"
-        android:layout_marginTop="@dimen/convert_105px"
+        android:layout_marginTop="@dimen/convert_10px"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/tv_good">
 
         <ImageView
             android:id="@+id/iv_star1"
-            android:layout_width="@dimen/convert_81px"
-            android:layout_height="@dimen/convert_75px"
+            android:layout_width="@dimen/convert_45px"
+            android:layout_height="@dimen/convert_45px"
             android:src="@drawable/ic_star_unselected"
             app:tint="@color/detail_star_tint2"
             tools:tint="#f4a12e"/>
 
         <ImageView
             android:id="@+id/iv_star2"
-            android:layout_width="@dimen/convert_81px"
-            android:layout_height="@dimen/convert_75px"
+            android:layout_width="@dimen/convert_45px"
+            android:layout_height="@dimen/convert_45px"
             android:src="@drawable/ic_star_unselected"
             app:tint="@color/detail_star_tint2"
             tools:tint="#f4a12e"
-            android:layout_marginStart="@dimen/convert_39px"/>
+            android:layout_marginStart="@dimen/convert_25px"/>
 
         <ImageView
             android:id="@+id/iv_star3"
-            android:layout_width="@dimen/convert_81px"
-            android:layout_height="@dimen/convert_75px"
+            android:layout_width="@dimen/convert_45px"
+            android:layout_height="@dimen/convert_45px"
             android:src="@drawable/ic_star_unselected"
             app:tint="@color/detail_star_tint2"
             tools:tint="#f4a12e"
-            android:layout_marginStart="@dimen/convert_39px"/>
+            android:layout_marginStart="@dimen/convert_25px"/>
 
         <ImageView
             android:id="@+id/iv_star4"
-            android:layout_width="@dimen/convert_81px"
-            android:layout_height="@dimen/convert_75px"
+            android:layout_width="@dimen/convert_45px"
+            android:layout_height="@dimen/convert_45px"
             android:src="@drawable/ic_star_unselected"
             app:tint="@color/detail_star_tint2"
             tools:tint="#f4a12e"
-            android:layout_marginStart="@dimen/convert_39px"/>
+            android:layout_marginStart="@dimen/convert_25px"/>
 
         <ImageView
             android:id="@+id/iv_star5"
-            android:layout_width="@dimen/convert_81px"
-            android:layout_height="@dimen/convert_75px"
+            android:layout_width="@dimen/convert_45px"
+            android:layout_height="@dimen/convert_45px"
             android:src="@drawable/ic_star_unselected"
             app:tint="@color/detail_star_tint2"
             tools:tint="#f4a12e"
-            android:layout_marginStart="@dimen/convert_39px"/>
+            android:layout_marginStart="@dimen/convert_25px"/>
 
     </LinearLayout>
 
     <EditText
         android:imeOptions="actionDone"
         android:id="@+id/et_content"
-        android:layout_width="@dimen/convert_930px"
-        android:layout_height="@dimen/convert_389px"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/convert_193px"
+        android:layout_marginHorizontal="@dimen/convert_60px"
         android:background="@drawable/bg_evaluate_content"
-        android:layout_marginTop="@dimen/convert_84px"
-        android:padding="@dimen/convert_53px"
+        android:layout_marginTop="@dimen/convert_23px"
+        android:padding="@dimen/convert_25px"
         android:hint="@string/enter_what_you_want_to_say"
         android:gravity="start"
-        android:textColor="#000000"
-        android:textColorHint="#6B6B6B"
-        android:textSize="@dimen/convert_39px"
+        android:textColor="#A3A3A2"
+        android:textColorHint="#A3A3A2"
+        android:textSize="@dimen/convert_30px"
         app:layout_constraintTop_toBottomOf="@+id/ll_stars"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"/>
 
     <ImageView
         android:id="@+id/view_close"
-        android:layout_width="@dimen/convert_90px"
-        android:layout_height="@dimen/convert_90px"
+        android:layout_width="@dimen/convert_60px"
+        android:layout_height="@dimen/convert_60px"
         android:src="@drawable/ic_cancel"
         app:tint="#FFA627"
-        android:padding="@dimen/convert_16px"
+        android:padding="@dimen/convert_8px"
         android:layout_marginStart="@dimen/convert_45px"
         android:layout_marginTop="@dimen/convert_45px"
         app:layout_constraintStart_toStartOf="parent"
@@ -106,15 +119,15 @@
 
     <TextView
         android:id="@+id/tv_ok"
-        android:layout_width="@dimen/convert_930px"
-        android:layout_height="@dimen/convert_120px"
-        android:layout_marginTop="@dimen/convert_143px"
-        android:background="@drawable/bg_tare_button"
+        android:layout_width="@dimen/convert_160px"
+        android:layout_height="@dimen/convert_98px"
+        android:background="@drawable/bg_evaluate_button"
         android:gravity="center"
         android:textColor="#fff"
         android:text="@string/ok"
-        app:layout_constraintTop_toBottomOf="@+id/et_content"
-        app:layout_constraintStart_toStartOf="parent"
+        android:textSize="@dimen/convert_36px"
+        android:layout_margin="@dimen/convert_42px"
+        app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintEnd_toEndOf="parent"/>
 
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 2
BusinessStep/src/main/res/layout/fragment_detail_cook_desc.xml

@@ -4,7 +4,8 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:paddingHorizontal="@dimen/convert_50px">
+    android:paddingHorizontal="@dimen/convert_50px"
+    android:paddingTop="@dimen/convert_40px">
 
     <TextView
         android:id="@+id/tv_step_detail"
@@ -14,7 +15,6 @@
         android:textSize="@dimen/convert_28px"
         android:textColor="#1A1A1A"
         android:lineSpacingExtra="@dimen/convert_10px"
-        android:layout_marginTop="@dimen/convert_40px"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"/>
 

+ 3 - 1
BusinessStep/src/main/res/layout/fragment_detail_cook_method.xml

@@ -3,13 +3,15 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:clipToPadding="false">
+    android:clipToPadding="false"
+    android:clipChildren="false">
 
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/rv_tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:clipToPadding="false"
+        android:clipChildren="false"
         android:layout_marginTop="@dimen/convert_38px"/>
 
 </FrameLayout>

+ 1 - 1
BusinessStep/src/main/res/layout/item_cook_controller.xml

@@ -395,7 +395,7 @@
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        android:layout_marginTop="@dimen/convert_160px">
+        android:layout_marginTop="@dimen/convert_120px">
 
         <View
             android:layout_width="@dimen/convert_110px"

+ 1 - 0
BusinessStep/src/main/res/layout/item_cook_tool.xml

@@ -5,6 +5,7 @@
     android:layout_height="wrap_content"
     android:orientation="vertical"
     android:paddingBottom="@dimen/convert_24px"
+    android:clipChildren="false"
     xmlns:tools="http://schemas.android.com/tools">
 
     <ImageView

+ 0 - 1
app/src/main/AndroidManifest.xml

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    android:sharedUserId="android.uid.system"
     package="com.develop.foodcooking">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

+ 1 - 0
libThirdPart/build.gradle

@@ -73,5 +73,6 @@ dependencies {
     //屏幕适配
     api "me.jessyan:autosize:1.2.1"
     api 'com.github.bumptech.glide:glide:4.12.0'
+    api 'com.google.code.gson:gson:2.8.9'
 
 }