缓存管理优化 (#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
|
||||
|
||||
Reference in New Issue
Block a user