From 11304322888be38065ec2741e1dcbf9dcc43a660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Thu, 14 May 2020 21:26:08 +0200 Subject: [PATCH] Add preference for /sonos endpoint --- .../java/io/bartek/ttsserver/preference/Preference.kt | 1 + app/src/main/java/io/bartek/ttsserver/web/WebServer.kt | 8 ++++++++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/preferences.xml | 7 +++++++ 4 files changed, 18 insertions(+) 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 a555d00..50b85d8 100644 --- a/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt +++ b/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt @@ -5,5 +5,6 @@ object PreferenceKey { const val PORT = "preference_port" const val ENABLE_SAY_ENDPOINT = "preference_enable_say_endpoint" const val ENABLE_WAVE_ENDPOINT = "preference_enable_wave_endpoint" + const val ENABLE_SONOS_ENDPOINT = "preference_enable_sonos_endpoint" const val TTS = "preference_tts" } \ No newline at end of file diff --git a/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt b/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt index 3456d96..e56391b 100644 --- a/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt +++ b/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt @@ -92,6 +92,10 @@ class WebServer(port: Int, private val context: Context) : NanoHTTPD(port), } private fun sonos(session: IHTTPSession): Response { + if (!preferences.getBoolean(PreferenceKey.ENABLE_SONOS_ENDPOINT, true)) { + throw ResponseException(NOT_FOUND, "") + } + if (session.method != Method.POST) { throw ResponseException(METHOD_NOT_ALLOWED, "") } @@ -108,6 +112,10 @@ class WebServer(port: Int, private val context: Context) : NanoHTTPD(port), } private fun sonosCache(session: IHTTPSession): Response { + if (!preferences.getBoolean(PreferenceKey.ENABLE_SONOS_ENDPOINT, true)) { + throw ResponseException(NOT_FOUND, "") + } + if (session.method != Method.GET) { throw ResponseException(METHOD_NOT_ALLOWED, "") } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9b9916f..8b83820 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,6 +21,8 @@ Enable /say endpoint Allow HTTP clients to use /wave endpoint which enables them to retrieve TTS message as wave file Enable /wave endpoint + Allow HTTP clients to use /sonos endpoint which enables them to send TTS messages directly to Sonos devices + Enable /sonos endpoint Go to platform\'s TTS engine settings and adjust its parameters TTS engine settings TTS engine diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 90bae26..5ed76fd 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -24,6 +24,13 @@ android:title="@string/preference_enable_wave_endpoint_title" app:iconSpaceReserved="false" /> + +