Enable Sonos cache invalidation
This commit is contained in:
@@ -7,4 +7,5 @@ object PreferenceKey {
|
||||
const val ENABLE_WAVE_ENDPOINT = "preference_enable_wave_endpoint"
|
||||
const val ENABLE_SONOS_ENDPOINT = "preference_enable_sonos_endpoint"
|
||||
const val TTS = "preference_tts"
|
||||
const val INVALIDATE_SONOS_CACHE = "preference_invalidate_sonos_cache"
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.os.Bundle
|
||||
import android.text.InputType
|
||||
import android.widget.Toast
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
@@ -19,6 +20,7 @@ class PreferencesFragment : PreferenceFragmentCompat() {
|
||||
private lateinit var sayEndpointPreference: SwitchPreference
|
||||
private lateinit var waveEndpointPreference: SwitchPreference
|
||||
private lateinit var ttsEnginePreference: Preference
|
||||
private lateinit var clearSonosCachePreference: Preference
|
||||
|
||||
private val receiver = object : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
@@ -35,14 +37,14 @@ class PreferencesFragment : PreferenceFragmentCompat() {
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
LocalBroadcastManager
|
||||
.getInstance(context!!)
|
||||
.getInstance(requireContext())
|
||||
.registerReceiver(receiver, IntentFilter(ForegroundService.CHANGE_STATE))
|
||||
updateViewAccordingToServiceState(ForegroundService.state)
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
LocalBroadcastManager
|
||||
.getInstance(context!!)
|
||||
.getInstance(requireContext())
|
||||
.unregisterReceiver(receiver)
|
||||
super.onPause()
|
||||
}
|
||||
@@ -58,6 +60,12 @@ class PreferencesFragment : PreferenceFragmentCompat() {
|
||||
startActivity(Intent(ANDROID_TTS_SETTINGS))
|
||||
true
|
||||
}
|
||||
clearSonosCachePreference = findPreference(PreferenceKey.INVALIDATE_SONOS_CACHE)!!
|
||||
clearSonosCachePreference.setOnPreferenceClickListener {
|
||||
context?.cacheDir?.listFiles() ?. forEach { it.delete() }
|
||||
Toast.makeText(context, getString(R.string.preference_invalidate_sonos_cache_toast), Toast.LENGTH_SHORT).show()
|
||||
true
|
||||
}
|
||||
updateViewAccordingToServiceState(ForegroundService.state)
|
||||
}
|
||||
|
||||
|
||||
@@ -25,8 +25,13 @@
|
||||
<string name="preference_enable_sonos_endpoint_title">Enable /sonos endpoint</string>
|
||||
<string name="preference_tts_summary">Go to platform\'s TTS engine settings and adjust its parameters</string>
|
||||
<string name="preference_tts_title">TTS engine settings</string>
|
||||
<string name="preference_invalidate_sonos_cache_summary">Clear application cache directory from already generated Sonos TTS data for given sentences. You typically want to do it when you change the TTS engine\'s voice settings.</string>
|
||||
<string name="preference_invalidate_sonos_cache_title">Invalidate Sonos cache</string>
|
||||
<string name="preference_category_tts">TTS engine</string>
|
||||
<string name="preference_category_server">Server</string>
|
||||
<string name="preference_category_sonos">Sonos</string>
|
||||
<string name="preference_invalidate_sonos_cache_toast">Sonos cache has been invalidated</string>
|
||||
|
||||
<string name="menu_settings">Settings</string>
|
||||
<string name="menu_help">Help</string>
|
||||
</resources>
|
||||
|
||||
@@ -41,5 +41,13 @@
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/preference_category_sonos" app:iconSpaceReserved="false">
|
||||
<Preference
|
||||
android:key="preference_invalidate_sonos_cache"
|
||||
android:summary="@string/preference_invalidate_sonos_cache_summary"
|
||||
app:title="@string/preference_invalidate_sonos_cache_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
</androidx.preference.PreferenceScreen>
|
||||
Reference in New Issue
Block a user