Commit 749c94f8 authored by wanglei's avatar wanglei

...

parent f081fc38
package com.base.browserwhite.bean package com.base.browserwhite.bean
class SearchRecordBean( class SearchRecordBean(
val content:String val content:String=""
) :SpBean() ) :SpBean(){
\ No newline at end of file var isDelete:Boolean=false
}
\ No newline at end of file
...@@ -4,15 +4,14 @@ import android.animation.Animator ...@@ -4,15 +4,14 @@ import android.animation.Animator
import android.animation.ObjectAnimator import android.animation.ObjectAnimator
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Handler import android.os.Handler
import android.util.TypedValue import android.util.TypedValue
import android.view.Gravity
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject import com.base.browserwhite.bean.ConstObject
...@@ -22,6 +21,7 @@ import com.base.browserwhite.databinding.ActivitySearchBinding ...@@ -22,6 +21,7 @@ import com.base.browserwhite.databinding.ActivitySearchBinding
import com.base.browserwhite.help.SearchTipUtils.getSearchTip import com.base.browserwhite.help.SearchTipUtils.getSearchTip
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.utils.BarUtils.setStatusBarColor import com.base.browserwhite.utils.BarUtils.setStatusBarColor
import com.base.browserwhite.utils.BarUtils.setStatusBarLightMode import com.base.browserwhite.utils.BarUtils.setStatusBarLightMode
import com.base.browserwhite.utils.LinkSearchUtils import com.base.browserwhite.utils.LinkSearchUtils
...@@ -31,7 +31,6 @@ import com.google.android.flexbox.FlexDirection ...@@ -31,7 +31,6 @@ import com.google.android.flexbox.FlexDirection
import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.flexbox.JustifyContent import com.google.android.flexbox.JustifyContent
import com.google.android.material.chip.Chip
import com.google.gson.Gson import com.google.gson.Gson
...@@ -65,10 +64,23 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -65,10 +64,23 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
startActivity(Intent(this, WebBrowserActivity::class.java).apply { startActivity(Intent(this, WebBrowserActivity::class.java).apply {
putExtra("url", LinkSearchUtils.getSpSearchAction(content)) putExtra("url", LinkSearchUtils.getSpSearchAction(content))
}) })
finish()
} }
binding.rv.adapter = searchAdapter binding.rv.adapter = searchAdapter
searchRecordAdapter = SearchRecordAdapter() searchRecordAdapter = SearchRecordAdapter()
searchRecordAdapter.jumpAction = { content ->
startActivity(Intent(this, WebBrowserActivity::class.java).apply {
putExtra("url", LinkSearchUtils.getSpSearchAction(content))
})
finish()
}
searchRecordAdapter.deleteAction = {
showDeleteTipDialog(desc = "Clear all search records?") {
SpBeanUtils.clearSpBean(SEARCH_RECORD_SP_KEY)
showSearchRecord()
}
}
val layoutManager = FlexboxLayoutManager(this) val layoutManager = FlexboxLayoutManager(this)
// 设置主轴排列方向 // 设置主轴排列方向
layoutManager.flexDirection = FlexDirection.ROW layoutManager.flexDirection = FlexDirection.ROW
...@@ -77,7 +89,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -77,7 +89,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
// 设置水平对齐方式 // 设置水平对齐方式
layoutManager.justifyContent = JustifyContent.FLEX_START layoutManager.justifyContent = JustifyContent.FLEX_START
binding.rvFlow.layoutManager = layoutManager binding.rvFlow.layoutManager = layoutManager
binding.rvFlow.adapter = searchAdapter binding.rvFlow.adapter = searchRecordAdapter
showSearchRecord() showSearchRecord()
} }
...@@ -97,8 +109,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -97,8 +109,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
return@addTextChangedListener return@addTextChangedListener
} }
binding.rv.visibility = View.VISIBLE binding.rv.visibility = View.VISIBLE
binding.chipGroup.visibility = View.GONE
binding.tvCancel.visibility = View.GONE binding.tvCancel.visibility = View.GONE
binding.rvFlow.visibility = View.GONE
binding.ivClear.visibility = View.VISIBLE binding.ivClear.visibility = View.VISIBLE
binding.tvSearch.visibility = View.VISIBLE binding.tvSearch.visibility = View.VISIBLE
...@@ -141,23 +153,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -141,23 +153,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
binding.tvCancel.setOnClickListener { binding.tvCancel.setOnClickListener {
onBackPressed() onBackPressed()
} }
// binding.chipGroup.setOnCheckedStateChangeListener { chipGroup, ints ->
// val id = ints[0]
// if (id == -1) {
//
// } else {
// val bean = searchRecordList.find { it.id == id.toLong() }
// if (bean != null) {
// startActivity(Intent(this, WebBrowserActivity::class.java).apply {
// putExtra("url", LinkSearchUtils.getSpSearchAction(bean.content))
// addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
// })
// chipGroup.isClickable = false
// }
// }
//
// }
} }
private fun querySearchTip(query: String) { private fun querySearchTip(query: String) {
...@@ -261,7 +256,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -261,7 +256,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
private val searchRecordList = arrayListOf<SearchRecordBean>() private val searchRecordList = arrayListOf<SearchRecordBean>()
private fun showSearchRecord() { private fun showSearchRecord() {
binding.chipGroup.visibility = View.VISIBLE
binding.rv.visibility = View.GONE binding.rv.visibility = View.GONE
binding.rvFlow.visibility = View.VISIBLE binding.rvFlow.visibility = View.VISIBLE
...@@ -272,37 +266,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -272,37 +266,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
} }
searchRecordList.addAll(list) searchRecordList.addAll(list)
searchRecordAdapter.submitList(searchRecordList) searchRecordAdapter.submitList(searchRecordList)
if (list.isNotEmpty()) {
searchRecordAdapter.add(SearchRecordBean().apply { isDelete = true })
list.forEach {
val chip = Chip(this)
chip.id = it.id.toInt()
chip.text = it.content
chip.setTextColor(Color.BLACK)
chip.textSize = 14f
chip.background = ContextCompat.getDrawable(this, R.drawable.bg_eef1f6_20)
chip.isCheckable = true
chip.isCheckedIconVisible = false
chip.height = this.resources.getDimensionPixelOffset(R.dimen.dp_40)
binding.chipGroup.addView(chip)
} }
val deleteChip = Chip(this)
deleteChip.id = -1
deleteChip.text = ""
deleteChip.isCheckable = true
deleteChip.isCheckedIconVisible = false
deleteChip.isChipIconVisible = true
deleteChip.chipIcon = ContextCompat.getDrawable(this, R.mipmap.del_chip)
deleteChip.gravity = Gravity.CENTER
deleteChip.setChipIconSizeResource(R.dimen.dp_20)
deleteChip.iconStartPadding = this.resources.getDimension(R.dimen.dp_15)
deleteChip.height = this.resources.getDimensionPixelOffset(R.dimen.dp_40)
deleteChip.width = this.resources.getDimensionPixelOffset(R.dimen.dp_40)
binding.chipGroup.addView(deleteChip)
} }
} }
...@@ -3,6 +3,7 @@ package com.base.browserwhite.ui.activity.search ...@@ -3,6 +3,7 @@ package com.base.browserwhite.ui.activity.search
import android.content.Context import android.content.Context
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView.ViewHolder import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.SearchRecordBean import com.base.browserwhite.bean.SearchRecordBean
...@@ -15,10 +16,24 @@ class SearchRecordAdapter : BaseQuickAdapter<SearchRecordBean, SearchRecordAdapt ...@@ -15,10 +16,24 @@ class SearchRecordAdapter : BaseQuickAdapter<SearchRecordBean, SearchRecordAdapt
} }
var jumpAction: ((content: String) -> Unit)? = null
var deleteAction: (() -> Unit)? = null
override fun onBindViewHolder(holder: SearchRecordViewHolder, position: Int, item: SearchRecordBean?) { override fun onBindViewHolder(holder: SearchRecordViewHolder, position: Int, item: SearchRecordBean?) {
if (item == null) return if (item == null) return
val binding = ItemSearchrecordBinding.bind(holder.itemView) val binding = ItemSearchrecordBinding.bind(holder.itemView)
binding.ivDelete.isVisible = item.isDelete
binding.tvContent.isVisible = !item.isDelete
binding.tvContent.text = item.content binding.tvContent.text = item.content
binding.tvContent.setOnClickListener {
jumpAction?.invoke(item.content)
}
binding.ivDelete.setOnClickListener {
deleteAction?.invoke()
}
} }
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): SearchRecordViewHolder { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): SearchRecordViewHolder {
......
...@@ -130,20 +130,12 @@ ...@@ -130,20 +130,12 @@
tools:listitem="@layout/item_search_tip" /> tools:listitem="@layout/item_search_tip" />
<com.google.android.material.chip.ChipGroup
android:id="@+id/chipGroup"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="30dp"
android:visibility="gone"
app:chipSpacingHorizontal="20dp"
app:singleSelection="true" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_flow" android:id="@+id/rv_flow"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="match_parent"
android:padding="15dp"
android:visibility="gone" />
</FrameLayout> </FrameLayout>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/bg_eef1f6_20">
<TextView
android:id="@+id/tv_content" android:id="@+id/tv_content"
android:layout_height="match_parent" android:layout_width="wrap_content"
android:background="@drawable/bg_eef1f6_20" android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingHorizontal="15dp" android:paddingHorizontal="15dp"
android:paddingVertical="12.5dp" android:paddingVertical="12.5dp"
android:textColor="@color/black" android:textColor="@color/black"
android:visibility="gone"
tools:text="www.youtube.com" /> tools:text="www.youtube.com" />
<ImageView
android:id="@+id/iv_delete"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:src="@mipmap/del_searchrecord"
android:visibility="gone"
tools:ignore="ContentDescription" />
</FrameLayout>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment