diff --git a/app/src/main/java/com/shuwei/dish/match/db/DbViewModel.kt b/app/src/main/java/com/shuwei/dish/match/db/DbViewModel.kt index b87141c..df7bc03 100644 --- a/app/src/main/java/com/shuwei/dish/match/db/DbViewModel.kt +++ b/app/src/main/java/com/shuwei/dish/match/db/DbViewModel.kt @@ -537,5 +537,17 @@ class DbViewModel : ViewModel() { } } + /** + * 清除所有向量采集数据,完成后刷新列表 + * @param onDone 清除完成后在主线程执行的回调 + */ + fun clearAllCollectedFood(onDone: (() -> Unit)? = null) { + viewModelScope.launch { + ObjectBox.removeAll() + loadCollectedFoodList() + onDone?.invoke() + } + } + //-------------------------------------------------------------------------------------------------------- } \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/objbox/ObjectBox.kt b/app/src/main/java/com/shuwei/dish/match/objbox/ObjectBox.kt index c5a0cd6..ad3b9fa 100644 --- a/app/src/main/java/com/shuwei/dish/match/objbox/ObjectBox.kt +++ b/app/src/main/java/com/shuwei/dish/match/objbox/ObjectBox.kt @@ -213,6 +213,11 @@ object ObjectBox { getBox()?.query(Food_.name.equal(name))?.build()?.remove() } + // 清除所有向量采集数据 + suspend fun removeAll() = safeDbOp { + getBox()?.removeAll() + } + /** * 按名称分组统计采集数量 * 使用属性查询只加载 name 字段,不加载 foodVector,节省大量内存 diff --git a/app/src/main/java/com/shuwei/dish/match/ui/CollectedFoodActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/CollectedFoodActivity.kt index 2634b7c..0906f04 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/CollectedFoodActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/CollectedFoodActivity.kt @@ -55,6 +55,22 @@ class CollectedFoodActivity : BaseActivity() { } } + /** + * 清除所有采集数据确认弹窗 + */ + private fun showClearAllDialog() { + CommonDialog(this) + .setTitle("清除提示") + .setContent("清除后无法恢复,确认要清除所有采集数据吗?") + .setNegativeButton("取消") + .setPositiveButton("确认") { + dbViewModel.clearAllCollectedFood { + toast("已清除所有采集数据") + } + } + .show() + } + /** * 删除弹窗 */ @@ -96,7 +112,11 @@ class CollectedFoodActivity : BaseActivity() { }, titleAction = { it.text = "已采集食材" }, rightIconAction = { - it.gone() + it.visible() + it.setImageResource(R.drawable.ic_trash_white) + it.setOnClickListener { + showClearAllDialog() + } }, backAction = { it.visible() it.setOnClickListener {