添加所有书签界面
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user