diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 66527f8..2b665a1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -65,15 +65,15 @@ android:launchMode="singleTask" android:screenOrientation="portrait" tools:ignore="DiscouragedApi,LockedOrientationActivity" /> - - + + + + + + + + + ) : companion object { fun loadCell(tvCell: TextView, item: SeasoningEntity) { + tvCell.text = getTextSpan(item) + } + fun loadCell2(tvCell: TextView, item: SeasoningEntity) { if (item.goodsName.isNullOrBlank()) { tvCell.run { text = buildSpannableString { @@ -97,14 +100,14 @@ class TextCellAdapter(var list: MutableList) : fun getTextSpan(item: SeasoningEntity): SpannableStringBuilder { val endIndex = if (item.sort == 10 || item.sort == 14) 10 else 6 - var name = item.goodsName!! + var name = if (item.goodsName.isNullOrBlank()) "未配置" else item.goodsName!! if (name.length > endIndex) { name = "${name.substring(0, endIndex)}…" } return buildSpannableString { appendText( name, - ForegroundColorSpan("#000000".toColorInt()), + ForegroundColorSpan(if (item.goodsName.isNullOrBlank()) "#999999".toColorInt() else "#000000".toColorInt()), StyleSpan(Typeface.BOLD), AbsoluteSizeSpan(28, true), LineHeightSpan { text, start, end, spanstartv, v, fm -> diff --git a/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt index 371cfb1..3bd01b2 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/DeviceConfigActivity.kt @@ -7,6 +7,7 @@ import android.text.style.AbsoluteSizeSpan import android.text.style.ForegroundColorSpan import android.text.style.LineHeightSpan import android.text.style.StyleSpan +import android.util.SparseIntArray import android.widget.TextView import androidx.core.graphics.toColorInt import androidx.core.view.forEach @@ -18,7 +19,7 @@ import com.shuwei.dish.match.db.AppRepository import com.shuwei.dish.match.dialog.CommonDialog import com.shuwei.dish.match.entity.SeasoningEntity import com.shuwei.dish.match.entity.ResetReasoningRecord -import com.shuwei.dish.match.utils.DataUtil +import com.shuwei.dish.match.utils.AddressUtil import com.shuwei.dish.match.utils.JsonAssetsLoader import com.shuwei.dish.match.utils.MultiClickDetector import com.shuwei.dish.match.utils.WeightUtil @@ -61,6 +62,8 @@ class DeviceConfigActivity : BaseActivity() { private lateinit var appViewModel: AppViewModel private var cookMode: Int = 0 + private val weightArray = SparseIntArray() + private val addressArray = AddressUtil.getWeighAddressArray() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -126,11 +129,21 @@ class DeviceConfigActivity : BaseActivity() { } addGridItemListener() loadSeasoning() + addWeighListener() + } + + private fun addWeighListener() { + WeightUtil.addWeightListener { address, state, weight -> + weightArray.put(address, weight) + val item = seasoningItems.firstOrNull { address == addressArray[it.sort]} + item?.useWeight = weight.toDouble() + setGridData(seasoningItems) + } } private var seasoningItems = mutableListOf() private fun addGridItemListener() { - binding.include.root.forEach { child-> + binding.include.root.forEach { child -> (child as TextView).run { clickWithDebounce { val sort = tag.toString().toInt() @@ -167,8 +180,7 @@ class DeviceConfigActivity : BaseActivity() { this, "default_seasoning_list.json" ) - val addressArray = DataUtil.getWeighAddressArray() - val weightArray = WeightUtil.weightArray +// val weightArray = WeightUtil.weightArray appViewModel.clearAllSeasoning { record?.list?.forEach { entity -> entity.useWeight = weightArray[addressArray[entity.sort]].toDouble() @@ -197,8 +209,8 @@ class DeviceConfigActivity : BaseActivity() { } private fun initConfigData() { - repeat(12) {num-> - val firstOne = seasoningItems.firstOrNull {it.sort == num} + repeat(12) { num -> + val firstOne = seasoningItems.firstOrNull { it.sort == num } if (firstOne == null) { seasoningItems.add(SeasoningEntity().also { it.sort = num }) } @@ -215,7 +227,7 @@ class DeviceConfigActivity : BaseActivity() { } private fun clickGridItem(sort: Int, entity: SeasoningEntity) { - val currentAddress = DataUtil.getWeighAddressArray().get(sort) + val currentAddress = AddressUtil.getWeighAddressArray().get(sort) // val seasoningEntity = list.first{it.sort == sort} BottomDialog2( weighIndex = sort, diff --git a/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt index fef7803..d6a5b29 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/DishSamplingActivity.kt @@ -20,6 +20,7 @@ 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.utils.AddressUtil import com.shuwei.dish.match.utils.KeyboardUtil import com.shuwei.dish.match.utils.WeightUtil import com.shuwei.dish.match.utils.ext.addOnActionSearchListener @@ -140,9 +141,11 @@ class DishSamplingActivity : BaseActivity() { private val dishAdapter by lazy { DishPartAdapter(list).apply { - addOnItemChildClickListener(R.id.ivOperateIcon) { _, _, positon -> + addOnItemChildClickListener(R.id.ivOperateIcon) { _, _, position -> //删除操作 - removeAt(positon) + list.removeAt(position) + notifyItemRemoved(position) + notifyItemRangeChanged(position, list.size - position) } } } @@ -178,7 +181,7 @@ class DishSamplingActivity : BaseActivity() { } binding.ivWeightClear.setOnClickListener { - Weigher.tareTwo(2) + Weigher.tareTwo(AddressUtil.ONE) } WeightUtil.addWeightListener(getWeight = { address, state, weight -> Log.d(TAG, "addViewClickListener: address=$address,state=$state,weight=$weight") diff --git a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt index 5f9e1db..9f6f1be 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/PrepareCookActivity.kt @@ -20,6 +20,7 @@ import com.shuwei.dish.match.entity.CookFoodGoodsEntity import com.shuwei.dish.match.entity.FoodRecord import com.shuwei.dish.match.http.HttpUtil import com.shuwei.dish.match.http.UrlConfig +import com.shuwei.dish.match.utils.AddressUtil import com.shuwei.dish.match.utils.SwipeCallback import com.shuwei.dish.match.utils.WeightUtil import com.shuwei.dish.match.utils.ext.clickWithDebounce @@ -74,7 +75,7 @@ class PrepareCookActivity : BaseActivity() { private fun addViewClickListener() { binding.ivWeightClear.setOnClickListener { - Weigher.tareTwo(2) + Weigher.tareTwo(AddressUtil.ONE) } WeightUtil.addWeightListener(getWeight = { address, state, weight -> Log.d(TAG, "addViewClickListener: address=$address,state=$state,weight=$weight") @@ -272,7 +273,10 @@ class PrepareCookActivity : BaseActivity() { dishPartAdapter.notifyItemChanged(position) return@SwipeCallback } - dishPartAdapter.removeAt(position) +// dishPartAdapter.removeAt(position) + list.removeAt(position) + dishPartAdapter.notifyItemRemoved(position) + dishPartAdapter.notifyItemRangeChanged(position, list.size - position) toast("已删除") }) itemTouchHelper.attachToRecyclerView(this) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SubmitDishActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SubmitDishActivity.kt index 2397bad..5cccb2b 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SubmitDishActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SubmitDishActivity.kt @@ -150,7 +150,7 @@ // // private fun addViewListener() { // addWeightListener() -// binding.btnWeightClear.setOnClickListener { Weigher.tareTwo(1) } +// binding.btnWeightClear.setOnClickListener { Weigher.tareTwo(AddressUtil.TWO) } // // binding.btnCook.clickWithDebounce { // cook() 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 b45ff88..3a3051b 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 @@ -23,7 +23,7 @@ import com.shuwei.dish.match.entity.FoodRecord import com.shuwei.dish.match.entity.SeasoningEntity import com.shuwei.dish.match.http.HttpUtil import com.shuwei.dish.match.http.UrlConfig -import com.shuwei.dish.match.utils.DataUtil +import com.shuwei.dish.match.utils.AddressUtil import com.shuwei.dish.match.utils.WeightUtil import com.shuwei.dish.match.utils.ext.clickWithDebounce import com.shuwei.dish.match.utils.ext.gone @@ -150,7 +150,7 @@ class SubmitFoodActivity : BaseActivity() { private fun addViewListener() { addWeightListener() - binding.btnWeightClear.setOnClickListener { Weigher.tareTwo(1) } + binding.btnWeightClear.setOnClickListener { Weigher.tareTwo(AddressUtil.TWO) } binding.btnCook.clickWithDebounce { cook() @@ -232,7 +232,7 @@ class SubmitFoodActivity : BaseActivity() { } private val weightRelateArray by lazy { - DataUtil.getWeighAddressArray() + AddressUtil.getWeighAddressArray() } // private fun prepareData(acton: () -> Unit) { diff --git a/app/src/main/java/com/shuwei/dish/match/utils/DataUtil.kt b/app/src/main/java/com/shuwei/dish/match/utils/AddressUtil.kt similarity index 93% rename from app/src/main/java/com/shuwei/dish/match/utils/DataUtil.kt rename to app/src/main/java/com/shuwei/dish/match/utils/AddressUtil.kt index b87c1fd..6a29e14 100644 --- a/app/src/main/java/com/shuwei/dish/match/utils/DataUtil.kt +++ b/app/src/main/java/com/shuwei/dish/match/utils/AddressUtil.kt @@ -2,7 +2,10 @@ package com.shuwei.dish.match.utils import android.util.SparseIntArray -object DataUtil { +object AddressUtil { + + const val ONE = 1 + const val TWO = 2 fun getWeighAddressArray(): SparseIntArray { return SparseIntArray().apply { diff --git a/app/src/main/java/com/shuwei/dish/match/utils/WeightUtil.kt b/app/src/main/java/com/shuwei/dish/match/utils/WeightUtil.kt index b438d21..05210c3 100644 --- a/app/src/main/java/com/shuwei/dish/match/utils/WeightUtil.kt +++ b/app/src/main/java/com/shuwei/dish/match/utils/WeightUtil.kt @@ -12,7 +12,7 @@ import com.wabon.wbintelligenthardwaresdk.api.SensorScale object WeightUtil { - val weightArray = SparseIntArray() +// val weightArray = SparseIntArray() fun connect(initCallback: (connect: Boolean) -> Unit) { Weigher.setListener(object : WeightListenerImpl() { @@ -34,17 +34,17 @@ object WeightUtil { } override fun onGetWeight(address: Int, state: Int, weight: Int) { - runOnUiThread { - val stateStr = when (state) { - SensorScale.STATE_STABLE -> "稳定" - SensorScale.STATE_UNSTABLE -> "不稳定" - SensorScale.STATE_OVER_WEIGHT -> "量程溢出" - else -> "" - } - val result1 = String.format("$stateStr 重量:%s kg", weight / 1000f) - //Log.d("WeightUtil", "ttlReturn, address:$address,$result1") - weightArray.put(address, weight) - } +// runOnUiThread { +// val stateStr = when (state) { +// SensorScale.STATE_STABLE -> "稳定" +// SensorScale.STATE_UNSTABLE -> "不稳定" +// SensorScale.STATE_OVER_WEIGHT -> "量程溢出" +// else -> "" +// } +// val result1 = String.format("$stateStr 重量:%s kg", weight / 1000f) +// //Log.d("WeightUtil", "ttlReturn, address:$address,$result1") +// weightArray.put(address, weight) +// } } override fun onReadIdentify(rate: Int) { diff --git a/app/src/main/res/layout-sw800dp/activity_prepare_cook.xml b/app/src/main/res/layout-sw800dp/activity_prepare_cook.xml index 144f63d..4cc160e 100644 --- a/app/src/main/res/layout-sw800dp/activity_prepare_cook.xml +++ b/app/src/main/res/layout-sw800dp/activity_prepare_cook.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:orientation="vertical" tools:background="@drawable/bg_other_page">