pull/90/head^2
kunfei 5 years ago
parent b2339ed043
commit 3ac6d9807b
  1. 3
      app/src/main/java/io/legado/app/help/AppConfig.kt
  2. 4
      app/src/main/java/io/legado/app/service/HttpReadAloudService.kt
  3. 39
      app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudConfigDialog.kt
  4. 1
      app/src/main/res/values/strings.xml
  5. 2
      app/src/main/res/xml/pref_config_aloud.xml

@ -56,6 +56,9 @@ object AppConfig {
App.INSTANCE.putPrefInt(PreferKey.ttsSpeechRate, value)
}
val ttsSpeechPer: String
get() = App.INSTANCE.getPrefString(PreferKey.ttsSpeechPer) ?: "0"
val isEInkMode: Boolean
get() = App.INSTANCE.getPrefBoolean("isEInkMode")

@ -3,7 +3,6 @@ package io.legado.app.service
import android.app.PendingIntent
import android.media.MediaPlayer
import io.legado.app.constant.EventBus
import io.legado.app.constant.PreferKey
import io.legado.app.help.AppConfig
import io.legado.app.help.IntentHelp
import io.legado.app.help.http.HttpHelper
@ -11,7 +10,6 @@ import io.legado.app.help.http.api.HttpPostApi
import io.legado.app.service.help.ReadBook
import io.legado.app.utils.FileUtils
import io.legado.app.utils.LogUtils
import io.legado.app.utils.getPrefString
import io.legado.app.utils.postEvent
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Job
@ -114,7 +112,7 @@ class HttpReadAloudService : BaseReadAloudService(),
return mapOf(
Pair("tex", encodeTwo(content)),
Pair("spd", ((AppConfig.ttsSpeechRate + 5) / 10 + 4).toString()),
Pair("per", getPrefString(PreferKey.ttsSpeechPer) ?: "0"),
Pair("per", AppConfig.ttsSpeechPer),
Pair("cuid", "baidu_speech_demo"),
Pair("idx", "1"),
Pair("cod", "2"),

@ -14,11 +14,11 @@ import androidx.preference.PreferenceFragmentCompat
import io.legado.app.R
import io.legado.app.constant.EventBus
import io.legado.app.constant.PreferKey
import io.legado.app.help.AppConfig
import io.legado.app.lib.theme.ATH
import io.legado.app.service.BaseReadAloudService
import io.legado.app.service.help.ReadAloud
import io.legado.app.ui.book.read.Help
import io.legado.app.utils.getPrefString
import io.legado.app.utils.postEvent
class ReadAloudConfigDialog : DialogFragment() {
@ -59,17 +59,19 @@ class ReadAloudConfigDialog : DialogFragment() {
}
class ReadAloudPreferenceFragment : PreferenceFragmentCompat(),
SharedPreferences.OnSharedPreferenceChangeListener,
Preference.OnPreferenceChangeListener {
SharedPreferences.OnSharedPreferenceChangeListener {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_config_aloud)
upPreferenceSummary(
findPreference<ListPreference>(PreferKey.ttsSpeechPer),
AppConfig.ttsSpeechPer
)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
ATH.applyEdgeEffectColor(listView)
bindPreferenceSummaryToValue(findPreference(PreferKey.ttsSpeechPer))
}
override fun onResume() {
@ -97,32 +99,25 @@ class ReadAloudConfigDialog : DialogFragment() {
ReadAloud.aloudClass = ReadAloud.getReadAloudClass()
}
PreferKey.ttsSpeechPer -> {
upPreferenceSummary(
findPreference<ListPreference>(PreferKey.ttsSpeechPer),
AppConfig.ttsSpeechPer
)
ReadAloud.upTtsSpeechRate(requireContext())
}
}
}
override fun onPreferenceChange(preference: Preference?, newValue: Any?): Boolean {
val stringValue = newValue.toString()
if (preference is ListPreference) {
val index = preference.findIndexOfValue(stringValue)
private fun upPreferenceSummary(preference: Preference?, value: String) {
when (preference) {
is ListPreference -> {
val index = preference.findIndexOfValue(value)
// Set the summary to reflect the new value.
preference.setSummary(if (index >= 0) preference.entries[index] else null)
} else {
// For all other preferences, set the summary to the value's
preference?.summary = stringValue
preference.summary = if (index >= 0) preference.entries[index] else null
}
return false
else -> {
preference?.summary = value
}
private fun bindPreferenceSummaryToValue(preference: Preference?) {
preference?.apply {
onPreferenceChangeListener = this@ReadAloudPreferenceFragment
onPreferenceChange(
this,
context.getPrefString(key)
)
}
}

@ -590,5 +590,6 @@
<string name="auto_dark_mode">自动切换夜间模式</string>
<string name="auto_dark_mode_s">夜间模式跟随系统</string>
<string name="go_back">上级</string>
<string name="tone_colour">在线朗读音色</string>
</resources>

@ -16,7 +16,7 @@
<androidx.preference.ListPreference
android:key="ttsSpeechPer"
android:title="在线朗读音色"
android:title="@string/tone_colour"
android:defaultValue="0"
android:entries="@array/tts_speech_per"
android:entryValues="@array/tts_speech_per_value"

Loading…
Cancel
Save