diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt index d62635f..da58079 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt @@ -30,4 +30,9 @@ * 搜索客户 * */ const val Customer = "5" + + /** + * 首页模糊搜索 + * */ + const val All = "6" } diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt index d62635f..da58079 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt @@ -30,4 +30,9 @@ * 搜索客户 * */ const val Customer = "5" + + /** + * 首页模糊搜索 + * */ + const val All = "6" } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt index ecc8fd7..97202b9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt @@ -1,24 +1,93 @@ package com.casic.xz.meterage.view.search +import android.view.LayoutInflater +import android.view.View import com.casic.xz.meterage.R +import com.casic.xz.meterage.bean.SearchHistoryBean import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.DataBaseManager +import com.casic.xz.meterage.utils.SearchType import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton +import com.zhy.view.flowlayout.FlowLayout +import com.zhy.view.flowlayout.TagAdapter import kotlinx.android.synthetic.main.activity_search_all.* import kotlinx.android.synthetic.main.include_search_input_title.* class SearchAllActivity : KotlinBaseActivity() { - override fun initData() { + private lateinit var inflater: LayoutInflater + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var historyAdapter: TagAdapter + private var dataBeans: MutableList = ArrayList() + private var isRefresh = false + override fun initData() { + inflater = LayoutInflater.from(this) + weakReferenceHandler = WeakReferenceHandler { + if (it.what == 2023031106) { + if (isRefresh) { + historyAdapter.notifyDataChanged() + } else { + historyAdapter = object : TagAdapter(dataBeans) { + override fun getView( + parent: FlowLayout?, position: Int, bean: SearchHistoryBean + ): View { + val tagView = inflater.inflate( + R.layout.item_search_rv_l, tagFlowLayout, false + ) as QMUIRoundButton + tagView.text = bean.keywords + return tagView + } + } + tagFlowLayout.adapter = historyAdapter + tagFlowLayout.setOnTagClickListener { _, position, _ -> + inputView.setText(dataBeans[position].keywords) + navigatePageTo(inputView.text.toString()) + true + } + } + } + true + } } override fun initEvent() { leftBackView.setOnClickListener { finish() } searchTextView.setOnClickListener { + if (!inputView.text.isNullOrBlank()) { + DataBaseManager.get.addSearchHistory( + inputView.text.toString(), SearchType.All + ) + } + navigatePageTo(inputView.text.toString()) } + + deleteHistoryView.setOnClickListener { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("确定将所有搜索记录删除?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + DataBaseManager.get.deleteHistoryByType(SearchType.All) + dataBeans.clear() + historyAdapter.notifyDataChanged() + } + }).build().show() + } } override fun initLayoutView(): Int = R.layout.activity_search_all @@ -30,11 +99,12 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() initLayoutImmersionBar(rootView) - inputView.hint = "查询样品、业务" + inputView.hint = "查询仪器设备、样品" } override fun onResume() { super.onResume() - //TODO 流式布局显示查询记录Tag? + dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All) + weakReferenceHandler.sendEmptyMessage(2023031106) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt index d62635f..da58079 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt @@ -30,4 +30,9 @@ * 搜索客户 * */ const val Customer = "5" + + /** + * 首页模糊搜索 + * */ + const val All = "6" } diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt index ecc8fd7..97202b9 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt @@ -1,24 +1,93 @@ package com.casic.xz.meterage.view.search +import android.view.LayoutInflater +import android.view.View import com.casic.xz.meterage.R +import com.casic.xz.meterage.bean.SearchHistoryBean import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.utils.DataBaseManager +import com.casic.xz.meterage.utils.SearchType import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton +import com.zhy.view.flowlayout.FlowLayout +import com.zhy.view.flowlayout.TagAdapter import kotlinx.android.synthetic.main.activity_search_all.* import kotlinx.android.synthetic.main.include_search_input_title.* class SearchAllActivity : KotlinBaseActivity() { - override fun initData() { + private lateinit var inflater: LayoutInflater + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var historyAdapter: TagAdapter + private var dataBeans: MutableList = ArrayList() + private var isRefresh = false + override fun initData() { + inflater = LayoutInflater.from(this) + weakReferenceHandler = WeakReferenceHandler { + if (it.what == 2023031106) { + if (isRefresh) { + historyAdapter.notifyDataChanged() + } else { + historyAdapter = object : TagAdapter(dataBeans) { + override fun getView( + parent: FlowLayout?, position: Int, bean: SearchHistoryBean + ): View { + val tagView = inflater.inflate( + R.layout.item_search_rv_l, tagFlowLayout, false + ) as QMUIRoundButton + tagView.text = bean.keywords + return tagView + } + } + tagFlowLayout.adapter = historyAdapter + tagFlowLayout.setOnTagClickListener { _, position, _ -> + inputView.setText(dataBeans[position].keywords) + navigatePageTo(inputView.text.toString()) + true + } + } + } + true + } } override fun initEvent() { leftBackView.setOnClickListener { finish() } searchTextView.setOnClickListener { + if (!inputView.text.isNullOrBlank()) { + DataBaseManager.get.addSearchHistory( + inputView.text.toString(), SearchType.All + ) + } + navigatePageTo(inputView.text.toString()) } + + deleteHistoryView.setOnClickListener { + AlertControlDialog.Builder() + .setContext(this) + .setTitle("提示") + .setMessage("确定将所有搜索记录删除?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onCancelClick() { + + } + + override fun onConfirmClick() { + DataBaseManager.get.deleteHistoryByType(SearchType.All) + dataBeans.clear() + historyAdapter.notifyDataChanged() + } + }).build().show() + } } override fun initLayoutView(): Int = R.layout.activity_search_all @@ -30,11 +99,12 @@ override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(true).init() initLayoutImmersionBar(rootView) - inputView.hint = "查询样品、业务" + inputView.hint = "查询仪器设备、样品" } override fun onResume() { super.onResume() - //TODO 流式布局显示查询记录Tag? + dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All) + weakReferenceHandler.sendEmptyMessage(2023031106) } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_search_all.xml b/app/src/main/res/layout/activity_search_all.xml index 45694fb..93ed590 100644 --- a/app/src/main/res/layout/activity_search_all.xml +++ b/app/src/main/res/layout/activity_search_all.xml @@ -1,5 +1,6 @@ + + + + + + + + \ No newline at end of file