diff --git a/app/src/main/java/io/legado/app/ui/book/cache/CacheActivity.kt b/app/src/main/java/io/legado/app/ui/book/cache/CacheActivity.kt index a1364284c..0ecf38968 100644 --- a/app/src/main/java/io/legado/app/ui/book/cache/CacheActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/cache/CacheActivity.kt @@ -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(), + PopupMenu.OnMenuItemClickListener, CacheAdapter.CallBack { override val binding by viewBinding(ActivityCacheBookBinding::inflate) @@ -120,6 +124,13 @@ class CacheActivity : VMBaseActivity() 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() */ 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() 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() return super.onCompatOptionsItemSelected(item) } + override fun onMenuItemClick(item: MenuItem): Boolean { + return onCompatOptionsItemSelected(item) + } + private fun initRecyclerView() { binding.recyclerView.layoutManager = layoutManager binding.recyclerView.adapter = adapter diff --git a/app/src/main/res/menu/book_cache_download.xml b/app/src/main/res/menu/book_cache_download.xml new file mode 100644 index 000000000..b01fdba7e --- /dev/null +++ b/app/src/main/res/menu/book_cache_download.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 5d6c9cfca..362aee223 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1178,4 +1178,6 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 + Descargar el siguiente capítulo + Descargar todos los capítulos diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index b364ed302..0ecfff8a4 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1181,4 +1181,6 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 + 下载之后章节 + 下载全部章节 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 570bee64d..bb915d599 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1181,4 +1181,6 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 + Faça o download do próximo capítulo + Download de todos os capítulos diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 377936cc7..14552b20f 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1177,4 +1177,6 @@ Còn 通过耳机按键来启动朗读 显示重复书源 主题配置 + Tải xuống chương tiếp theo + Tải xuống tất cả các chương diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 3e995c4c5..187f683b9 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1178,4 +1178,6 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 + 下載之後章節 + 下載全部章節 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index bb853248e..0dbe8cd91 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1180,4 +1180,6 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 + 下載之後章節 + 下載全部章節 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 75a7342ef..f40fb4bab 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1180,4 +1180,6 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 + 下载之后章节 + 下载全部章节 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cf31953e0..2fcf619bf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1181,4 +1181,6 @@ 通过耳机按键来启动朗读 显示重复书源 主题配置 + Download the chapter after + Download all chapter