From e5c00b4cc946f40e59b946d378d5de10675122a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Fri, 15 May 2020 19:30:26 +0200 Subject: [PATCH] Enable Sonos cache invalidation --- .../io/bartek/ttsserver/preference/Preference.kt | 1 + .../ttsserver/preference/PreferencesFragment.kt | 12 ++++++++++-- app/src/main/res/values/strings.xml | 5 +++++ app/src/main/res/xml/preferences.xml | 8 ++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt b/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt index 50b85d8..f55f07e 100644 --- a/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt +++ b/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt @@ -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" } \ No newline at end of file diff --git a/app/src/main/java/io/bartek/ttsserver/preference/PreferencesFragment.kt b/app/src/main/java/io/bartek/ttsserver/preference/PreferencesFragment.kt index ab6fe7f..b29b39f 100644 --- a/app/src/main/java/io/bartek/ttsserver/preference/PreferencesFragment.kt +++ b/app/src/main/java/io/bartek/ttsserver/preference/PreferencesFragment.kt @@ -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) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8b83820..908dbf4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -25,8 +25,13 @@ Enable /sonos endpoint Go to platform\'s TTS engine settings and adjust its parameters TTS engine settings + 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. + Invalidate Sonos cache TTS engine Server + Sonos + Sonos cache has been invalidated + Settings Help diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 5ed76fd..e951f3f 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -41,5 +41,13 @@ app:iconSpaceReserved="false" /> + + + + \ No newline at end of file