diff --git a/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt b/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt index 3baccbb..3db0ee7 100644 --- a/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/base/BaseActivity.kt @@ -162,18 +162,22 @@ open class BaseActivity : AppCompatActivity() { } fun showLoading(msg: String = "加载中……") { - Loading.show( - context = this, - message = msg - ) + handler.post { + Loading.show( + context = this, + message = msg + ) + } } fun dismissLoading() { - Loading.dismiss() + handler.post { + Loading.dismiss() + } } fun delayDismissLoading() { - window.decorView.postDelayed({ + handler.postDelayed({ Loading.dismiss() }, 500) } 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 332c276..790ab79 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 @@ -122,7 +122,11 @@ class PrepareCookActivity : BaseActivity() { } private fun addViewClickListener() { - binding.tvShowWeight.clickWithDebounce { WeightUtil.tareTwo(AddressUtil.ONE) } + binding.tvShowWeight.setOnClickListener { + showLoading("正在清零……") + WeightUtil.tareTwo(AddressUtil.ONE) + delayDismissLoading() + } WeightUtil.addWeightListener( weightKey = TAG, getWeight = { address, state, weight -> @@ -208,8 +212,10 @@ class PrepareCookActivity : BaseActivity() { return } if (!pageVisible || manualCancelFlag || isTakingPhoto.get() || showRecognizePage || abs(lastWeight - weight) <= WEIGHT_CHANGE_VALUE) { + Log.d(TAG, "recognizeFood, lastWeight:$lastWeight, weight:$weight, pageVisible:$pageVisible, manualCancelFlag:$manualCancelFlag, isTakingPhoto:${isTakingPhoto.get()}") return } + showLoading("识别中……") isTakingPhoto.set(true) cameraUtils.takePhoto( succCallback = cameraSuccessCallback, @@ -471,12 +477,14 @@ class PrepareCookActivity : BaseActivity() { withContext(Dispatchers.IO) { val bitmap = ImageUtil.uriToBitmap(this@PrepareCookActivity, uri) if (bitmap == null) { + dismissLoading() Log.d(TAG, "takePhoto bitmap is null") isTakingPhoto.set(false) return@withContext } val foodScoreList = FoodModule.getFoodScoreList(bitmap) if (foodScoreList.isEmpty()) { + dismissLoading() Log.d(TAG, "takePhoto foodScoreList is empty") isTakingPhoto.set(false) return@withContext @@ -495,6 +503,7 @@ class PrepareCookActivity : BaseActivity() { Log.d(TAG, "takePhoto failure") isTakingPhoto.set(false) toast(errMsg) + dismissLoading() } /** @@ -502,10 +511,11 @@ class PrepareCookActivity : BaseActivity() { * @param list 食材列表 */ private fun queryFood(list: List) { - Log.d(TAG, "takePhoto queryFood, list=${list.toString()}") + Log.d(TAG, "takePhoto queryFood, list=$list") //调用接口成功,返回食材列表设置isTakingPhoto.set(false),暂时写死数据 val foodList = mutableListOf() list.forEachIndexed { index, food -> + Log.d(TAG, "takePhoto queryFood, index=${index},food=$food") var foodName = "" var foodId = "" food.name.split("WP").let { @@ -527,6 +537,23 @@ class PrepareCookActivity : BaseActivity() { } ) } + Log.d(TAG, "takePhoto queryFood, 数据添加完成") + handler.postDelayed({ + dismissLoading() + loadRecognizeResultPage(foodList) + }, 1000) + } + + /** + * 加载识别结果页面 + */ + private fun loadRecognizeResultPage(foodList: List) { + if (currentWeight < WEIGHT_RECOGNIZE_VALUE) { + Log.d(TAG, "takePhoto queryFood, 已取消") + toast("已取消") + isTakingPhoto.set(false) + return + } lastWeight = currentWeight FoodRecognizeActivity.start( activity = this, diff --git a/app/src/main/res/layout/activity_prepare_cook.xml b/app/src/main/res/layout/activity_prepare_cook.xml index adf6cf8..b3b19fc 100644 --- a/app/src/main/res/layout/activity_prepare_cook.xml +++ b/app/src/main/res/layout/activity_prepare_cook.xml @@ -60,16 +60,14 @@