添加所有书签界面

This commit is contained in:
kunfei
2022-04-02 09:09:32 +08:00
parent b8d518c4aa
commit efefa39765
15 changed files with 123 additions and 1 deletions
@@ -7,7 +7,7 @@ import io.legado.app.data.entities.Bookmark
@Dao
interface BookmarkDao {
@get:Query("select * from bookmarks")
@get:Query("select * from bookmarks order by bookName, bookAuthor, chapterIndex, chapterPos")
val all: List<Bookmark>
@Query(
@@ -0,0 +1,29 @@
package io.legado.app.ui.book.bookmark
import android.os.Bundle
import androidx.activity.viewModels
import io.legado.app.base.VMBaseActivity
import io.legado.app.databinding.ActivityAllBookmarkBinding
import io.legado.app.utils.viewbindingdelegate.viewBinding
class AllBookmarkActivity : VMBaseActivity<ActivityAllBookmarkBinding, AllBookmarkViewModel>() {
override val viewModel by viewModels<AllBookmarkViewModel>()
override val binding by viewBinding(ActivityAllBookmarkBinding::inflate)
private val adapter by lazy {
BookmarkAdapter(this)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
initView()
viewModel.initData {
adapter.setItems(it)
}
}
private fun initView() {
binding.recyclerView.adapter = adapter
}
}
@@ -0,0 +1,19 @@
package io.legado.app.ui.book.bookmark
import android.app.Application
import io.legado.app.base.BaseViewModel
import io.legado.app.data.appDb
import io.legado.app.data.entities.Bookmark
class AllBookmarkViewModel(application: Application) : BaseViewModel(application) {
fun initData(onSuccess: (bookmarks: List<Bookmark>) -> Unit) {
execute {
appDb.bookmarkDao.all
}.onSuccess {
onSuccess.invoke(it)
}
}
}
@@ -0,0 +1,32 @@
package io.legado.app.ui.book.bookmark
import android.content.Context
import android.view.ViewGroup
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.RecyclerAdapter
import io.legado.app.data.entities.Bookmark
import io.legado.app.databinding.ItemBookmarkBinding
class BookmarkAdapter(context: Context) : RecyclerAdapter<Bookmark, ItemBookmarkBinding>(context) {
override fun getViewBinding(parent: ViewGroup): ItemBookmarkBinding {
return ItemBookmarkBinding.inflate(inflater, parent, false)
}
override fun convert(
holder: ItemViewHolder,
binding: ItemBookmarkBinding,
item: Bookmark,
payloads: MutableList<Any>
) {
binding.tvChapterName.text = item.chapterName
binding.tvBookText.text = item.bookText
binding.tvContent.text = item.content
}
override fun registerListener(holder: ItemViewHolder, binding: ItemBookmarkBinding) {
}
}
@@ -20,6 +20,7 @@ import io.legado.app.service.WebService
import io.legado.app.ui.about.AboutActivity
import io.legado.app.ui.about.DonateActivity
import io.legado.app.ui.about.ReadRecordActivity
import io.legado.app.ui.book.bookmark.AllBookmarkActivity
import io.legado.app.ui.book.source.manage.BookSourceActivity
import io.legado.app.ui.config.ConfigActivity
import io.legado.app.ui.config.ConfigTag
@@ -135,6 +136,7 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
when (preference.key) {
"bookSourceManage" -> startActivity<BookSourceActivity>()
"replaceManage" -> startActivity<ReplaceRuleActivity>()
"bookmark" -> startActivity<AllBookmarkActivity>()
"setting" -> startActivity<ConfigActivity> {
putExtra("configTag", ConfigTag.OTHER_CONFIG)
}