parent
246019df60
commit
9a2ba5650c
@ -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) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"> |
||||||
|
|
||||||
|
<io.legado.app.ui.widget.TitleBar |
||||||
|
android:id="@+id/title_bar" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
app:title="@string/all_bookmark" |
||||||
|
app:layout_constraintTop_toTopOf="parent" /> |
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView |
||||||
|
android:id="@+id/recycler_view" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="0dp" |
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" |
||||||
|
app:layout_constraintTop_toBottomOf="@+id/title_bar" |
||||||
|
app:layout_constraintBottom_toBottomOf="parent" /> |
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout> |
Loading…
Reference in new issue