]> git.basschouten.com Git - openhab-addons.git/commitdiff
Allow default sound parameter value (#12309)
authorChristoph Weitkamp <github@christophweitkamp.de>
Thu, 17 Feb 2022 22:03:31 +0000 (23:03 +0100)
committerGitHub <noreply@github.com>
Thu, 17 Feb 2022 22:03:31 +0000 (23:03 +0100)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
bundles/org.openhab.binding.pushover/src/main/java/org/openhab/binding/pushover/internal/config/PushoverAccountConfiguration.java
bundles/org.openhab.binding.pushover/src/main/java/org/openhab/binding/pushover/internal/connection/PushoverAPIConnection.java

index 721e45cf2e0285660e64d8abb42d84c3a3c3ecc0..9f059494192be9ba3d8ae841a438247c8b34766d 100644 (file)
@@ -27,6 +27,7 @@ import org.openhab.binding.pushover.internal.dto.Sound;
  */
 @NonNullByDefault
 public class PushoverAccountConfiguration {
+    public static final Sound SOUND_DEFAULT = new Sound("default", "Default");
     public static final List<Sound> DEFAULT_SOUNDS = List.of(new Sound("alien", "Alien Alarm (long)"),
             new Sound("bike", "Bike"), new Sound("bugle", "Bugle"), new Sound("cashregister", "Cash Register"),
             new Sound("classical", "Classical"), new Sound("climb", "Climb (long)"), new Sound("cosmic", "Cosmic"),
@@ -36,7 +37,7 @@ public class PushoverAccountConfiguration {
             new Sound("persistent", "Persistent (long)"), new Sound("pianobar", "Piano Bar"),
             new Sound("pushover", "Pushover (default)"), new Sound("echo", "Pushover Echo (long)"),
             new Sound("siren", "Siren"), new Sound("spacealarm", "Space Alarm"), new Sound("tugboat", "Tug Boat"),
-            new Sound("updown", "Up Down (long)"), new Sound("vibrate", "Vibrate Only"));
+            new Sound("updown", "Up Down (long)"), new Sound("vibrate", "Vibrate Only"), SOUND_DEFAULT);
 
     public @Nullable String apikey;
     public @Nullable String user;
index 2c9d756381a5de7fdcfdb0533f21d96f6e61062e..7ba8676f3f9e2b1bb4b7cacf52ff9fdbfb161473 100644 (file)
@@ -109,12 +109,14 @@ public class PushoverAPIConnection {
             final String content = get(
                     buildURL(SOUNDS_URL, Map.of(PushoverMessageBuilder.MESSAGE_KEY_TOKEN, localApikey)));
             final JsonObject json = JsonParser.parseString(content).getAsJsonObject();
-            final JsonObject sounds = json.has(JSON_VALUE_SOUNDS) ? json.get(JSON_VALUE_SOUNDS).getAsJsonObject()
+            final JsonObject jsonSounds = json.has(JSON_VALUE_SOUNDS) ? json.get(JSON_VALUE_SOUNDS).getAsJsonObject()
                     : null;
-            if (sounds != null) {
-                return sounds.entrySet().stream()
+            if (jsonSounds != null) {
+                List<Sound> sounds = jsonSounds.entrySet().stream()
                         .map(entry -> new Sound(entry.getKey(), entry.getValue().getAsString()))
-                        .collect(Collectors.toUnmodifiableList());
+                        .collect(Collectors.toList());
+                sounds.add(PushoverAccountConfiguration.SOUND_DEFAULT);
+                return sounds;
             }
         } catch (JsonSyntaxException e) {
             // do nothing