缓存管理优化 (#4584)
This commit is contained in:
@@ -7,6 +7,7 @@ import android.view.MenuItem
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
|
import androidx.appcompat.widget.PopupMenu
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
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.ACache
|
||||||
import io.legado.app.utils.FileDoc
|
import io.legado.app.utils.FileDoc
|
||||||
import io.legado.app.utils.applyNavigationBarPadding
|
import io.legado.app.utils.applyNavigationBarPadding
|
||||||
|
import io.legado.app.utils.applyOpenTint
|
||||||
import io.legado.app.utils.applyTint
|
import io.legado.app.utils.applyTint
|
||||||
import io.legado.app.utils.checkWrite
|
import io.legado.app.utils.checkWrite
|
||||||
import io.legado.app.utils.cnCompare
|
import io.legado.app.utils.cnCompare
|
||||||
import io.legado.app.utils.enableCustomExport
|
import io.legado.app.utils.enableCustomExport
|
||||||
import io.legado.app.utils.flowWithLifecycleAndDatabaseChange
|
import io.legado.app.utils.flowWithLifecycleAndDatabaseChange
|
||||||
|
import io.legado.app.utils.iconItemOnLongClick
|
||||||
import io.legado.app.utils.isContentScheme
|
import io.legado.app.utils.isContentScheme
|
||||||
import io.legado.app.utils.observeEvent
|
import io.legado.app.utils.observeEvent
|
||||||
import io.legado.app.utils.parseToUri
|
import io.legado.app.utils.parseToUri
|
||||||
@@ -65,6 +68,7 @@ import kotlin.math.max
|
|||||||
* cache/download 缓存界面
|
* cache/download 缓存界面
|
||||||
*/
|
*/
|
||||||
class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>(),
|
class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>(),
|
||||||
|
PopupMenu.OnMenuItemClickListener,
|
||||||
CacheAdapter.CallBack {
|
CacheAdapter.CallBack {
|
||||||
|
|
||||||
override val binding by viewBinding(ActivityCacheBookBinding::inflate)
|
override val binding by viewBinding(ActivityCacheBookBinding::inflate)
|
||||||
@@ -120,6 +124,13 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
|||||||
|
|
||||||
override fun onCompatCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCompatCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.book_cache, menu)
|
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)
|
return super.onCompatCreateOptionsMenu(menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,7 +169,8 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
|||||||
*/
|
*/
|
||||||
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.menu_download -> {
|
R.id.menu_download,
|
||||||
|
R.id.menu_download_after -> {
|
||||||
if (!CacheBook.isRun) {
|
if (!CacheBook.isRun) {
|
||||||
adapter.getItems().forEach { book ->
|
adapter.getItems().forEach { book ->
|
||||||
CacheBook.start(
|
CacheBook.start(
|
||||||
@@ -172,6 +184,20 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
|||||||
CacheBook.stop(this@CacheActivity)
|
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_export_all -> exportAll()
|
||||||
R.id.menu_enable_replace -> AppConfig.exportUseReplace = !item.isChecked
|
R.id.menu_enable_replace -> AppConfig.exportUseReplace = !item.isChecked
|
||||||
@@ -198,6 +224,10 @@ class CacheActivity : VMBaseActivity<ActivityCacheBookBinding, CacheViewModel>()
|
|||||||
return super.onCompatOptionsItemSelected(item)
|
return super.onCompatOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onMenuItemClick(item: MenuItem): Boolean {
|
||||||
|
return onCompatOptionsItemSelected(item)
|
||||||
|
}
|
||||||
|
|
||||||
private fun initRecyclerView() {
|
private fun initRecyclerView() {
|
||||||
binding.recyclerView.layoutManager = layoutManager
|
binding.recyclerView.layoutManager = layoutManager
|
||||||
binding.recyclerView.adapter = adapter
|
binding.recyclerView.adapter = adapter
|
||||||
|
|||||||
@@ -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="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</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>
|
</resources>
|
||||||
|
|||||||
@@ -1181,4 +1181,6 @@
|
|||||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</string>
|
<string name="theme_config">主题配置</string>
|
||||||
|
<string name="menu_download_after">下载之后章节</string>
|
||||||
|
<string name="menu_download_all">下载全部章节</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1181,4 +1181,6 @@
|
|||||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</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>
|
</resources>
|
||||||
|
|||||||
@@ -1177,4 +1177,6 @@ Còn </string>
|
|||||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</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>
|
</resources>
|
||||||
|
|||||||
@@ -1178,4 +1178,6 @@
|
|||||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</string>
|
<string name="theme_config">主题配置</string>
|
||||||
|
<string name="menu_download_after">下載之後章節</string>
|
||||||
|
<string name="menu_download_all">下載全部章節</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1180,4 +1180,6 @@
|
|||||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</string>
|
<string name="theme_config">主题配置</string>
|
||||||
|
<string name="menu_download_after">下載之後章節</string>
|
||||||
|
<string name="menu_download_all">下載全部章節</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1180,4 +1180,6 @@
|
|||||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</string>
|
<string name="theme_config">主题配置</string>
|
||||||
|
<string name="menu_download_after">下载之后章节</string>
|
||||||
|
<string name="menu_download_all">下载全部章节</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1181,4 +1181,6 @@
|
|||||||
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
<string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
|
||||||
<string name="show_same_source">显示重复书源</string>
|
<string name="show_same_source">显示重复书源</string>
|
||||||
<string name="theme_config">主题配置</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>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user