添加所有书签界面
This commit is contained in:
@@ -293,6 +293,10 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.rss.favorites.RssFavoritesActivity"
|
android:name=".ui.rss.favorites.RssFavoritesActivity"
|
||||||
android:launchMode="singleTop" />
|
android:launchMode="singleTop" />
|
||||||
|
<!-- 书签 -->
|
||||||
|
<activity
|
||||||
|
android:name=".ui.book.bookmark.AllBookmarkActivity"
|
||||||
|
android:launchMode="singleTop" />
|
||||||
<!-- 缓存界面 -->
|
<!-- 缓存界面 -->
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.book.cache.CacheActivity"
|
android:name=".ui.book.cache.CacheActivity"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import io.legado.app.data.entities.Bookmark
|
|||||||
@Dao
|
@Dao
|
||||||
interface BookmarkDao {
|
interface BookmarkDao {
|
||||||
|
|
||||||
@get:Query("select * from bookmarks")
|
@get:Query("select * from bookmarks order by bookName, bookAuthor, chapterIndex, chapterPos")
|
||||||
val all: List<Bookmark>
|
val all: List<Bookmark>
|
||||||
|
|
||||||
@Query(
|
@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.AboutActivity
|
||||||
import io.legado.app.ui.about.DonateActivity
|
import io.legado.app.ui.about.DonateActivity
|
||||||
import io.legado.app.ui.about.ReadRecordActivity
|
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.book.source.manage.BookSourceActivity
|
||||||
import io.legado.app.ui.config.ConfigActivity
|
import io.legado.app.ui.config.ConfigActivity
|
||||||
import io.legado.app.ui.config.ConfigTag
|
import io.legado.app.ui.config.ConfigTag
|
||||||
@@ -135,6 +136,7 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
|
|||||||
when (preference.key) {
|
when (preference.key) {
|
||||||
"bookSourceManage" -> startActivity<BookSourceActivity>()
|
"bookSourceManage" -> startActivity<BookSourceActivity>()
|
||||||
"replaceManage" -> startActivity<ReplaceRuleActivity>()
|
"replaceManage" -> startActivity<ReplaceRuleActivity>()
|
||||||
|
"bookmark" -> startActivity<AllBookmarkActivity>()
|
||||||
"setting" -> startActivity<ConfigActivity> {
|
"setting" -> startActivity<ConfigActivity> {
|
||||||
putExtra("configTag", ConfigTag.OTHER_CONFIG)
|
putExtra("configTag", ConfigTag.OTHER_CONFIG)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -965,5 +965,6 @@
|
|||||||
<string name="sys_tts_config">系统tts设置</string>
|
<string name="sys_tts_config">系统tts设置</string>
|
||||||
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
||||||
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
||||||
|
<string name="all_bookmark">所有书签</string>
|
||||||
<!-- string end -->
|
<!-- string end -->
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -968,5 +968,6 @@
|
|||||||
<string name="sys_tts_config">系统tts设置</string>
|
<string name="sys_tts_config">系统tts设置</string>
|
||||||
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
||||||
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
||||||
|
<string name="all_bookmark">所有书签</string>
|
||||||
<!-- string end -->
|
<!-- string end -->
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -968,5 +968,6 @@
|
|||||||
<string name="sys_tts_config">系统tts设置</string>
|
<string name="sys_tts_config">系统tts设置</string>
|
||||||
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
||||||
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
||||||
|
<string name="all_bookmark">所有书签</string>
|
||||||
<!-- string end -->
|
<!-- string end -->
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -965,5 +965,6 @@
|
|||||||
<string name="sys_tts_config">系统tts设置</string>
|
<string name="sys_tts_config">系统tts设置</string>
|
||||||
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
||||||
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
||||||
|
<string name="all_bookmark">所有书签</string>
|
||||||
<!-- string end -->
|
<!-- string end -->
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -967,5 +967,6 @@
|
|||||||
<string name="sys_tts_config">系统tts设置</string>
|
<string name="sys_tts_config">系统tts设置</string>
|
||||||
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
||||||
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
||||||
|
<string name="all_bookmark">所有书签</string>
|
||||||
<!-- string end -->
|
<!-- string end -->
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -967,5 +967,6 @@
|
|||||||
<string name="sys_tts_config">系统tts设置</string>
|
<string name="sys_tts_config">系统tts设置</string>
|
||||||
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
||||||
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
||||||
|
<string name="all_bookmark">所有书签</string>
|
||||||
<!-- string end -->
|
<!-- string end -->
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -968,5 +968,6 @@
|
|||||||
<string name="sys_tts_config">系统tts设置</string>
|
<string name="sys_tts_config">系统tts设置</string>
|
||||||
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
<string name="sys_tts_config_summary">打开系统tts设置界面</string>
|
||||||
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
<string name="cannot_timed_non_playback">非播放状态无法定时</string>
|
||||||
|
<string name="all_bookmark">所有书签</string>
|
||||||
<!-- string end -->
|
<!-- string end -->
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -19,6 +19,13 @@
|
|||||||
android:icon="@drawable/ic_cfg_replace"
|
android:icon="@drawable/ic_cfg_replace"
|
||||||
app:iconSpaceReserved="false" />
|
app:iconSpaceReserved="false" />
|
||||||
|
|
||||||
|
<io.legado.app.ui.widget.prefs.Preference
|
||||||
|
android:key="bookmark"
|
||||||
|
android:title="@string/bookmark"
|
||||||
|
android:summary="@string/all_bookmark"
|
||||||
|
android:icon="@drawable/ic_bookmark"
|
||||||
|
app:iconSpaceReserved="false" />
|
||||||
|
|
||||||
<io.legado.app.ui.widget.prefs.NameListPreference
|
<io.legado.app.ui.widget.prefs.NameListPreference
|
||||||
android:defaultValue="0"
|
android:defaultValue="0"
|
||||||
android:entries="@array/theme_mode"
|
android:entries="@array/theme_mode"
|
||||||
|
|||||||
Reference in New Issue
Block a user