|
|
@@ -20,6 +20,9 @@ import io.legado.app.utils.removePref
|
|
|
import io.legado.app.utils.sysConfiguration
|
|
|
import io.legado.app.utils.toastOnUi
|
|
|
import splitties.init.appCtx
|
|
|
+// 【新增引用】为了文件操作
|
|
|
+import java.io.File
|
|
|
+import io.legado.app.utils.FileUtils
|
|
|
|
|
|
@Suppress("MemberVisibilityCanBePrivate", "ConstPropertyName")
|
|
|
object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
|
|
|
@@ -976,16 +979,13 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
|
|
|
// ================= 自定义功能区域 Start =================
|
|
|
|
|
|
// 1. 听书预加载数量
|
|
|
- // 逻辑:从设置里读取字符串,转成数字。如果读不到,默认返回 10。
|
|
|
val audioPreDownloadNum: Int
|
|
|
get() {
|
|
|
- // 注意:EditTextPreference 保存的是 String
|
|
|
val str = appCtx.getPrefString("audioPreDownloadNum")
|
|
|
return str?.toIntOrNull() ?: 10
|
|
|
}
|
|
|
|
|
|
// 2. 音频缓存保留时间 (返回毫秒)
|
|
|
- // 逻辑:用户输入的是“分钟”,我们在这里把它乘以 60000 变成“毫秒”。
|
|
|
val audioCacheCleanTime: Long
|
|
|
get() {
|
|
|
val str = appCtx.getPrefString("audioCacheCleanTime")
|
|
|
@@ -993,6 +993,19 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
|
|
|
return minutes * 60 * 1000L
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 【新增】手动清理 TTS 缓存
|
|
|
+ * 这个方法会自动寻找 externalCacheDir(外部存储),如果找不到再找内部。
|
|
|
+ * 确保和 Service 里的逻辑保持一致。
|
|
|
+ */
|
|
|
+ fun clearTtsCache() {
|
|
|
+ val baseDir = appCtx.externalCacheDir ?: appCtx.cacheDir
|
|
|
+ // 清理音频文件
|
|
|
+ FileUtils.delete(baseDir.absolutePath + File.separator + "httpTTS")
|
|
|
+ // 清理数据库索引 (可选,建议一起清,防止索引还在但文件没了)
|
|
|
+ FileUtils.delete(baseDir.absolutePath + File.separator + "httpTTS_cache")
|
|
|
+ }
|
|
|
+
|
|
|
// ================= 自定义功能区域 End =================
|
|
|
|
|
|
}
|