From b325ebcd1c59b16f27ee1ed9a91c93517ba5ee8f Mon Sep 17 00:00:00 2001 From: carl34 Date: Wed, 10 Jun 2020 18:16:24 -0700 Subject: [PATCH] Handling of JSONArray presets, https://github.com/vervallsweg/smartthings/issues/58 --- .../cast-web-device.src/cast-web-device.groovy | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/devicetypes/vervallsweg/cast-web-device.src/cast-web-device.groovy b/devicetypes/vervallsweg/cast-web-device.src/cast-web-device.groovy index b823508..b5dad44 100644 --- a/devicetypes/vervallsweg/cast-web-device.src/cast-web-device.groovy +++ b/devicetypes/vervallsweg/cast-web-device.src/cast-web-device.groovy @@ -349,7 +349,7 @@ def getPresetObject(number) { def defaultMediaTitle = "Preset "+number logger('debug', "Executing 'playPreset': "+number+", key: "+key+", defaultMediaTitle: "+defaultMediaTitle) JSONObject presets = new JSONObject( getDataValue("presetObject") ) - if(presets.get(key).mediaTitle) { + if(presets.get(key).is(org.json.JSONObject) && presets.get(key).mediaTitle) { logger('debug', "getPresetObject() is old preset object") presets[key].put( "mediaSubtitle", (presets[key]["mediaSubtitle"]+" - Preset "+number) ) @@ -361,10 +361,11 @@ def getPresetObject(number) { presets.put(key, newP); } else { logger('debug', "getPresetObject() is new preset object") - presets[key].each { - it.put( "mediaSubtitle", (it["mediaSubtitle"]+" - Preset "+number) ) + def last = presets[key].length() - 1 + for(int i in 0..last) { + presets[key].get(i).put( "mediaSubtitle", (presets[key].get(i)["mediaSubtitle"]+" - Preset "+number) ) } - if( presets.get(key)[0].mediaTitle.equals(defaultMediaTitle) ) { + if( presets.get(key).get(0).mediaTitle.equals(defaultMediaTitle) ) { logger('debug', "'getPresetObject' key: "+key+", is default!") return null }