优化
This commit is contained in:
Binary file not shown.
@@ -129,7 +129,12 @@ class BottomDialog2(
|
|||||||
}
|
}
|
||||||
binding.refreshLayout.setEnableRefresh(false)
|
binding.refreshLayout.setEnableRefresh(false)
|
||||||
binding.tvClear.setOnClickListener {
|
binding.tvClear.setOnClickListener {
|
||||||
|
Log.d(TAG, "show: weighAddress=$weighAddress")
|
||||||
WeightUtil.tareTwo(weighAddress)
|
WeightUtil.tareTwo(weighAddress)
|
||||||
|
// repeat(14) { num->
|
||||||
|
// Log.d(TAG, "show: num=$num")
|
||||||
|
// WeightUtil.tareTwo(num+1)
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
WeightUtil.addWeightListener { address, state, weight ->
|
WeightUtil.addWeightListener { address, state, weight ->
|
||||||
if (weighAddress == address) {
|
if (weighAddress == address) {
|
||||||
|
|||||||
@@ -138,16 +138,20 @@ class DeviceConfigActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun addWeighListener() {
|
private fun addWeighListener() {
|
||||||
WeightUtil.addWeightListener { address, state, weight ->
|
WeightUtil.addWeightListener(onConnect = { state ->
|
||||||
// Log.d(TAG, "addWeighListener: address=$address,stat=$state,weight=$weight")
|
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)
|
weightArray.put(address, weight)
|
||||||
val item = seasoningItems.firstOrNull { address == addressArray[it.sort]}
|
val item = seasoningItems.firstOrNull { address == addressArray[it.sort] }
|
||||||
item?.let {
|
item?.let {
|
||||||
it.useWeight = weight.toDouble()
|
it.useWeight = weight.toDouble()
|
||||||
updateGridData(it)
|
updateGridData(it)
|
||||||
}
|
}
|
||||||
//setGridData(seasoningItems)
|
//setGridData(seasoningItems)
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private var seasoningItems = mutableListOf<SeasoningEntity>()
|
private var seasoningItems = mutableListOf<SeasoningEntity>()
|
||||||
@@ -229,15 +233,15 @@ class DeviceConfigActivity : BaseActivity() {
|
|||||||
list.forEach { entity ->
|
list.forEach { entity ->
|
||||||
val tag = entity.sort.toString()
|
val tag = entity.sort.toString()
|
||||||
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
|
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(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 gridLayout = binding.include.root
|
||||||
val tag = entity.sort.toString()
|
val tag = entity.sort.toString()
|
||||||
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
|
val frameLayout = gridLayout.findViewWithTag<FrameLayout>(tag)
|
||||||
TextCellAdapter.loadLayout(frameLayout , entity)
|
TextCellAdapter.loadLayout(frameLayout, entity)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun clickGridItem(sort: Int, entity: SeasoningEntity) {
|
private fun clickGridItem(sort: Int, entity: SeasoningEntity) {
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ class InitActivity : BaseActivity() {
|
|||||||
|
|
||||||
initViewModel()
|
initViewModel()
|
||||||
WeightUtil.init()
|
WeightUtil.init()
|
||||||
WeightUtil.connect {}
|
// WeightUtil.connect {}
|
||||||
WeightUtil.getWeight()
|
WeightUtil.getWeight()
|
||||||
WeightUtil.startContinuousRead()
|
WeightUtil.startContinuousRead()
|
||||||
HttpUtil.getAppToken()
|
HttpUtil.getAppToken()
|
||||||
|
|||||||
@@ -165,42 +165,24 @@ class DishListFragment : BaseFragment<FragmentDishListBinding>() {
|
|||||||
HttpUtil.get(
|
HttpUtil.get(
|
||||||
url = sb.toString(),
|
url = sb.toString(),
|
||||||
doSuccess = {
|
doSuccess = {
|
||||||
binding.refreshLayout.run {
|
loadDishList(it)
|
||||||
setEnableRefresh(true)
|
}, doFailure = { code, msg ->
|
||||||
}
|
try {
|
||||||
activity.delayDismissLoading()
|
if (isAdded.not()) {
|
||||||
finishRefresh()
|
return@get
|
||||||
val json = it.toJsonString()
|
}
|
||||||
val recordBean: FoodRecordBean? = json.toObject<FoodRecordBean>()
|
binding.refreshLayout.run {
|
||||||
if (recordBean == null || recordBean.records.isNullOrEmpty()) {
|
setEnableRefresh(true)
|
||||||
//toast("暂未搜索到相关菜品信息")
|
}
|
||||||
|
toast(msg)
|
||||||
|
finishRefresh()
|
||||||
if (pageNo == 1) {
|
if (pageNo == 1) {
|
||||||
loadEmptyView()
|
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<FragmentDishListBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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<FoodRecordBean>()
|
||||||
|
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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -9,8 +9,74 @@ import com.wabon.wbintelligenthardwaresdk.api.SensorScale
|
|||||||
|
|
||||||
object WeightUtil {
|
object WeightUtil {
|
||||||
|
|
||||||
|
var isConnected = false
|
||||||
|
|
||||||
fun init() {
|
fun init() {
|
||||||
Weigher.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() {
|
fun getWeight() {
|
||||||
@@ -25,73 +91,6 @@ object WeightUtil {
|
|||||||
Weigher.tareTwo(address)
|
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) {
|
private fun runOnUiThread(action: () -> Unit) {
|
||||||
Handler(Looper.getMainLooper()).post {
|
Handler(Looper.getMainLooper()).post {
|
||||||
action()
|
action()
|
||||||
@@ -99,10 +98,16 @@ object WeightUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun addWeightListener(
|
fun addWeightListener(
|
||||||
zero: (() -> Unit) = {},
|
onConnect: (state: Boolean) -> Unit = {},
|
||||||
|
zero: () -> Unit = {},
|
||||||
getWeight: ((address: Int, state: Int, weight: Int) -> Unit) = { _, _, _ -> }
|
getWeight: ((address: Int, state: Int, weight: Int) -> Unit) = { _, _, _ -> }
|
||||||
) {
|
) {
|
||||||
Weigher.setListener(object : WeightListenerImpl() {
|
Weigher.setListener(object : WeightListenerImpl() {
|
||||||
|
override fun onInit(connect: Boolean) {
|
||||||
|
super.onInit(connect)
|
||||||
|
onConnect(connect)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onZero() {
|
override fun onZero() {
|
||||||
zero()
|
zero()
|
||||||
}
|
}
|
||||||
@@ -141,7 +146,15 @@ open class WeightListenerImpl : Weigher.Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onFail(errCode: Int) {
|
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() {
|
override fun onFastFilter() {
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
<solid android:color="@color/dish_green"/>
|
||||||
|
</shape>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
<solid android:color="#ff0000"/>
|
||||||
|
</shape>
|
||||||
@@ -98,10 +98,11 @@
|
|||||||
android:layout_marginBottom="60dp"
|
android:layout_marginBottom="60dp"
|
||||||
android:background="@drawable/shape_white_30_corners"
|
android:background="@drawable/shape_white_30_corners"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_vertical"
|
||||||
android:layout_marginStart="30dp"
|
android:layout_marginStart="30dp"
|
||||||
android:layout_marginEnd="30dp">
|
android:layout_marginEnd="30dp">
|
||||||
|
|
||||||
<FrameLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="40dp"
|
android:layout_marginTop="40dp"
|
||||||
@@ -117,14 +118,21 @@
|
|||||||
android:textSize="28sp" />
|
android:textSize="28sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end"
|
android:gravity="end"
|
||||||
android:layout_marginEnd="15dp"
|
|
||||||
android:text="@string/seasoning_setting2"
|
android:text="@string/seasoning_setting2"
|
||||||
android:textColor="@color/gray_b4"
|
android:textColor="@color/gray_b4"
|
||||||
android:textSize="28sp" />
|
android:textSize="28sp" />
|
||||||
</FrameLayout>
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/viewPoint"
|
||||||
|
android:layout_width="5dp"
|
||||||
|
android:layout_height="5dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:background="@drawable/bg_circle_green"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/include"
|
android:id="@+id/include"
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
android:layout_marginEnd="15dp"
|
android:layout_marginEnd="15dp"
|
||||||
android:paddingTop="16dp"
|
android:paddingTop="16dp"
|
||||||
android:paddingBottom="16dp"
|
android:paddingBottom="16dp"
|
||||||
android:background="@drawable/shape_green_5_corners"
|
android:background="@drawable/ripple_effect_green"
|
||||||
android:textColor="@color/white_f6"
|
android:textColor="@color/white_f6"
|
||||||
android:textSize="30sp"
|
android:textSize="30sp"
|
||||||
tools:ignore="HardcodedText" />
|
tools:ignore="HardcodedText" />
|
||||||
|
|||||||
Reference in New Issue
Block a user