From 9a0b066490886442a353ab41dec6cb16f5cefd80 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 28 Apr 2026 18:13:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ui):=20=E5=AF=B9=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E8=BF=9B=E8=A1=8C=E7=BB=9F=E4=B8=80=E9=87=8D?= =?UTF-8?q?=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 SelectDishActivity 重命名为 CookingModeActivity - 将 PrepareCookActivity 重命名为 PrepareFoodActivity - 将 SamplingListActivity 重命名为 SamplingModeActivity - 更新 AndroidManifest.xml 中的活动声明 - 修改 DishListFragment 中的相关引用 - 注释掉 DishSamplingActivity 的完整实现代码 - 更新 DeviceConfigFragment 中的活动跳转逻辑 - 优化 CookingModeActivity 的视图绑定方式 - 更新相关导入包路径和类引用 --- app/src/main/AndroidManifest.xml | 16 +- ...DishActivity.kt => CookingModeActivity.kt} | 11 +- .../dish/match/ui/DishSamplingActivity.kt | 582 +++++++++--------- .../dish/match/ui/FoodSearchActivity.kt | 7 +- .../com/shuwei/dish/match/ui/HomeActivity.kt | 13 +- .../com/shuwei/dish/match/ui/InitActivity.kt | 10 +- ...CookActivity.kt => PrepareFoodActivity.kt} | 17 +- ...istActivity.kt => SamplingModeActivity.kt} | 20 +- .../dish/match/ui/SingleFragmentActivity.kt | 5 +- .../dish/match/ui/SubmitFoodActivity.kt | 16 +- .../match/ui/fragment/DeviceConfigFragment.kt | 12 +- .../match/ui/fragment/DishListFragment.kt | 11 +- ...ragment.kt => VectorCollectionFragment.kt} | 8 +- ...ect_dish.xml => activity_cooking_mode.xml} | 0 .../res/layout/activity_dish_sampling.xml | 508 +++++++-------- ...are_cook.xml => activity_prepare_food.xml} | 0 ...ampling.xml => activity_sampling_mode.xml} | 0 ...ect.xml => fragment_vector_collection.xml} | 0 18 files changed, 617 insertions(+), 619 deletions(-) rename app/src/main/java/com/shuwei/dish/match/ui/{SelectDishActivity.kt => CookingModeActivity.kt} (95%) rename app/src/main/java/com/shuwei/dish/match/ui/{PrepareCookActivity.kt => PrepareFoodActivity.kt} (97%) rename app/src/main/java/com/shuwei/dish/match/ui/{SamplingListActivity.kt => SamplingModeActivity.kt} (96%) rename app/src/main/java/com/shuwei/dish/match/ui/fragment/{CollectFragment.kt => VectorCollectionFragment.kt} (98%) rename app/src/main/res/layout/{activity_select_dish.xml => activity_cooking_mode.xml} (100%) rename app/src/main/res/layout/{activity_prepare_cook.xml => activity_prepare_food.xml} (100%) rename app/src/main/res/layout/{activity_sampling.xml => activity_sampling_mode.xml} (100%) rename app/src/main/res/layout/{fragment_collect.xml => fragment_vector_collection.xml} (100%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9488e5b..d1a275d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -58,23 +58,23 @@ tools:ignore="DiscouragedApi,LockedOrientationActivity" /> + + + + + - - //Log.d(TAG, "addViewClickListener: address=$address,state=$state,weight=$weight") - if (address == AddressUtil.ONE) { - tempDishEntity?.useWeight = weight.toDouble() - binding.tvDishPartWeight.text = "${weight}" - } - }) - addBackKeyListener() - } - - private fun setTitleBar() { - setTitleBar(titleBarAction = { - it.visible() - }, titleAction = { - it.text = "菜品采集" - }, rightIconActon = { - it.gone() - it.setImageResource(R.drawable.ic_setting) - it.setOnClickListener { - //startActivity() - } - }, backAction = { - it.visible() - it.setOnClickListener { - onBackPressedDispatcher.onBackPressed() - } - }) - } - - - - fun getCookFoodList() { - appViewModel.getCookFoodList(cookMode = 1) - } - - /** - * 监听返回键 - */ - fun addBackKeyListener() { - onBackPressedDispatcher.addCallback(this) { - if (list.isEmpty().not()) { - //说明有新增的食材 - saveDataRemindDialog() - return@addCallback - } - if (pageFrom == HOME) { - startActivity() - } - onBackPressedDispatcher.onBackPressed() - } - } - - private fun saveDataRemindDialog() { - CommonDialog(this) - .setTitle("返回提示") - .setContent("您好,当前页面存在未保存的数据,\n确认返回吗?") - .setNegativeButton("取消") - .setPositiveButton("确认") { - if (pageFrom == HOME) { - startActivity() - } - finish() - } - .setOnDismissCallback { hideStatusBar() } - .show() - } - - - val list: MutableList = mutableListOf() - - private var tempDishEntity: CookFoodGoodsEntity? = null - - private var dishMaterialType = 1 - - private val dishAdapter by lazy { - DishPartAdapter(list).apply { - addOnItemChildClickListener(R.id.ivOperateIcon) { _, _, position -> - //删除操作 - list.removeAt(position) - notifyItemRemoved(position) - notifyItemRangeChanged(position, list.size - position) - } - } - } - - @SuppressLint("NotifyDataSetChanged") - private fun addViewClickListener() { - binding.rvDishPartList.run { - layoutManager = - LinearLayoutManager(this@DishSamplingActivity, LinearLayoutManager.VERTICAL, false) - adapter = dishAdapter - val itemTouchHelper = ItemTouchHelper(SwipeCallback(dishAdapter) { position -> - list.removeAt(position) - dishAdapter.notifyItemRemoved(position) - dishAdapter.notifyItemRangeChanged(position, list.size - position) - toast("已删除") - }) - itemTouchHelper.attachToRecyclerView(this) - } - binding.etInputDishType.addOnActionSearchListener { - searchDishType() - } - binding.ivDishTypeSearch.setOnClickListener { - searchDishType() - } - - binding.ivWeightClear.setOnClickListener { - WeightUtil.tareTwo(AddressUtil.ONE) - } - binding.ivWeightAdd.setOnClickListener { - if (tempDishEntity == null) { - toast("请输入食材名称") - return@setOnClickListener - } - if (binding.rgSampling.checkedRadioButtonId == -1) { - toast("请选择主辅材类型") - return@setOnClickListener - } - val realWeight = tempDishEntity!!.useWeight ?: 0.0 - if (realWeight <= 0.toDouble()) { - toast("食材用量需要大于0") - return@setOnClickListener - } - if (tempDishEntity?.goodsName != binding.etInputDishType.text.toString().trim()) { - toast("所选择的食材名称与输入框内容不一致") - return@setOnClickListener - } - tempDishEntity!!.apply { - isSamplingPage = true - materialType = dishMaterialType - } - val result = list.firstOrNull { it.goodsId == tempDishEntity!!.goodsId } - if (result != null) { - toast("${result.goodsName}食材已添加,请勿重复操作") - return@setOnClickListener - } - list.add(tempDishEntity!!) - dishAdapter.notifyDataSetChanged() - tempDishEntity = null - binding.etInputDishType.setText("") - binding.rgSampling.clearCheck() - } - binding.rgSampling.setOnCheckedChangeListener { group, checkedId -> - dishMaterialType = if (checkedId == R.id.rbDishTypeFirst) 1 else 2 - } - binding.ivDishSearch.setOnClickListener { v -> - jumpSearch(v) - } - binding.btnCook.clickWithDebounce { - val showFoodName = binding.etInputDish.text.toString().trim() - if (showFoodName.isBlank()) { - toast("菜品名称为空") - return@clickWithDebounce - } - if (list.isEmpty()) { - toast("菜品构成信息未设置") - return@clickWithDebounce - } - val food = FoodRecord() - binding.etInputDish.let { - if (it.tag != null && it.tag.toString() == it.text.toString()) { - food.foodId = foodId - } - } - food.foodName = showFoodName - food.cookMode = 1 - Log.d(TAG, "goToSubmit: goodsList:${list.toJsonString()}") -// startActivity { - startActivity { - putExtra(SubmitFoodActivity.GOODS_LIST, list as java.io.Serializable) - putExtra(SubmitFoodActivity.FOOD_ITEM, food as Serializable) - } - } - binding.etInputDish.let { v -> - v.addOnActionSearchListener { - jumpSearch(v) - } - } - } - - private fun jumpSearch(v: View) { - val intent = Intent(this, FoodSearchActivity::class.java).apply { - putExtra(FoodSearchActivity.FOOD_NAME, binding.etInputDish.text.toString().trim()) - } - startActivity(intent) { - foodId = it?.getStringExtra(FoodSearchActivity.FOOD_ID) - foodName = it?.getStringExtra(FoodSearchActivity.FOOD_NAME) - binding.etInputDish.run { - setText(foodName) - tag = foodName - setSelection(text.length) - } - } - KeyboardUtil.hideKeyboard(v) - } - - private fun searchDishType() { - val inputText = binding.etInputDishType.text.toString().trim() - FoodSearchDialog( - activity = this@DishSamplingActivity, - defGoodsName = inputText - ) { item -> - val filterResult = list.firstOrNull { it.goodsName == item.goodsName } - if (filterResult != null) { - toast("不允许重复添加同一食材") - return@FoodSearchDialog - } - binding.etInputDishType.run { - setText(item.goodsName) - setSelection(length()) - } - tempDishEntity = CookFoodGoodsEntity().apply { - goodsId = item.goodsId - goodsName = item.goodsName - - relateionType = item.relateionType ?: 0 - goodsOrRelationCode = item.goodsOrRelationCode - - isNewDishType = true - // TODO: 待定 - //allEdible = item.allEdible - } - }.show() - } - -} \ No newline at end of file +//package com.shuwei.dish.match.ui +// +//import android.annotation.SuppressLint +//import android.content.Intent +//import android.os.Bundle +//import android.util.Log +//import android.view.View +//import androidx.activity.addCallback +//import androidx.activity.viewModels +//import androidx.recyclerview.widget.ItemTouchHelper +//import androidx.recyclerview.widget.LinearLayoutManager +//import com.shuwei.dish.match.R +//import com.shuwei.dish.match.adapter.DishPartAdapter +//import com.shuwei.dish.match.base.BaseActivity +//import com.shuwei.dish.match.base.BaseApp +//import com.shuwei.dish.match.databinding.ActivityDishSamplingBinding +//import com.shuwei.dish.match.dialog.FoodSearchDialog +//import com.shuwei.dish.match.dialog.CommonDialog +//import com.shuwei.dish.match.entity.CookFoodEntity +//import com.shuwei.dish.match.entity.CookFoodGoodsEntity +//import com.shuwei.dish.match.entity.FoodRecord +//import com.shuwei.dish.match.net.NetViewModel +//import com.shuwei.dish.match.utils.AddressUtil +//import com.shuwei.dish.match.utils.KeyboardUtil +//import com.shuwei.dish.match.utils.SwipeCallback +//import com.shuwei.dish.match.utils.WeightUtil +//import com.shuwei.dish.match.utils.ext.addOnActionSearchListener +//import com.shuwei.dish.match.utils.ext.clickWithDebounce +//import com.shuwei.dish.match.utils.ext.gone +//import com.shuwei.dish.match.utils.ext.startActivity +//import com.shuwei.dish.match.utils.ext.toJsonString +//import com.shuwei.dish.match.utils.ext.toast +//import com.shuwei.dish.match.utils.ext.visible +//import java.io.Serializable +// +//class DishSamplingActivity : BaseActivity() { +// +// private lateinit var binding: ActivityDishSamplingBinding +// +// var foodName: String? = null +// +// private var foodId: String? = null +// +// companion object { +// private const val TAG = "DishSamplingActivity" +// public const val FOOD_NAME = "foodName" +// public const val PAGE_FROM = "pageFrom" +// public const val HOME = "home" +// } +// +// private var pageFrom: String? = null +// +// override fun onCreate(savedInstanceState: Bundle?) { +// super.onCreate(savedInstanceState) +// binding = ActivityDishSamplingBinding.inflate(layoutInflater) +// setContentView(binding.root) +// pageFrom = intent.getStringExtra(PAGE_FROM) +// setTitleBar() +// setHeaderBackground() +// addViewClickListener() +// foodName = intent.getStringExtra(FOOD_NAME) +// binding.etInputDish.setText(foodName) +// +// WeightUtil.addWeightListener( +// weightKey = TAG, +// getWeight = { address, state, weight -> +// //Log.d(TAG, "addViewClickListener: address=$address,state=$state,weight=$weight") +// if (address == AddressUtil.ONE) { +// tempDishEntity?.useWeight = weight.toDouble() +// binding.tvDishPartWeight.text = "${weight}" +// } +// }) +// addBackKeyListener() +// } +// +// private fun setTitleBar() { +// setTitleBar(titleBarAction = { +// it.visible() +// }, titleAction = { +// it.text = "菜品采集" +// }, rightIconActon = { +// it.gone() +// it.setImageResource(R.drawable.ic_setting) +// it.setOnClickListener { +// //startActivity() +// } +// }, backAction = { +// it.visible() +// it.setOnClickListener { +// onBackPressedDispatcher.onBackPressed() +// } +// }) +// } +// +// +// +// fun getCookFoodList() { +// appViewModel.getCookFoodList(cookMode = 1) +// } +// +// /** +// * 监听返回键 +// */ +// fun addBackKeyListener() { +// onBackPressedDispatcher.addCallback(this) { +// if (list.isEmpty().not()) { +// //说明有新增的食材 +// saveDataRemindDialog() +// return@addCallback +// } +// if (pageFrom == HOME) { +// startActivity() +// } +// onBackPressedDispatcher.onBackPressed() +// } +// } +// +// private fun saveDataRemindDialog() { +// CommonDialog(this) +// .setTitle("返回提示") +// .setContent("您好,当前页面存在未保存的数据,\n确认返回吗?") +// .setNegativeButton("取消") +// .setPositiveButton("确认") { +// if (pageFrom == HOME) { +// startActivity() +// } +// finish() +// } +// .setOnDismissCallback { hideStatusBar() } +// .show() +// } +// +// +// val list: MutableList = mutableListOf() +// +// private var tempDishEntity: CookFoodGoodsEntity? = null +// +// private var dishMaterialType = 1 +// +// private val dishAdapter by lazy { +// DishPartAdapter(list).apply { +// addOnItemChildClickListener(R.id.ivOperateIcon) { _, _, position -> +// //删除操作 +// list.removeAt(position) +// notifyItemRemoved(position) +// notifyItemRangeChanged(position, list.size - position) +// } +// } +// } +// +// @SuppressLint("NotifyDataSetChanged") +// private fun addViewClickListener() { +// binding.rvDishPartList.run { +// layoutManager = +// LinearLayoutManager(this@DishSamplingActivity, LinearLayoutManager.VERTICAL, false) +// adapter = dishAdapter +// val itemTouchHelper = ItemTouchHelper(SwipeCallback(dishAdapter) { position -> +// list.removeAt(position) +// dishAdapter.notifyItemRemoved(position) +// dishAdapter.notifyItemRangeChanged(position, list.size - position) +// toast("已删除") +// }) +// itemTouchHelper.attachToRecyclerView(this) +// } +// binding.etInputDishType.addOnActionSearchListener { +// searchDishType() +// } +// binding.ivDishTypeSearch.setOnClickListener { +// searchDishType() +// } +// +// binding.ivWeightClear.setOnClickListener { +// WeightUtil.tareTwo(AddressUtil.ONE) +// } +// binding.ivWeightAdd.setOnClickListener { +// if (tempDishEntity == null) { +// toast("请输入食材名称") +// return@setOnClickListener +// } +// if (binding.rgSampling.checkedRadioButtonId == -1) { +// toast("请选择主辅材类型") +// return@setOnClickListener +// } +// val realWeight = tempDishEntity!!.useWeight ?: 0.0 +// if (realWeight <= 0.toDouble()) { +// toast("食材用量需要大于0") +// return@setOnClickListener +// } +// if (tempDishEntity?.goodsName != binding.etInputDishType.text.toString().trim()) { +// toast("所选择的食材名称与输入框内容不一致") +// return@setOnClickListener +// } +// tempDishEntity!!.apply { +// isSamplingPage = true +// materialType = dishMaterialType +// } +// val result = list.firstOrNull { it.goodsId == tempDishEntity!!.goodsId } +// if (result != null) { +// toast("${result.goodsName}食材已添加,请勿重复操作") +// return@setOnClickListener +// } +// list.add(tempDishEntity!!) +// dishAdapter.notifyDataSetChanged() +// tempDishEntity = null +// binding.etInputDishType.setText("") +// binding.rgSampling.clearCheck() +// } +// binding.rgSampling.setOnCheckedChangeListener { group, checkedId -> +// dishMaterialType = if (checkedId == R.id.rbDishTypeFirst) 1 else 2 +// } +// binding.ivDishSearch.setOnClickListener { v -> +// jumpSearch(v) +// } +// binding.btnCook.clickWithDebounce { +// val showFoodName = binding.etInputDish.text.toString().trim() +// if (showFoodName.isBlank()) { +// toast("菜品名称为空") +// return@clickWithDebounce +// } +// if (list.isEmpty()) { +// toast("菜品构成信息未设置") +// return@clickWithDebounce +// } +// val food = FoodRecord() +// binding.etInputDish.let { +// if (it.tag != null && it.tag.toString() == it.text.toString()) { +// food.foodId = foodId +// } +// } +// food.foodName = showFoodName +// food.cookMode = 1 +// Log.d(TAG, "goToSubmit: goodsList:${list.toJsonString()}") +//// startActivity { +// startActivity { +// putExtra(SubmitFoodActivity.GOODS_LIST, list as java.io.Serializable) +// putExtra(SubmitFoodActivity.FOOD_ITEM, food as Serializable) +// } +// } +// binding.etInputDish.let { v -> +// v.addOnActionSearchListener { +// jumpSearch(v) +// } +// } +// } +// +// private fun jumpSearch(v: View) { +// val intent = Intent(this, FoodSearchActivity::class.java).apply { +// putExtra(FoodSearchActivity.FOOD_NAME, binding.etInputDish.text.toString().trim()) +// } +// startActivity(intent) { +// foodId = it?.getStringExtra(FoodSearchActivity.FOOD_ID) +// foodName = it?.getStringExtra(FoodSearchActivity.FOOD_NAME) +// binding.etInputDish.run { +// setText(foodName) +// tag = foodName +// setSelection(text.length) +// } +// } +// KeyboardUtil.hideKeyboard(v) +// } +// +// private fun searchDishType() { +// val inputText = binding.etInputDishType.text.toString().trim() +// FoodSearchDialog( +// activity = this@DishSamplingActivity, +// defGoodsName = inputText +// ) { item -> +// val filterResult = list.firstOrNull { it.goodsName == item.goodsName } +// if (filterResult != null) { +// toast("不允许重复添加同一食材") +// return@FoodSearchDialog +// } +// binding.etInputDishType.run { +// setText(item.goodsName) +// setSelection(length()) +// } +// tempDishEntity = CookFoodGoodsEntity().apply { +// goodsId = item.goodsId +// goodsName = item.goodsName +// +// relateionType = item.relateionType ?: 0 +// goodsOrRelationCode = item.goodsOrRelationCode +// +// isNewDishType = true +// // TODO: 待定 +// //allEdible = item.allEdible +// } +// }.show() +// } +// +//} \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/ui/FoodSearchActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/FoodSearchActivity.kt index 2e34410..191923c 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/FoodSearchActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/FoodSearchActivity.kt @@ -25,6 +25,9 @@ import com.shuwei.dish.match.utils.ext.visible import java.io.Serializable import kotlinx.coroutines.launch +/** + * 菜品搜索页面 + */ class FoodSearchActivity : BaseActivity() { companion object { @@ -46,8 +49,8 @@ class FoodSearchActivity : BaseActivity() { setOnItemClickListener { adapter, view, position -> if (pageType == 1) { val jumpItem = list[position].also { it.dinnerType = dinnerType } - startActivity { - putExtra(PrepareCookActivity.FOOD_ITEM, jumpItem as Serializable) + startActivity { + putExtra(PrepareFoodActivity.FOOD_ITEM, jumpItem as Serializable) } return@setOnItemClickListener } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt index 1e98f32..be21239 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/HomeActivity.kt @@ -16,6 +16,9 @@ import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toast import kotlinx.coroutines.launch +/** + * 主页,包括三种模式:制作模式、采样模式、品控模式 + */ class HomeActivity : BaseActivity() { companion object { @@ -105,7 +108,7 @@ class HomeActivity : BaseActivity() { modeIconId = R.drawable.ic_mode_cook, onClick = { SpTool.cookMode = 0 - startActivity() + startActivity() finish() }) ) @@ -138,20 +141,20 @@ class HomeActivity : BaseActivity() { val slots = appViewModel.loadSeasoningSlot() if (slots.isEmpty()) { // 无调料信息,打开采样历史列表页面,点击设置配置调料信息 - startActivity() + startActivity() finish() return@launch } val count = appViewModel.countCookFood(cookMode = 1) if (count > 0) { // 有烹饪中数据,打开采样历史列表页面 - startActivity() + startActivity() finish() return@launch } // 无烹饪数据,打开新增采样页面 - startActivity { - putExtra(PrepareCookActivity.PAGE_FROM, PrepareCookActivity.HOME) + startActivity { + putExtra(PrepareFoodActivity.PAGE_FROM, PrepareFoodActivity.HOME) } finish() } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt index 9c0293e..63e93e5 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/InitActivity.kt @@ -72,7 +72,7 @@ class InitActivity : BaseActivity() { // 主设备:走原有路由逻辑 when (SpTool.cookMode) { 0 -> { - startActivity() + startActivity() } 1 -> { @@ -91,18 +91,18 @@ class InitActivity : BaseActivity() { val slots = appViewModel.loadSeasoningSlot() if (slots.isEmpty()) { // 无调料信息,打开采样历史列表页面,点击设置配置调料信息 - startActivity() + startActivity() return@launch } val count = appViewModel.countCookFood(cookMode = 1) if (count > 0) { // 有烹饪中数据,打开采样历史列表页面 - startActivity() + startActivity() return@launch } // 无烹饪数据,打开新增采样页面 - startActivity { - putExtra(PrepareCookActivity.PAGE_FROM, PrepareCookActivity.HOME) + startActivity { + putExtra(PrepareFoodActivity.PAGE_FROM, PrepareFoodActivity.HOME) } } } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/PrepareFoodActivity.kt similarity index 97% rename from app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt rename to app/src/main/java/com/shuwei/dish/match/ui/PrepareFoodActivity.kt index 790ab79..5786c94 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/PrepareFoodActivity.kt @@ -16,7 +16,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.shuwei.dish.match.R import com.shuwei.dish.match.adapter.DishPartAdapter import com.shuwei.dish.match.base.BaseActivity -import com.shuwei.dish.match.databinding.ActivityPrepareCookBinding +import com.shuwei.dish.match.databinding.ActivityPrepareFoodBinding import com.shuwei.dish.match.databinding.LayoutCameraPreviewBinding import com.shuwei.dish.match.dialog.CommonDialog import com.shuwei.dish.match.entity.CookFoodEntity @@ -39,15 +39,15 @@ import com.shuwei.dish.match.utils.ext.toJsonString import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.visible import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.Serializable import java.util.concurrent.atomic.AtomicBoolean +import kotlin.getValue import kotlin.math.abs @SuppressLint("NotifyDataSetChanged") -class PrepareCookActivity : BaseActivity() { +class PrepareFoodActivity : BaseActivity() { companion object { const val TAG = "CookActivity" @@ -59,7 +59,7 @@ class PrepareCookActivity : BaseActivity() { const val WEIGHT_RECOGNIZE_VALUE = 10 } - private lateinit var binding: ActivityPrepareCookBinding + private val binding by lazy { ActivityPrepareFoodBinding.inflate(layoutInflater) } private val cameraUtils: CameraUtils by lazy { CameraUtils(this) } @@ -76,7 +76,6 @@ class PrepareCookActivity : BaseActivity() { @Suppress("DEPRECATION") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = ActivityPrepareCookBinding.inflate(layoutInflater) setContentView(binding.root) setHeaderBackground() pageFrom = intent.getStringExtra(PAGE_FROM) @@ -383,7 +382,7 @@ class PrepareCookActivity : BaseActivity() { private fun initRecyclerView() { binding.rvDishPartList.run { layoutManager = - LinearLayoutManager(this@PrepareCookActivity, LinearLayoutManager.VERTICAL, false) + LinearLayoutManager(this@PrepareFoodActivity, LinearLayoutManager.VERTICAL, false) adapter = dishPartAdapter val itemTouchHelper = ItemTouchHelper(SwipeCallback(dishPartAdapter) { position -> if (list[position].isNewDishType.not()) { @@ -435,7 +434,7 @@ class PrepareCookActivity : BaseActivity() { return@addCallback } if (pageFrom == HOME) { - startActivity() + startActivity() } } else { // 制作模式:有未保存数据时提示 @@ -459,7 +458,7 @@ class PrepareCookActivity : BaseActivity() { .setNegativeButton("取消") .setPositiveButton("确认") { if (SpTool.cookMode == 1 && pageFrom == HOME) { - startActivity() + startActivity() } finish() } @@ -475,7 +474,7 @@ class PrepareCookActivity : BaseActivity() { lastPhotoUri = uri lifecycleScope.launch { withContext(Dispatchers.IO) { - val bitmap = ImageUtil.uriToBitmap(this@PrepareCookActivity, uri) + val bitmap = ImageUtil.uriToBitmap(this@PrepareFoodActivity, uri) if (bitmap == null) { dismissLoading() Log.d(TAG, "takePhoto bitmap is null") diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SamplingModeActivity.kt similarity index 96% rename from app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt rename to app/src/main/java/com/shuwei/dish/match/ui/SamplingModeActivity.kt index 9aacca2..f23c9c7 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SamplingListActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SamplingModeActivity.kt @@ -14,10 +14,9 @@ import com.shuwei.dish.match.R import com.shuwei.dish.match.adapter.SamplingAdapter import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp -import com.shuwei.dish.match.databinding.ActivitySamplingBinding +import com.shuwei.dish.match.databinding.ActivitySamplingModeBinding import com.shuwei.dish.match.databinding.LayoutEmptyViewBinding import com.shuwei.dish.match.dialog.CommonDialog -import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.FoodRecord import com.shuwei.dish.match.utils.DateTimeUtil import com.shuwei.dish.match.utils.SwipeCallback @@ -28,10 +27,12 @@ import com.shuwei.dish.match.utils.ext.visible import java.io.Serializable import kotlinx.coroutines.launch import com.shuwei.dish.match.net.UiState +/** + * 采样模式 + */ +class SamplingModeActivity : BaseActivity() { -class SamplingListActivity : BaseActivity() { - - private lateinit var binding: ActivitySamplingBinding + private val binding by lazy { ActivitySamplingModeBinding.inflate(layoutInflater) } companion object { private const val TAG = "SamplingListActivity" @@ -41,7 +42,6 @@ class SamplingListActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = ActivitySamplingBinding.inflate(layoutInflater) setContentView(binding.root) setTitleBar() setHeaderBackground() @@ -181,8 +181,8 @@ class SamplingListActivity : BaseActivity() { } return } - startActivity { - putExtra(PrepareCookActivity.FOOD_NAME, item.foodName) + startActivity { + putExtra(PrepareFoodActivity.FOOD_NAME, item.foodName) } } @@ -190,7 +190,7 @@ class SamplingListActivity : BaseActivity() { private fun initRecyclerView() { binding.rvSamplingList.run { layoutManager = - LinearLayoutManager(this@SamplingListActivity, LinearLayoutManager.VERTICAL, false) + LinearLayoutManager(this@SamplingModeActivity, LinearLayoutManager.VERTICAL, false) adapter = dishAdapter val itemTouchHelper = ItemTouchHelper(SwipeCallback(dishAdapter) { position -> if (list[position].isCooking.not()) { @@ -215,7 +215,7 @@ class SamplingListActivity : BaseActivity() { private fun addViewListener() { binding.btnAddSampling.setOnClickListener { judgeDeviceConfig { - startActivity() + startActivity() } } binding.refreshLayout.setOnRefreshListener { diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt index e1dccac..091d7ab 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt @@ -5,8 +5,7 @@ import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import com.shuwei.dish.match.base.BaseActivity -import com.shuwei.dish.match.base.BaseApp -import com.shuwei.dish.match.ui.fragment.CollectFragment +import com.shuwei.dish.match.ui.fragment.VectorCollectionFragment import com.shuwei.dish.match.ui.fragment.DeviceConfigFragment import com.shuwei.dish.match.ui.fragment.SeasoningConfigFragment import com.shuwei.dish.match.utils.ext.gone @@ -103,7 +102,7 @@ class SingleFragmentActivity : BaseActivity() { * 根据页面类型创建对应 Fragment 实例 */ private fun createFragment(pageType: PageType): Fragment = when (pageType) { - PageType.FOOD_COLLECT -> CollectFragment() + PageType.FOOD_COLLECT -> VectorCollectionFragment() PageType.COOK_MODE -> DeviceConfigFragment() PageType.SEASONING_CONFIG -> SeasoningConfigFragment() } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt index 66d2bbc..b8a1b87 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt @@ -12,8 +12,6 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.GridLayoutManager -import com.google.gson.reflect.TypeToken -import com.shuwei.dish.match.R import com.shuwei.dish.match.adapter.SeasoningWeightAdapter import com.shuwei.dish.match.base.BaseActivity import com.shuwei.dish.match.base.BaseApp @@ -22,7 +20,6 @@ import com.shuwei.dish.match.dialog.CommonDialog import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.CookFoodGoodsEntity import com.shuwei.dish.match.entity.FoodRecord -import com.shuwei.dish.match.net.NetViewModel import com.shuwei.dish.match.net.UiState import com.shuwei.dish.match.scale.ScaleDeviceConfig import com.shuwei.dish.match.scale.ScaleServiceManager @@ -36,13 +33,10 @@ import com.shuwei.dish.match.utils.ext.roundedDecimalPlace import com.shuwei.dish.match.utils.ext.roundedOneDecimalPlace import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toJsonString -import com.shuwei.dish.match.utils.ext.toType import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.visible -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext @SuppressLint("UseSparseArrays") class SubmitFoodActivity : BaseActivity() { @@ -401,14 +395,14 @@ class SubmitFoodActivity : BaseActivity() { private fun jumpPage(isSampling: Boolean, isCooking: Boolean) { if (isSampling) { - startActivity { - putExtra(SelectDishActivity.IS_COOKING, isCooking) + startActivity { + putExtra(CookingModeActivity.IS_COOKING, isCooking) } return } - startActivity { - putExtra(SelectDishActivity.IS_COOKING, isCooking) - putExtra(SelectDishActivity.DINNER_TYPE, food?.dinnerType) + startActivity { + putExtra(CookingModeActivity.IS_COOKING, isCooking) + putExtra(CookingModeActivity.DINNER_TYPE, food?.dinnerType) } } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt index c2bbd91..ead986b 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DeviceConfigFragment.kt @@ -11,8 +11,8 @@ import android.view.ViewGroup import androidx.core.graphics.toColorInt import com.shuwei.dish.match.base.BaseFragment import com.shuwei.dish.match.databinding.FragmentDeviceConfigBinding -import com.shuwei.dish.match.ui.SamplingListActivity -import com.shuwei.dish.match.ui.SelectDishActivity +import com.shuwei.dish.match.ui.SamplingModeActivity +import com.shuwei.dish.match.ui.CookingModeActivity import com.shuwei.dish.match.utils.SpTool import com.shuwei.dish.match.utils.ext.appendText import com.shuwei.dish.match.utils.ext.buildSpannableString @@ -94,8 +94,8 @@ class DeviceConfigFragment : BaseFragment() { binding.rbModeSampling.isChecked = false loadCookSpan(isClicked = true) loadSamplingSpan() - activity?.startActivity { - putExtra(SelectDishActivity.IS_CONFIG_PAGE, true) + activity?.startActivity { + putExtra(CookingModeActivity.IS_CONFIG_PAGE, true) } activity?.finish() } @@ -105,8 +105,8 @@ class DeviceConfigFragment : BaseFragment() { binding.rbModeSampling.isChecked = true loadCookSpan() loadSamplingSpan(isClicked = true) - activity?.startActivity { - putExtra(SamplingListActivity.IS_CONFIG_PAGE, true) + activity?.startActivity { + putExtra(SamplingModeActivity.IS_CONFIG_PAGE, true) } activity?.finish() } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt index ed48d26..c93b741 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/fragment/DishListFragment.kt @@ -3,7 +3,6 @@ package com.shuwei.dish.match.ui.fragment import android.annotation.SuppressLint import android.os.Bundle import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope @@ -19,8 +18,8 @@ import com.shuwei.dish.match.databinding.LayoutEmptyViewBinding import com.shuwei.dish.match.entity.CookFoodEntity import com.shuwei.dish.match.entity.FoodRecord import com.shuwei.dish.match.net.UiState -import com.shuwei.dish.match.ui.PrepareCookActivity -import com.shuwei.dish.match.ui.SelectDishActivity +import com.shuwei.dish.match.ui.PrepareFoodActivity +import com.shuwei.dish.match.ui.CookingModeActivity import com.shuwei.dish.match.ui.SubmitFoodActivity import com.shuwei.dish.match.utils.SwipeCallback import com.shuwei.dish.match.utils.ext.startActivity @@ -49,7 +48,7 @@ class DishListFragment : BaseFragment() { private var dinnerType = "0" - private lateinit var activity: SelectDishActivity + private lateinit var activity: CookingModeActivity private var list: MutableList = mutableListOf() private val dishAdapter by lazy { @@ -79,7 +78,7 @@ class DishListFragment : BaseFragment() { return } item.dinnerType = dinnerType - activity.startActivity { + activity.startActivity { putExtra( SubmitFoodActivity.FOOD_ITEM, item as Serializable @@ -95,7 +94,7 @@ class DishListFragment : BaseFragment() { } override fun initialize() { - activity = requireActivity() as SelectDishActivity + activity = requireActivity() as CookingModeActivity dinnerType = arguments?.getString(DINNER_TYPE, "0") ?: "0" binding.rvDishList.run { layoutManager = diff --git a/app/src/main/java/com/shuwei/dish/match/ui/fragment/CollectFragment.kt b/app/src/main/java/com/shuwei/dish/match/ui/fragment/VectorCollectionFragment.kt similarity index 98% rename from app/src/main/java/com/shuwei/dish/match/ui/fragment/CollectFragment.kt rename to app/src/main/java/com/shuwei/dish/match/ui/fragment/VectorCollectionFragment.kt index f84d304..a045421 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/fragment/CollectFragment.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/fragment/VectorCollectionFragment.kt @@ -19,7 +19,7 @@ import com.shuwei.dish.match.R import com.shuwei.dish.match.adapter.VectorCollectionAdapter import com.shuwei.dish.match.adapter.FoodSearchAdapter import com.shuwei.dish.match.base.BaseFragment -import com.shuwei.dish.match.databinding.FragmentCollectBinding +import com.shuwei.dish.match.databinding.FragmentVectorCollectionBinding import com.shuwei.dish.match.databinding.LayoutCameraPreviewBinding import com.shuwei.dish.match.dialog.Loading import com.shuwei.dish.match.entity.CookFoodGoodsEntity @@ -37,7 +37,7 @@ import com.shuwei.dish.match.utils.ext.dp import com.shuwei.dish.match.utils.ext.toast @SuppressLint("NotifyDataSetChanged") -class CollectFragment : BaseFragment() { +class VectorCollectionFragment : BaseFragment() { companion object { private const val TAG = "CollectFragment" @@ -105,8 +105,8 @@ class CollectFragment : BaseFragment() { override fun inflateBinding( inflater: LayoutInflater, container: ViewGroup? - ): FragmentCollectBinding { - return FragmentCollectBinding.inflate(inflater, container, false) + ): FragmentVectorCollectionBinding { + return FragmentVectorCollectionBinding.inflate(inflater, container, false) } //typealias CameraCallback = (Uri) -> Unit diff --git a/app/src/main/res/layout/activity_select_dish.xml b/app/src/main/res/layout/activity_cooking_mode.xml similarity index 100% rename from app/src/main/res/layout/activity_select_dish.xml rename to app/src/main/res/layout/activity_cooking_mode.xml diff --git a/app/src/main/res/layout/activity_dish_sampling.xml b/app/src/main/res/layout/activity_dish_sampling.xml index 7b72f2f..ba082b8 100644 --- a/app/src/main/res/layout/activity_dish_sampling.xml +++ b/app/src/main/res/layout/activity_dish_sampling.xml @@ -7,287 +7,287 @@ android:orientation="vertical" tools:background="@drawable/bg_other_page"> - + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + - + + + + + + + + + - + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - + + + + + + - + + + + + - + + + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + - + - + + + + + + - + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + + + + + - - - + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + - + + + + + + + + + - + - + + + + + + + + + + + + + - - - - + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_prepare_cook.xml b/app/src/main/res/layout/activity_prepare_food.xml similarity index 100% rename from app/src/main/res/layout/activity_prepare_cook.xml rename to app/src/main/res/layout/activity_prepare_food.xml diff --git a/app/src/main/res/layout/activity_sampling.xml b/app/src/main/res/layout/activity_sampling_mode.xml similarity index 100% rename from app/src/main/res/layout/activity_sampling.xml rename to app/src/main/res/layout/activity_sampling_mode.xml diff --git a/app/src/main/res/layout/fragment_collect.xml b/app/src/main/res/layout/fragment_vector_collection.xml similarity index 100% rename from app/src/main/res/layout/fragment_collect.xml rename to app/src/main/res/layout/fragment_vector_collection.xml