@@ -147,6 +147,10 @@ class MediaInputSource {
147
147
class TvChannel {
148
148
Values tvChannel ;
149
149
Values tvChannelName ;
150
+
151
+ public String getChannelNum () {
152
+ return Optional .ofNullable (tvChannel ).map (a -> a .value ).orElse ("" );
153
+ }
150
154
}
151
155
152
156
class Values {
@@ -246,8 +250,7 @@ public int getInputSourceId() {
246
250
}
247
251
248
252
public Number getTvChannel () {
249
- return Optional .ofNullable (tvChannel ).map (a -> a .tvChannel ).map (a -> a .value ).filter (i -> !i .isBlank ())
250
- .map (j -> parseTVChannel (j )).orElse (-1f );
253
+ return Optional .ofNullable (tvChannel ).map (a -> a .getChannelNum ()).map (j -> parseTVChannel (j )).orElse (-1f );
251
254
}
252
255
253
256
public String getTvChannelName () {
@@ -456,10 +459,9 @@ public int getInputSourceId() {
456
459
457
460
public Number getTvChannel () {
458
461
if (getCapabilityAttribute ("tvChannel" , "tvChannel" )) {
459
- return Optional .ofNullable (deviceEvent ).map (a -> a .getValue ()).filter (i -> !i .isBlank ())
460
- .map (j -> parseTVChannel (j )).orElse (-1f );
462
+ return Optional .ofNullable (deviceEvent ).map (a -> a .getValue ()).map (j -> parseTVChannel (j )).orElse (-1f );
461
463
}
462
- return -1 ;
464
+ return -1f ;
463
465
}
464
466
465
467
public String getTvChannelName () {
@@ -470,15 +472,14 @@ public String getTvChannelName() {
470
472
}
471
473
}
472
474
473
- public Number parseTVChannel (@ Nullable String channel ) {
475
+ public static Number parseTVChannel (@ Nullable String channel ) {
474
476
try {
475
- return channel != null
476
- ? Float .parseFloat (
477
- channel .replaceAll ("\\ D+" , "." ).replaceFirst ("^\\ D*((\\ d+\\ .\\ d+)|(\\ d+)).*" , "$1" ))
478
- : -1f ;
477
+ return (channel == null || channel .isBlank ()) ? -1f
478
+ : Float .parseFloat (
479
+ channel .replaceAll ("\\ D+" , "." ).replaceFirst ("^\\ D*((\\ d+\\ .\\ d+)|(\\ d+)).*" , "$1" ));
479
480
} catch (NumberFormatException ignore ) {
480
481
}
481
- return -1 ;
482
+ return -1f ;
482
483
}
483
484
484
485
public void updateTV () {
@@ -790,10 +791,12 @@ synchronized void processSSEEvent(Optional<byte[]> bytes) {
790
791
}
791
792
Number tvChannel = d .getTvChannel ();
792
793
if (tvChannel .intValue () != -1 ) {
794
+ logger .trace ("{}: SSE Got TV Channel: {}" , host , tvChannel );
793
795
updateState (CHANNEL , tvChannel );
794
- String tvChannelName = d .getTvChannelName ();
795
- logger .trace ("{}: SSE Got TV Channel Name: {} Channel: {}" , host , tvChannelName ,
796
- tvChannel );
796
+ }
797
+ String tvChannelName = d .getTvChannelName ();
798
+ if (!tvChannelName .isBlank ()) {
799
+ logger .trace ("{}: SSE Got TV Channel Name: {}" , host , tvChannelName );
797
800
updateState (CHANNEL_NAME , tvChannelName );
798
801
}
799
802
String Power = d .getSwitch ();
0 commit comments