采集向量优化调试

This commit is contained in:
2026-01-08 15:02:44 +08:00
parent 378e6088e7
commit 2a55ddb617
35 changed files with 663 additions and 1112 deletions
@@ -3,8 +3,6 @@ package com.sw.dualscreen.view
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.graphics.Color
import android.graphics.Typeface
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -13,18 +11,15 @@ import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.sw.dualscreen.R
import com.sw.dualscreen.adapter.GenericItemAdapter
import com.sw.dualscreen.adapter.GridSpacingItemDecoration
import com.sw.dualscreen.adapter.SearchFoodAdapter
import com.sw.dualscreen.adapter.dpToPx
import com.sw.dualscreen.databinding.BottomSheetDialogBinding
import com.sw.dualscreen.databinding.ItemSearchFoodInfoBinding
import com.sw.dualscreen.model.response.FoodInfo
import com.sw.dualscreen.utils.Debouncer
import com.sw.dualscreen.utils.KeyboardUtils
import com.sw.dualscreen.viewmodel.UserViewModel
import kotlinx.coroutines.launch
import timber.log.Timber
import androidx.core.graphics.drawable.toDrawable
/**
* 底部搜索结果弹窗
@@ -43,7 +38,7 @@ class CustomBottomSheetDialog(
searchFoodList.forEachIndexed { index, info ->
searchFoodList[index].isChecked = index == position
}
val item = searchFoodList[position]
val item = searchFoodList[position].also { it.isFromSearch = true }
Timber.d("itemClick ${item.foodName}, position = $position")
itemClickCallback(item)
checkedItem = item
@@ -79,7 +74,7 @@ class CustomBottomSheetDialog(
private fun setDialogStyle() {
dialog?.window?.let {
it.decorView.background = ColorDrawable(Color.TRANSPARENT)
it.decorView.background = Color.TRANSPARENT.toDrawable()
it.decorView.setPadding(0, 0, 0, 0)
it.attributes?.apply {
width = ViewGroup.LayoutParams.MATCH_PARENT
@@ -118,15 +113,17 @@ class CustomBottomSheetDialog(
it.adapter = adapter
}
binding.ivSearch.setOnClickListener {
searchInfo()
searchFood()
}
KeyboardUtils.setupEditorAction(binding.etSearch) {
searchInfo()
searchFood()
}
registerDataChange()
searchFood()
}
private fun searchInfo(){
private fun searchFood(){
debouncer.debounce {
viewModel.searchByFoodName(binding.etSearch.text.toString()) {
searchFoodList.clear()
@@ -138,13 +135,13 @@ class CustomBottomSheetDialog(
@SuppressLint("NotifyDataSetChanged")
private fun registerDataChange() {
lifecycleScope.launch {
viewModel.searchFoodInfoList.collect {
searchFoodList.clear()
searchFoodList.addAll(it)
adapter.notifyDataSetChanged()
}
}
// lifecycleScope.launch {
// viewModel.searchFoodInfoList.collect {
// searchFoodList.clear()
// searchFoodList.addAll(it)
// adapter.notifyDataSetChanged()
// }
// }
}
// private fun createAdapter(): GenericItemAdapter<FoodInfo, ItemSearchFoodInfoBinding> {
@@ -176,13 +173,13 @@ class CustomBottomSheetDialog(
override fun onCancel(dialog: DialogInterface) {
Timber.d("onCancel")
viewModel.cleanSearchFoodInfoList()
// viewModel.cleanSearchFoodInfoList()
super.onCancel(dialog)
}
override fun dismiss() {
Timber.d("dismiss")
viewModel.cleanSearchFoodInfoList()
// viewModel.cleanSearchFoodInfoList()
super.dismiss()
}
}