[新增] 清理TTS缓存(@Luoyacheng)

This commit is contained in:
HapeLee
2025-12-29 02:35:33 +08:00
parent 8133b9ac7e
commit 96f0a84395
2 changed files with 22 additions and 0 deletions
@@ -31,6 +31,7 @@ import io.legado.app.ui.association.ImportHttpTtsDialog
import io.legado.app.ui.file.HandleFileContract
import io.legado.app.ui.login.SourceLoginActivity
import io.legado.app.utils.ACache
import io.legado.app.utils.FileUtils
import io.legado.app.utils.GSON
import io.legado.app.utils.fromJsonObject
import io.legado.app.utils.gone
@@ -40,6 +41,7 @@ import io.legado.app.utils.sendToClip
import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.splitNotBlank
import io.legado.app.utils.startActivity
import io.legado.app.utils.toastOnUi
import io.legado.app.utils.viewbindingdelegate.viewBinding
import io.legado.app.utils.visible
import kotlinx.coroutines.Dispatchers.IO
@@ -47,6 +49,7 @@ import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch
import java.io.File
/**
* tts引擎管理
@@ -175,6 +178,7 @@ class SpeakEngineDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_recycl
override fun onMenuItemClick(item: MenuItem?): Boolean {
when (item?.itemId) {
R.id.menu_clear -> clearCache()
R.id.menu_add -> showDialogFragment<HttpTtsEditDialog>()
R.id.menu_default -> viewModel.importDefault()
R.id.menu_import_local -> importDocResult.launch {
@@ -232,6 +236,18 @@ class SpeakEngineDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_recycl
adapter.notifyItemRangeChanged(adapter.getHeaderCount(), adapter.itemCount)
}
fun clearCache() {
execute {
ReadAloud.upReadAloudClass()
val ttsFolderPath = "${requireContext().cacheDir.absolutePath}${File.separator}httpTTS${File.separator}"
FileUtils.listDirsAndFiles(ttsFolderPath)?.forEach {
FileUtils.delete(it.absolutePath)
}
toastOnUi(R.string.clear_cache_success)
}
}
inner class Adapter(context: Context) :
RecyclerAdapter<HttpTTS, ItemHttpTtsBinding>(context) {