Commit 73a62b1e authored by wanglei's avatar wanglei

...

parent 075e8d34
...@@ -5,4 +5,6 @@ data class HistoryBean( ...@@ -5,4 +5,6 @@ data class HistoryBean(
val url: String = "", val url: String = "",
val time: Long = 0, val time: Long = 0,
val color: Int = 0, val color: Int = 0,
) : SpBean() ) : SpBean() {
var showTime: Boolean = false
}
...@@ -8,6 +8,7 @@ import androidx.activity.addCallback ...@@ -8,6 +8,7 @@ import androidx.activity.addCallback
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.base.browserwhite.bean.BookmarkBean import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.bean.HistoryBean
import com.base.browserwhite.databinding.ActivityBookmarkBinding import com.base.browserwhite.databinding.ActivityBookmarkBinding
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.bookmark.BookmarkFolderActivity.Companion.selectFolder import com.base.browserwhite.ui.activity.bookmark.BookmarkFolderActivity.Companion.selectFolder
...@@ -15,9 +16,11 @@ import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity ...@@ -15,9 +16,11 @@ import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import com.base.browserwhite.ui.views.BookmarkDialog.showBookmarkMoreDialog import com.base.browserwhite.ui.views.BookmarkDialog.showBookmarkMoreDialog
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.utils.BarUtils import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.KotlinExt.toFormatTime
import com.base.browserwhite.utils.SpBeanUtils import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_NAV_SP_KEY import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_NAV_SP_KEY
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.base.browserwhite.utils.SpBeanUtils.HISTORY_SP_KEY
import com.base.browserwhite.utils.ToastUtils.toast import com.base.browserwhite.utils.ToastUtils.toast
import com.google.gson.Gson import com.google.gson.Gson
...@@ -32,9 +35,12 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() { ...@@ -32,9 +35,12 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
} }
private lateinit var bookmarkAdapter: BookmarkAdapter private lateinit var bookmarkAdapter: BookmarkAdapter
private val bookmarkList = arrayListOf<BookmarkBean>() private val bookmarkList = arrayListOf<BookmarkBean>()
private lateinit var historyAdapter: HistoryAdapter
private val historyList = arrayListOf<HistoryBean>()
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, true) BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE) BarUtils.setStatusBarColor(this, Color.WHITE)
...@@ -46,8 +52,6 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() { ...@@ -46,8 +52,6 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
binding.llEmpty.isVisible = list.isEmpty() binding.llEmpty.isVisible = list.isEmpty()
bookmarkAdapter.submitList(list) bookmarkAdapter.submitList(list)
} }
bookmarkAdapter.moreAction = { view, bean -> bookmarkAdapter.moreAction = { view, bean ->
showBookmarkMoreDialog( showBookmarkMoreDialog(
view, view,
...@@ -101,12 +105,22 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() { ...@@ -101,12 +105,22 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
) )
} }
historyAdapter = HistoryAdapter()
changeBookmark() changeBookmark()
} }
private fun changeBookmark() { private fun changeBookmark() {
binding.rv.adapter = bookmarkAdapter binding.rv.adapter = bookmarkAdapter
bookmarkAdapter.submitList(bookmarkList) bookmarkAdapter.submitList(bookmarkList)
binding.llEmpty.isVisible = bookmarkList.isEmpty()
}
private fun changeHistory() {
binding.rv.adapter = historyAdapter
historyAdapter.submitList(historyList)
binding.llEmpty.isVisible = historyList.isEmpty()
} }
override fun onResume() { override fun onResume() {
...@@ -116,12 +130,29 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() { ...@@ -116,12 +130,29 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
private fun initData() { private fun initData() {
initBookmarkData() initBookmarkData()
initHistoryData()
}
private fun initHistoryData() {
historyList.clear()
val list = SpBeanUtils.getSpBeanList(HISTORY_SP_KEY)
val gson = Gson()
val item = list.map { gson.fromJson(it, HistoryBean::class.java) }
val time = ""
item.sortedBy { it.time }.forEach {
if (time != it.time.toFormatTime()) {
it.showTime = true
}
historyList.add(it)
}
} }
private fun initBookmarkData() { private fun initBookmarkData() {
bookmarkList.clear() bookmarkList.clear()
val list = SpBeanUtils.getSpBeanList(BOOKMARK_SP_KEY) val list = SpBeanUtils.getSpBeanList(BOOKMARK_SP_KEY)
val items = list.map { Gson().fromJson(it, BookmarkBean::class.java) } val gson = Gson()
val items = list.map { gson.fromJson(it, BookmarkBean::class.java) }
bookmarkList.addAll(items) bookmarkList.addAll(items)
bookmarkAdapter.currentFolderId = 0 bookmarkAdapter.currentFolderId = 0
...@@ -153,6 +184,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() { ...@@ -153,6 +184,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
binding.tvTabBookmark.isSelected = true binding.tvTabBookmark.isSelected = true
binding.tvTabHistory.isSelected = false binding.tvTabHistory.isSelected = false
currentTab = BOOKMARK_TAB currentTab = BOOKMARK_TAB
changeBookmark()
} }
binding.tvTabBookmark.callOnClick() binding.tvTabBookmark.callOnClick()
...@@ -163,6 +195,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() { ...@@ -163,6 +195,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
binding.tvTabHistory.isSelected = true binding.tvTabHistory.isSelected = true
binding.tvTabBookmark.isSelected = false binding.tvTabBookmark.isSelected = false
currentTab = HISTORY_TAB currentTab = HISTORY_TAB
changeHistory()
} }
binding.ivNewFolder.setOnClickListener { binding.ivNewFolder.setOnClickListener {
launcher.launch(Intent(this, BookmarkFolderEditActivity::class.java)) launcher.launch(Intent(this, BookmarkFolderEditActivity::class.java))
......
package com.base.browserwhite.ui.activity.bookmark
import android.content.Context
import android.graphics.drawable.ColorDrawable
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.HistoryBean
import com.base.browserwhite.databinding.ItemBookmarkHistoryBinding
import com.base.browserwhite.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter
class HistoryAdapter : BaseQuickAdapter<HistoryBean, HistoryAdapter.HistoryViewHolder>() {
inner class HistoryViewHolder(view: View) : ViewHolder(view)
var moreAction: ((item: HistoryBean) -> Unit)? = null
override fun onBindViewHolder(holder: HistoryViewHolder, position: Int, item: HistoryBean?) {
if (item == null) return
val binding = ItemBookmarkHistoryBinding.bind(holder.itemView)
binding.flTime.isVisible = item.showTime
binding.tvLetters.background = ColorDrawable(item.color)
binding.tvLetters.text = item.name.first().toString()
binding.tvName.text = item.name
binding.flOpeartion.setOnClickListener {
moreAction?.invoke(item)
}
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): HistoryViewHolder {
return HistoryViewHolder(R.layout.item_bookmark_history.inflate(parent))
}
}
\ No newline at end of file
...@@ -23,6 +23,7 @@ import com.base.browserwhite.databinding.FragmentWebViewBinding ...@@ -23,6 +23,7 @@ import com.base.browserwhite.databinding.FragmentWebViewBinding
import com.base.browserwhite.ui.activity.download.DownloadAdapter import com.base.browserwhite.ui.activity.download.DownloadAdapter
import com.base.browserwhite.ui.fragment.BaseFragment import com.base.browserwhite.ui.fragment.BaseFragment
import com.base.browserwhite.ui.activity.download.DownloadDialog.showDownloadVideoDialog import com.base.browserwhite.ui.activity.download.DownloadDialog.showDownloadVideoDialog
import com.base.browserwhite.utils.ColorUtils
import com.base.browserwhite.utils.DownloadUtils.getDownloadJson import com.base.browserwhite.utils.DownloadUtils.getDownloadJson
import com.base.browserwhite.utils.DownloadUtils.getDownloadJsonBean import com.base.browserwhite.utils.DownloadUtils.getDownloadJsonBean
import com.base.browserwhite.utils.DownloadUtils.saveDownloadRecordFile import com.base.browserwhite.utils.DownloadUtils.saveDownloadRecordFile
...@@ -200,10 +201,19 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -200,10 +201,19 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
override fun onPageFinished(view: WebView?, url: String?) { override fun onPageFinished(view: WebView?, url: String?) {
LogEx.logDebug(TAG, "onPageFinished") LogEx.logDebug(TAG, "onPageFinished")
super.onPageFinished(view, url) super.onPageFinished(view, url)
val tittle= view?.title.toString() val tittle = view?.title.toString()
bookmarkBean.name = tittle bookmarkBean.name = tittle
onPageFinished?.invoke(url) onPageFinished?.invoke(url)
SpBeanUtils.addSpBean(HISTORY_SP_KEY,HistoryBean(name = tittle,url=url?:"", time = System.currentTimeMillis()))
//添加历史记录
SpBeanUtils.addSpBean(
HISTORY_SP_KEY,
HistoryBean(
name = tittle, url = url ?: "",
time = System.currentTimeMillis(),
color = ColorUtils.getRandomColor()
)
)
} }
override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) { override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {
......
...@@ -8,7 +8,7 @@ object SpBeanUtils { ...@@ -8,7 +8,7 @@ object SpBeanUtils {
const val BOOKMARK_SP_KEY = "bookmark_sp_key"//书签 const val BOOKMARK_SP_KEY = "bookmark_sp_key"//书签
const val BOOKMARK_NAV_SP_KEY = "bookmark_nav_sp_key"//书签导航 const val BOOKMARK_NAV_SP_KEY = "bookmark_nav_sp_key"//书签导航
const val HISTORY_SP_KEY = "history_sp_key" const val HISTORY_SP_KEY = "history_sp_key"//历史记录
fun getSpBeanList(key: String): List<String> { fun getSpBeanList(key: String): List<String> {
val sp = AppPreferences.getInstance().getString(key, "") val sp = AppPreferences.getInstance().getString(key, "")
......
...@@ -47,8 +47,8 @@ ...@@ -47,8 +47,8 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fl_time"> app:layout_constraintTop_toBottomOf="@id/fl_time">
<TextView <TextView
tools:background="#FA94ED"
android:id="@+id/tv_letters" android:id="@+id/tv_letters"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
......
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