mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
缓存管理优化 (#4584)
This commit is contained in:
@@ -7,6 +7,7 @@ import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
@@ -38,11 +39,13 @@ import io.legado.app.ui.file.HandleFileContract
|
||||
import io.legado.app.utils.ACache
|
||||
import io.legado.app.utils.FileDoc
|
||||
import io.legado.app.utils.applyNavigationBarPadding
|
||||
import io.legado.app.utils.applyOpenTint
|
||||
import io.legado.app.utils.applyTint
|
||||
import io.legado.app.utils.checkWrite
|
||||
import io.legado.app.utils.cnCompare
|
||||
import io.legado.app.utils.enableCustomExport
|
||||
import io.legado.app.utils.flowWithLifecycleAndDatabaseChange
|
||||
import io.legado.app.utils.iconItemOnLongClick
|
||||
import io.legado.app.utils.isContentScheme
|
||||
import io.legado.app.utils.observeEvent
|
||||
import io.legado.app.utils.parseToUri
|
||||
@@ -65,6 +68,7 @@ import kotlin.math.max
|
||||
* cache/download 缓存界面
|
||||
*/
|
||||
class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>(),
|
||||
PopupMenu.OnMenuItemClickListener,
|
||||
CacheAdapter.CallBack {
|
||||
|
||||
override val binding by viewBinding(ActivityCacheBookBinding::inflate)
|
||||
@@ -120,6 +124,13 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
||||
|
||||
override fun onCompatCreateOptionsMenu(menu: Menu): Boolean {
|
||||
menuInflater.inflate(R.menu.book_cache, menu)
|
||||
menu.iconItemOnLongClick(R.id.menu_download) {
|
||||
PopupMenu(this, it).apply {
|
||||
inflate(R.menu.book_cache_download)
|
||||
this.menu.applyOpenTint(this@CacheActivity)
|
||||
setOnMenuItemClickListener(this@CacheActivity)
|
||||
}.show()
|
||||
}
|
||||
return super.onCompatCreateOptionsMenu(menu)
|
||||
}
|
||||
|
||||
@@ -158,7 +169,8 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
||||
*/
|
||||
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
R.id.menu_download -> {
|
||||
R.id.menu_download,
|
||||
R.id.menu_download_after -> {
|
||||
if (!CacheBook.isRun) {
|
||||
adapter.getItems().forEach { book ->
|
||||
CacheBook.start(
|
||||
@@ -172,6 +184,20 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
||||
CacheBook.stop(this@CacheActivity)
|
||||
}
|
||||
}
|
||||
R.id.menu_download_all -> {
|
||||
if (!CacheBook.isRun) {
|
||||
adapter.getItems().forEach { book ->
|
||||
CacheBook.start(
|
||||
this@CacheActivity,
|
||||
book,
|
||||
0,
|
||||
book.lastChapterIndex
|
||||
)
|
||||
}
|
||||
} else {
|
||||
CacheBook.stop(this@CacheActivity)
|
||||
}
|
||||
}
|
||||
|
||||
R.id.menu_export_all -> exportAll()
|
||||
R.id.menu_enable_replace -> AppConfig.exportUseReplace = !item.isChecked
|
||||
@@ -198,6 +224,10 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
||||
return super.onCompatOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun onMenuItemClick(item: MenuItem): Boolean {
|
||||
return onCompatOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private fun initRecyclerView() {
|
||||
binding.recyclerView.layoutManager = layoutManager
|
||||
binding.recyclerView.adapter = adapter
|
||||
|
||||
17
app/src/main/res/menu/book_cache_download.xml
Normal file
17
app/src/main/res/menu/book_cache_download.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_download_after"
|
||||
android:icon="@drawable/ic_bubble_chart"
|
||||
android:title="@string/menu_download_after"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_download_all"
|
||||
android:icon="@drawable/ic_bubble_chart"
|
||||
android:title="@string/menu_download_all"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
@@ -1178,4 +1178,6 @@
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">Descargar el siguiente capítulo</string>
|
||||
<string name="menu_download_all">Descargar todos los capítulos</string>
|
||||
</resources>
|
||||
|
||||
@@ -1181,4 +1181,6 @@
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">下载之后章节</string>
|
||||
<string name="menu_download_all">下载全部章节</string>
|
||||
</resources>
|
||||
|
||||
@@ -1181,4 +1181,6 @@
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">Faça o download do próximo capítulo</string>
|
||||
<string name="menu_download_all">Download de todos os capítulos</string>
|
||||
</resources>
|
||||
|
||||
@@ -1177,4 +1177,6 @@ Còn </string>
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">Tải xuống chương tiếp theo</string>
|
||||
<string name="menu_download_all">Tải xuống tất cả các chương</string>
|
||||
</resources>
|
||||
|
||||
@@ -1178,4 +1178,6 @@
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">下載之後章節</string>
|
||||
<string name="menu_download_all">下載全部章節</string>
|
||||
</resources>
|
||||
|
||||
@@ -1180,4 +1180,6 @@
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">下載之後章節</string>
|
||||
<string name="menu_download_all">下載全部章節</string>
|
||||
</resources>
|
||||
|
||||
@@ -1180,4 +1180,6 @@
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">下载之后章节</string>
|
||||
<string name="menu_download_all">下载全部章节</string>
|
||||
</resources>
|
||||
|
||||
@@ -1181,4 +1181,6 @@
|
||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||
<string name="show_same_source">显示重复书源</string>
|
||||
<string name="theme_config">主题配置</string>
|
||||
<string name="menu_download_after">Download the chapter after</string>
|
||||
<string name="menu_download_all">Download all chapter</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user