From 812b95575e0df96be3a0d660defddd26e11cb514 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 16 Sep 2025 19:27:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/baselineProfiles/0/app-release.dm | Bin 3247 -> 0 bytes .../shuwei/dish/match/dialog/BottomDialog2.kt | 5 + .../dish/match/ui/DeviceConfigActivity.kt | 18 ++- .../com/shuwei/dish/match/ui/InitActivity.kt | 2 +- .../match/ui/fragment/DishListFragment.kt | 82 ++++++---- .../com/shuwei/dish/match/utils/WeightUtil.kt | 151 ++++++++++-------- app/src/main/res/drawable/bg_circle_green.xml | 5 + app/src/main/res/drawable/bg_circle_red.xml | 5 + .../res/layout/activity_device_config.xml | 18 ++- .../main/res/layout/dialog_bottom_sheet2.xml | 2 +- 10 files changed, 173 insertions(+), 115 deletions(-) delete mode 100644 app/release/baselineProfiles/0/app-release.dm create mode 100644 app/src/main/res/drawable/bg_circle_green.xml create mode 100644 app/src/main/res/drawable/bg_circle_red.xml diff --git a/app/release/baselineProfiles/0/app-release.dm b/app/release/baselineProfiles/0/app-release.dm deleted file mode 100644 index ba4dbe6a23c792e6715f7ccc00ea7d86c2bb0f06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3247 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 +// Log.d(TAG, "show: num=$num") +// WeightUtil.tareTwo(num+1) +// } } WeightUtil.addWeightListener { address, state, weight -> if (weighAddress == address) { 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 650c784..9b498cc 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 @@ -138,16 +138,20 @@ class DeviceConfigActivity : BaseActivity() { } private fun addWeighListener() { - WeightUtil.addWeightListener { address, state, weight -> -// Log.d(TAG, "addWeighListener: address=$address,stat=$state,weight=$weight") + WeightUtil.addWeightListener(onConnect = { state -> + binding.viewPoint.setBackgroundResource( + if (state) R.drawable.bg_circle_green else R.drawable.bg_circle_red + ) + }, getWeight = { address, state, weight -> + Log.d(TAG, "addWeighListener: address=$address,stat=$state,weight=$weight") weightArray.put(address, weight) - val item = seasoningItems.firstOrNull { address == addressArray[it.sort]} + val item = seasoningItems.firstOrNull { address == addressArray[it.sort] } item?.let { it.useWeight = weight.toDouble() updateGridData(it) } //setGridData(seasoningItems) - } + }) } private var seasoningItems = mutableListOf() @@ -229,15 +233,15 @@ class DeviceConfigActivity : BaseActivity() { list.forEach { entity -> val tag = entity.sort.toString() val frameLayout = gridLayout.findViewWithTag(tag) - TextCellAdapter.loadLayout(frameLayout , entity) + TextCellAdapter.loadLayout(frameLayout, entity) } } - private fun updateGridData(entity:SeasoningEntity) { + private fun updateGridData(entity: SeasoningEntity) { val gridLayout = binding.include.root val tag = entity.sort.toString() val frameLayout = gridLayout.findViewWithTag(tag) - TextCellAdapter.loadLayout(frameLayout , entity) + TextCellAdapter.loadLayout(frameLayout, entity) } private fun clickGridItem(sort: Int, entity: SeasoningEntity) { 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 e4b5581..374732f 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 @@ -76,7 +76,7 @@ class InitActivity : BaseActivity() { initViewModel() WeightUtil.init() - WeightUtil.connect {} +// WeightUtil.connect {} WeightUtil.getWeight() WeightUtil.startContinuousRead() HttpUtil.getAppToken() 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 603905c..812c3ad 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 @@ -165,42 +165,24 @@ class DishListFragment : BaseFragment() { HttpUtil.get( url = sb.toString(), doSuccess = { - binding.refreshLayout.run { - setEnableRefresh(true) - } - activity.delayDismissLoading() - finishRefresh() - val json = it.toJsonString() - val recordBean: FoodRecordBean? = json.toObject() - if (recordBean == null || recordBean.records.isNullOrEmpty()) { - //toast("暂未搜索到相关菜品信息") + loadDishList(it) + }, doFailure = { code, msg -> + try { + if (isAdded.not()) { + return@get + } + binding.refreshLayout.run { + setEnableRefresh(true) + } + toast(msg) + finishRefresh() if (pageNo == 1) { loadEmptyView() } - return@get + activity.delayDismissLoading() + } catch (e: Exception) { + e.printStackTrace() } - val records = recordBean.records - if (pageNo == 1) { - list.clear() - } - list.addAll(records!!) - dishAdapter.notifyDataSetChanged() - val isLoadMoreEnable = records.size >= pageSize - binding.refreshLayout.setEnableLoadMore(isLoadMoreEnable) - if (isLoadMoreEnable) { - pageNo++ - } - refreshLocalData(list) - }, doFailure = { code, msg -> - binding.refreshLayout.run { - setEnableRefresh(true) - } - toast(msg) - finishRefresh() - if (pageNo == 1) { - loadEmptyView() - } - activity.delayDismissLoading() }) } @@ -269,5 +251,41 @@ class DishListFragment : BaseFragment() { } } + @SuppressLint("NotifyDataSetChanged") + private fun loadDishList(data: Any) { + try { + if (isAdded.not()) { + return + } + binding.refreshLayout.run { + setEnableRefresh(true) + } + activity.delayDismissLoading() + finishRefresh() + val json = data.toJsonString() + val recordBean: FoodRecordBean? = json.toObject() + if (recordBean == null || recordBean.records.isNullOrEmpty()) { + //toast("暂未搜索到相关菜品信息") + if (pageNo == 1) { + loadEmptyView() + } + return + } + val records = recordBean.records + if (pageNo == 1) { + list.clear() + } + list.addAll(records!!) + dishAdapter.notifyDataSetChanged() + val isLoadMoreEnable = records.size >= pageSize + binding.refreshLayout.setEnableLoadMore(isLoadMoreEnable) + if (isLoadMoreEnable) { + pageNo++ + } + refreshLocalData(list) + } catch (e: Exception) { + e.printStackTrace() + } + } } \ No newline at end of file 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 f2c1fba..7136202 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 @@ -9,8 +9,74 @@ import com.wabon.wbintelligenthardwaresdk.api.SensorScale object WeightUtil { + var isConnected = false + fun init() { Weigher.init() + +// Weigher.setListener(object : WeightListenerImpl() { +// override fun onInit(connect: Boolean) { +// Log.d("WeightUtil", "connect=$connect") +// } +// +// override fun onZero() { +// Log.d("WeightUtil", "zero ok") +// } +// +// override fun onTare() { +// Log.d("WeightUtil", "去皮置零操作成功") +// } +// +// override fun onSetIdentify() { +// Log.d("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) +// } +// } +// +// override fun onReadIdentify(rate: Int) { +// Log.d("WeightUtil", "读取鉴别率成功:rate=$rate") +// } +// +// override fun onFail(errCode: Int) { +// val str = when (errCode) { +// Weigher.ERR_001 -> "电子称未初始化" +// Weigher.ERR_002 -> "开机零位异常" +// Weigher.ERR_003 -> "传感器故障" +// Weigher.ERR_004 -> "鉴别率超出范围" +// Weigher.ERR_PCB_NOT_SUPPORT -> "主板不支持, " + Build.MODEL +// else -> "" +// } +// Log.d("WeightUtil", str) +// } +// +// override fun onFastFilter() { +// Log.d("WeightUtil", "快速滤波设置成功") +// } +// +// override fun onReadParam() { +// Log.d("WeightUtil", "prepare ok") +// } +// +// override fun onRangCal() { +// Log.d("WeightUtil", "rang cal ok") +// } +// +// override fun onSetParam() { +// Log.d("WeightUtil", "onSetParam") +// } +// }) } fun getWeight() { @@ -25,73 +91,6 @@ object WeightUtil { Weigher.tareTwo(address) } - fun connect(initCallback: (connect: Boolean) -> Unit) { - Weigher.setListener(object : WeightListenerImpl() { - override fun onInit(connect: Boolean) { - initCallback(connect) - Log.d("WeightUtil", "connect=$connect") - } - - override fun onZero() { - Log.d("WeightUtil", "zero ok") - } - - override fun onTare() { - Log.d("WeightUtil", "去皮置零操作成功") - } - - override fun onSetIdentify() { - Log.d("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) - } - } - - override fun onReadIdentify(rate: Int) { - Log.d("WeightUtil", "读取鉴别率成功:rate=$rate") - } - - override fun onFail(errCode: Int) { - val str = when (errCode) { - Weigher.ERR_001 -> "电子称未初始化" - Weigher.ERR_002 -> "开机零位异常" - Weigher.ERR_003 -> "传感器故障" - Weigher.ERR_004 -> "鉴别率超出范围" - Weigher.ERR_PCB_NOT_SUPPORT -> "主板不支持, " + Build.MODEL - else -> "" - } - Log.d("WeightUtil", str) - } - - override fun onFastFilter() { - Log.d("WeightUtil", "快速滤波设置成功") - } - - override fun onReadParam() { - Log.d("WeightUtil", "prepare ok") - } - - override fun onRangCal() { - Log.d("WeightUtil", "rang cal ok") - } - - override fun onSetParam() { - Log.d("WeightUtil", "onSetParam") - } - }) - } - private fun runOnUiThread(action: () -> Unit) { Handler(Looper.getMainLooper()).post { action() @@ -99,10 +98,16 @@ object WeightUtil { } fun addWeightListener( - zero: (() -> Unit) = {}, + onConnect: (state: Boolean) -> Unit = {}, + zero: () -> Unit = {}, getWeight: ((address: Int, state: Int, weight: Int) -> Unit) = { _, _, _ -> } ) { Weigher.setListener(object : WeightListenerImpl() { + override fun onInit(connect: Boolean) { + super.onInit(connect) + onConnect(connect) + } + override fun onZero() { zero() } @@ -141,7 +146,15 @@ open class WeightListenerImpl : Weigher.Listener { } override fun onFail(errCode: Int) { - + val str = when (errCode) { + Weigher.ERR_001 -> "电子称未初始化" + Weigher.ERR_002 -> "开机零位异常" + Weigher.ERR_003 -> "传感器故障" + Weigher.ERR_004 -> "鉴别率超出范围" + Weigher.ERR_PCB_NOT_SUPPORT -> "主板不支持, " + Build.MODEL + else -> "" + } + Log.d("WeightUtil", str) } override fun onFastFilter() { diff --git a/app/src/main/res/drawable/bg_circle_green.xml b/app/src/main/res/drawable/bg_circle_green.xml new file mode 100644 index 0000000..2d85d1d --- /dev/null +++ b/app/src/main/res/drawable/bg_circle_green.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_circle_red.xml b/app/src/main/res/drawable/bg_circle_red.xml new file mode 100644 index 0000000..2759d51 --- /dev/null +++ b/app/src/main/res/drawable/bg_circle_red.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_device_config.xml b/app/src/main/res/layout/activity_device_config.xml index d5a3020..8304f3e 100644 --- a/app/src/main/res/layout/activity_device_config.xml +++ b/app/src/main/res/layout/activity_device_config.xml @@ -98,10 +98,11 @@ android:layout_marginBottom="60dp" android:background="@drawable/shape_white_30_corners" android:orientation="vertical" + android:gravity="center_vertical" android:layout_marginStart="30dp" android:layout_marginEnd="30dp"> - - + + +