Commit 749c94f8 authored by wanglei's avatar wanglei

...

parent f081fc38
package com.base.browserwhite.bean
class SearchRecordBean(
val content:String
) :SpBean()
\ No newline at end of file
val content:String=""
) :SpBean(){
var isDelete:Boolean=false
}
\ No newline at end of file
......@@ -4,15 +4,14 @@ import android.animation.Animator
import android.animation.ObjectAnimator
import android.annotation.SuppressLint
import android.app.Activity
import android.app.Dialog
import android.content.Intent
import android.graphics.Color
import android.os.Handler
import android.util.TypedValue
import android.view.Gravity
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener
import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject
......@@ -22,6 +21,7 @@ import com.base.browserwhite.databinding.ActivitySearchBinding
import com.base.browserwhite.help.SearchTipUtils.getSearchTip
import com.base.browserwhite.ui.activity.BaseActivity
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.setStatusBarLightMode
import com.base.browserwhite.utils.LinkSearchUtils
......@@ -31,7 +31,6 @@ import com.google.android.flexbox.FlexDirection
import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.flexbox.JustifyContent
import com.google.android.material.chip.Chip
import com.google.gson.Gson
......@@ -65,10 +64,23 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
startActivity(Intent(this, WebBrowserActivity::class.java).apply {
putExtra("url", LinkSearchUtils.getSpSearchAction(content))
})
finish()
}
binding.rv.adapter = searchAdapter
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)
// 设置主轴排列方向
layoutManager.flexDirection = FlexDirection.ROW
......@@ -77,7 +89,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
// 设置水平对齐方式
layoutManager.justifyContent = JustifyContent.FLEX_START
binding.rvFlow.layoutManager = layoutManager
binding.rvFlow.adapter = searchAdapter
binding.rvFlow.adapter = searchRecordAdapter
showSearchRecord()
}
......@@ -97,8 +109,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
return@addTextChangedListener
}
binding.rv.visibility = View.VISIBLE
binding.chipGroup.visibility = View.GONE
binding.tvCancel.visibility = View.GONE
binding.rvFlow.visibility = View.GONE
binding.ivClear.visibility = View.VISIBLE
binding.tvSearch.visibility = View.VISIBLE
......@@ -141,23 +153,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
binding.tvCancel.setOnClickListener {
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) {
......@@ -261,7 +256,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
private val searchRecordList = arrayListOf<SearchRecordBean>()
private fun showSearchRecord() {
binding.chipGroup.visibility = View.VISIBLE
binding.rv.visibility = View.GONE
binding.rvFlow.visibility = View.VISIBLE
......@@ -272,37 +266,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
}
searchRecordList.addAll(list)
searchRecordAdapter.submitList(searchRecordList)
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)
if (list.isNotEmpty()) {
searchRecordAdapter.add(SearchRecordBean().apply { isDelete = true })
}
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
import android.content.Context
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.browserwhite.R
import com.base.browserwhite.bean.SearchRecordBean
......@@ -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?) {
if (item == null) return
val binding = ItemSearchrecordBinding.bind(holder.itemView)
binding.ivDelete.isVisible = item.isDelete
binding.tvContent.isVisible = !item.isDelete
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 {
......
......@@ -130,20 +130,12 @@
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
android:id="@+id/rv_flow"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="match_parent"
android:padding="15dp"
android:visibility="gone" />
</FrameLayout>
......
<?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"
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:layout_height="match_parent"
android:background="@drawable/bg_eef1f6_20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingHorizontal="15dp"
android:paddingVertical="12.5dp"
android:textColor="@color/black"
android:visibility="gone"
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