@@ -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,14 +472,14 @@ public String getTvChannelName() {
470
472
}
471
473
}
472
474
473
- public Number parseTVChannel (String channel ) {
475
+ public static Number parseTVChannel (String channel ) {
474
476
try {
475
- return Optional . ofNullable (channel )
476
- . map ( a -> a . replaceAll ( " \\ D+" , "." ). replaceFirst ( "^ \\ D*(( \\ d+ \\ . \\ d+)|( \\ d+)).*" , "$1" ))
477
- . map ( Float :: parseFloat ). orElse (- 1f );
477
+ return (channel == null || channel . isBlank ()) ? - 1f
478
+ : Float . parseFloat (
479
+ channel . replaceAll ( " \\ D+" , "." ). replaceFirst ( "^ \\ D*(( \\ d+ \\ . \\ d+)|( \\ d+)).*" , "$1" ) );
478
480
} catch (NumberFormatException ignore ) {
479
481
}
480
- return -1 ;
482
+ return -1f ;
481
483
}
482
484
483
485
public void updateTV () {
@@ -789,8 +791,11 @@ synchronized void processSSEEvent(Optional<byte[]> bytes) {
789
791
}
790
792
Number tvChannel = d .getTvChannel ();
791
793
if (tvChannel .intValue () != -1 ) {
794
+ logger .trace ("{}: SSE Got TV Channel: {}" , host , tvChannel );
792
795
updateState (CHANNEL , tvChannel );
793
- String tvChannelName = d .getTvChannelName ();
796
+ }
797
+ String tvChannelName = d .getTvChannelName ();
798
+ if (!tvChannelName .isBlank ()) {
794
799
logger .trace ("{}: SSE Got TV Channel Name: {} Channel: {}" , host , tvChannelName ,
795
800
tvChannel );
796
801
updateState (CHANNEL_NAME , tvChannelName );
0 commit comments