Enable Sonos cache invalidation

This commit is contained in:
2020-05-15 19:30:26 +02:00
parent 5f6418ca5b
commit e5c00b4cc9
4 changed files with 24 additions and 2 deletions

View File

@@ -7,4 +7,5 @@ object PreferenceKey {
const val ENABLE_WAVE_ENDPOINT = "preference_enable_wave_endpoint" const val ENABLE_WAVE_ENDPOINT = "preference_enable_wave_endpoint"
const val ENABLE_SONOS_ENDPOINT = "preference_enable_sonos_endpoint" const val ENABLE_SONOS_ENDPOINT = "preference_enable_sonos_endpoint"
const val TTS = "preference_tts" const val TTS = "preference_tts"
const val INVALIDATE_SONOS_CACHE = "preference_invalidate_sonos_cache"
} }

View File

@@ -6,6 +6,7 @@ import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.os.Bundle import android.os.Bundle
import android.text.InputType import android.text.InputType
import android.widget.Toast
import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
@@ -19,6 +20,7 @@ class PreferencesFragment : PreferenceFragmentCompat() {
private lateinit var sayEndpointPreference: SwitchPreference private lateinit var sayEndpointPreference: SwitchPreference
private lateinit var waveEndpointPreference: SwitchPreference private lateinit var waveEndpointPreference: SwitchPreference
private lateinit var ttsEnginePreference: Preference private lateinit var ttsEnginePreference: Preference
private lateinit var clearSonosCachePreference: Preference
private val receiver = object : BroadcastReceiver() { private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
@@ -35,14 +37,14 @@ class PreferencesFragment : PreferenceFragmentCompat() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
LocalBroadcastManager LocalBroadcastManager
.getInstance(context!!) .getInstance(requireContext())
.registerReceiver(receiver, IntentFilter(ForegroundService.CHANGE_STATE)) .registerReceiver(receiver, IntentFilter(ForegroundService.CHANGE_STATE))
updateViewAccordingToServiceState(ForegroundService.state) updateViewAccordingToServiceState(ForegroundService.state)
} }
override fun onPause() { override fun onPause() {
LocalBroadcastManager LocalBroadcastManager
.getInstance(context!!) .getInstance(requireContext())
.unregisterReceiver(receiver) .unregisterReceiver(receiver)
super.onPause() super.onPause()
} }
@@ -58,6 +60,12 @@ class PreferencesFragment : PreferenceFragmentCompat() {
startActivity(Intent(ANDROID_TTS_SETTINGS)) startActivity(Intent(ANDROID_TTS_SETTINGS))
true 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) updateViewAccordingToServiceState(ForegroundService.state)
} }

View File

@@ -25,8 +25,13 @@
<string name="preference_enable_sonos_endpoint_title">Enable /sonos endpoint</string> <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_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_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_tts">TTS engine</string>
<string name="preference_category_server">Server</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_settings">Settings</string>
<string name="menu_help">Help</string> <string name="menu_help">Help</string>
</resources> </resources>

View File

@@ -41,5 +41,13 @@
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
</PreferenceCategory> </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> </androidx.preference.PreferenceScreen>