|
@@ -1,5 +1,8 @@
|
|
|
package io.legado.app.ui.book.read.config
|
|
package io.legado.app.ui.book.read.config
|
|
|
|
|
|
|
|
|
|
+//import io.legado.app.lib.theme.backgroundColor
|
|
|
|
|
+//import io.legado.app.lib.theme.primaryColor
|
|
|
|
|
+// 【新增引用】为了显示清理成功的提示
|
|
|
import android.content.SharedPreferences
|
|
import android.content.SharedPreferences
|
|
|
import android.os.Bundle
|
|
import android.os.Bundle
|
|
|
import android.view.LayoutInflater
|
|
import android.view.LayoutInflater
|
|
@@ -18,16 +21,16 @@ import io.legado.app.help.config.AppConfig
|
|
|
import io.legado.app.lib.dialogs.SelectItem
|
|
import io.legado.app.lib.dialogs.SelectItem
|
|
|
import io.legado.app.lib.prefs.SwitchPreference
|
|
import io.legado.app.lib.prefs.SwitchPreference
|
|
|
import io.legado.app.lib.prefs.fragment.PreferenceFragment
|
|
import io.legado.app.lib.prefs.fragment.PreferenceFragment
|
|
|
-//import io.legado.app.lib.theme.backgroundColor
|
|
|
|
|
-//import io.legado.app.lib.theme.primaryColor
|
|
|
|
|
import io.legado.app.model.ReadAloud
|
|
import io.legado.app.model.ReadAloud
|
|
|
import io.legado.app.service.BaseReadAloudService
|
|
import io.legado.app.service.BaseReadAloudService
|
|
|
|
|
+import io.legado.app.ui.widget.number.NumberPickerDialog
|
|
|
import io.legado.app.utils.GSON
|
|
import io.legado.app.utils.GSON
|
|
|
import io.legado.app.utils.StringUtils
|
|
import io.legado.app.utils.StringUtils
|
|
|
|
|
+import io.legado.app.utils.TTSCacheUtils
|
|
|
import io.legado.app.utils.fromJsonObject
|
|
import io.legado.app.utils.fromJsonObject
|
|
|
import io.legado.app.utils.postEvent
|
|
import io.legado.app.utils.postEvent
|
|
|
|
|
+import io.legado.app.utils.putPrefInt
|
|
|
import io.legado.app.utils.showDialogFragment
|
|
import io.legado.app.utils.showDialogFragment
|
|
|
-// 【新增引用】为了显示清理成功的提示
|
|
|
|
|
import io.legado.app.utils.toastOnUi
|
|
import io.legado.app.utils.toastOnUi
|
|
|
|
|
|
|
|
class ReadAloudConfigDialog : BasePrefDialogFragment() {
|
|
class ReadAloudConfigDialog : BasePrefDialogFragment() {
|
|
@@ -73,17 +76,16 @@ class ReadAloudConfigDialog : BasePrefDialogFragment() {
|
|
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
|
|
addPreferencesFromResource(R.xml.pref_config_aloud)
|
|
addPreferencesFromResource(R.xml.pref_config_aloud)
|
|
|
upSpeakEngineSummary()
|
|
upSpeakEngineSummary()
|
|
|
|
|
+ upPreferenceSummary(PreferKey.audioPreDownloadNum)
|
|
|
|
|
+ upPreferenceSummary(PreferKey.audioCacheCleanTime)
|
|
|
findPreference<SwitchPreference>(PreferKey.pauseReadAloudWhilePhoneCalls)?.let {
|
|
findPreference<SwitchPreference>(PreferKey.pauseReadAloudWhilePhoneCalls)?.let {
|
|
|
it.isEnabled = AppConfig.ignoreAudioFocus
|
|
it.isEnabled = AppConfig.ignoreAudioFocus
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 【新增代码】绑定清理缓存按钮事件
|
|
|
|
|
findPreference<Preference>("clear_cache")?.let {
|
|
findPreference<Preference>("clear_cache")?.let {
|
|
|
it.summary = getString(R.string.clear_cache)
|
|
it.summary = getString(R.string.clear_cache)
|
|
|
it.setOnPreferenceClickListener {
|
|
it.setOnPreferenceClickListener {
|
|
|
- // 调用 AppConfig 中的万能清理函数 (自动处理外部存储)
|
|
|
|
|
- AppConfig.clearTtsCache()
|
|
|
|
|
- // 弹出提示
|
|
|
|
|
|
|
+ TTSCacheUtils.clearTtsCache()
|
|
|
toastOnUi("音频缓存已清理")
|
|
toastOnUi("音频缓存已清理")
|
|
|
true
|
|
true
|
|
|
}
|
|
}
|
|
@@ -107,6 +109,38 @@ class ReadAloudConfigDialog : BasePrefDialogFragment() {
|
|
|
|
|
|
|
|
override fun onPreferenceTreeClick(preference: Preference): Boolean {
|
|
override fun onPreferenceTreeClick(preference: Preference): Boolean {
|
|
|
when (preference.key) {
|
|
when (preference.key) {
|
|
|
|
|
+ PreferKey.audioPreDownloadNum -> {
|
|
|
|
|
+ NumberPickerDialog(requireContext())
|
|
|
|
|
+ .setTitle(getString(R.string.read_aloud_preload))
|
|
|
|
|
+ .setMaxValue(50)
|
|
|
|
|
+ .setMinValue(0)
|
|
|
|
|
+ .setValue(10)
|
|
|
|
|
+ .setCustomButton((R.string.btn_default_s)) {
|
|
|
|
|
+ putPrefInt(PreferKey.audioPreDownloadNum, 10)
|
|
|
|
|
+ upPreferenceSummary(PreferKey.audioPreDownloadNum)
|
|
|
|
|
+ }
|
|
|
|
|
+ .show {
|
|
|
|
|
+ putPrefInt(PreferKey.audioPreDownloadNum, it)
|
|
|
|
|
+ upPreferenceSummary(PreferKey.audioPreDownloadNum)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ PreferKey.audioCacheCleanTime -> {
|
|
|
|
|
+ NumberPickerDialog(requireContext())
|
|
|
|
|
+ .setTitle(getString(R.string.audio_cache_clean_time))
|
|
|
|
|
+ .setMaxValue(50)
|
|
|
|
|
+ .setMinValue(0)
|
|
|
|
|
+ .setValue(1)
|
|
|
|
|
+ .setCustomButton((R.string.btn_default_s)) {
|
|
|
|
|
+ putPrefInt(PreferKey.audioCacheCleanTime, 10)
|
|
|
|
|
+ upPreferenceSummary(PreferKey.audioCacheCleanTime)
|
|
|
|
|
+ }
|
|
|
|
|
+ .show {
|
|
|
|
|
+ putPrefInt(PreferKey.audioCacheCleanTime, it)
|
|
|
|
|
+ upPreferenceSummary(PreferKey.audioCacheCleanTime)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
PreferKey.ttsEngine -> showDialogFragment(SpeakEngineDialog())
|
|
PreferKey.ttsEngine -> showDialogFragment(SpeakEngineDialog())
|
|
|
"sysTtsConfig" -> IntentHelp.openTTSSetting()
|
|
"sysTtsConfig" -> IntentHelp.openTTSSetting()
|
|
|
}
|
|
}
|
|
@@ -139,12 +173,34 @@ class ReadAloudConfigDialog : BasePrefDialogFragment() {
|
|
|
preference.summary = if (index >= 0) preference.entries[index] else null
|
|
preference.summary = if (index >= 0) preference.entries[index] else null
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
else -> {
|
|
else -> {
|
|
|
preference?.summary = value
|
|
preference?.summary = value
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private fun upPreferenceSummary(preferenceKey: String, value: String? = null) {
|
|
|
|
|
+ val preference = findPreference<Preference>(preferenceKey) ?: return
|
|
|
|
|
+ when (preferenceKey) {
|
|
|
|
|
+ PreferKey.audioPreDownloadNum -> {
|
|
|
|
|
+ preference.summary = getString(
|
|
|
|
|
+ R.string.read_aloud_preload_summary,
|
|
|
|
|
+ AppConfig.audioPreDownloadNum
|
|
|
|
|
+ )
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ PreferKey.audioCacheCleanTime -> {
|
|
|
|
|
+ preference.summary = getString(
|
|
|
|
|
+ R.string.audio_cache_clean_time_summary,
|
|
|
|
|
+ AppConfig.audioCacheCleanTimeOrgin
|
|
|
|
|
+ )
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ else -> preference.summary = value
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
override fun upSpeakEngineSummary() {
|
|
override fun upSpeakEngineSummary() {
|
|
|
upPreferenceSummary(
|
|
upPreferenceSummary(
|
|
|
findPreference(PreferKey.ttsEngine),
|
|
findPreference(PreferKey.ttsEngine),
|