37
37
*/
38
38
@ NonNullByDefault
39
39
public class EventChannelHelper extends ChannelHelper {
40
- private boolean isLocal ;
41
- private @ Nullable String vpnUrl , localUrl ;
40
+ private @ Nullable String vpnUrl ;
41
+ private @ Nullable String localUrl ;
42
42
protected ModuleType moduleType = ModuleType .UNKNOWN ;
43
43
44
44
public EventChannelHelper (Set <String > providedGroups ) {
@@ -49,61 +49,53 @@ public void setModuleType(ModuleType moduleType) {
49
49
this .moduleType = moduleType ;
50
50
}
51
51
52
- public void setUrls (String vpnUrl , @ Nullable String localUrl ) {
52
+ public void setUrls (@ Nullable String vpnUrl , @ Nullable String localUrl ) {
53
53
this .localUrl = localUrl ;
54
54
this .vpnUrl = vpnUrl ;
55
- this .isLocal = localUrl != null ;
56
55
}
57
56
58
57
@ Override
59
58
public void setNewData (@ Nullable NAObject data ) {
60
- if (data instanceof Event event ) {
61
- if (!event .getEventType ().validFor (moduleType )) {
62
- return ;
63
- }
59
+ if (data instanceof Event event && !event .getEventType ().validFor (moduleType )) {
60
+ return ;
64
61
}
65
62
super .setNewData (data );
66
63
}
67
64
68
65
@ Override
69
66
protected @ Nullable State internalGetEvent (String channelId , Event event ) {
70
- switch (channelId ) {
71
- case CHANNEL_EVENT_TYPE :
72
- return toStringType (event .getEventType ());
73
- case CHANNEL_EVENT_MESSAGE :
74
- return toStringType (event .getName ());
75
- case CHANNEL_EVENT_TIME :
76
- return new DateTimeType (event .getTime ());
77
- case CHANNEL_EVENT_PERSON_ID :
78
- return toStringType (event .getPersonId ());
79
- case CHANNEL_EVENT_CAMERA_ID :
80
- return toStringType (event .getCameraId ());
81
- case CHANNEL_EVENT_SUBTYPE :
82
- return event .getSubTypeDescription ().map (ChannelTypeUtils ::toStringType ).orElse (UnDefType .NULL );
83
- case CHANNEL_EVENT_SNAPSHOT :
84
- return toRawType (event .getSnapshotUrl ());
85
- case CHANNEL_EVENT_SNAPSHOT_URL :
86
- return toStringType (event .getSnapshotUrl ());
87
- }
88
- return null ;
67
+ return switch (channelId ) {
68
+ case CHANNEL_EVENT_TYPE -> toStringType (event .getEventType ());
69
+ case CHANNEL_EVENT_MESSAGE -> toStringType (event .getName ());
70
+ case CHANNEL_EVENT_TIME -> new DateTimeType (event .getTime ());
71
+ case CHANNEL_EVENT_PERSON_ID -> toStringType (event .getPersonId ());
72
+ case CHANNEL_EVENT_CAMERA_ID -> toStringType (event .getCameraId ());
73
+ case CHANNEL_EVENT_SUBTYPE ->
74
+ event .getSubTypeDescription ().map (ChannelTypeUtils ::toStringType ).orElse (UnDefType .NULL );
75
+ case CHANNEL_EVENT_SNAPSHOT -> toRawType (event .getSnapshotUrl ());
76
+ case CHANNEL_EVENT_SNAPSHOT_URL -> toStringType (event .getSnapshotUrl ());
77
+ default -> null ;
78
+ };
89
79
}
90
80
91
81
@ Override
92
82
protected @ Nullable State internalGetHomeEvent (String channelId , @ Nullable String groupId , HomeEvent event ) {
93
- switch (channelId ) {
94
- case CHANNEL_EVENT_VIDEO_STATUS :
95
- return event .getVideoId () != null ? toStringType (event .getVideoStatus ()) : UnDefType .NULL ;
96
- case CHANNEL_EVENT_VIDEO_LOCAL_URL :
97
- return getStreamURL (true , event .getVideoId (), event .getVideoStatus ());
98
- case CHANNEL_EVENT_VIDEO_VPN_URL :
99
- return getStreamURL (false , event .getVideoId (), event .getVideoStatus ());
100
- }
101
- return null ;
83
+ return switch (channelId ) {
84
+ case CHANNEL_EVENT_VIDEO_STATUS ->
85
+ event .getVideoId () != null ? toStringType (event .getVideoStatus ()) : UnDefType .NULL ;
86
+ case CHANNEL_EVENT_VIDEO_LOCAL_URL -> getStreamURL (true , event .getVideoId (), event .getVideoStatus ());
87
+ case CHANNEL_EVENT_VIDEO_VPN_URL -> getStreamURL (false , event .getVideoId (), event .getVideoStatus ());
88
+ default -> null ;
89
+ };
90
+ }
91
+
92
+ private @ Nullable String getUrl (boolean local ) {
93
+ return local ? localUrl : vpnUrl ;
102
94
}
103
95
104
96
private State getStreamURL (boolean local , @ Nullable String videoId , VideoStatus videoStatus ) {
105
- String url = local ? localUrl : vpnUrl ;
106
- if (( local && ! isLocal ) || url == null || videoId == null || videoStatus != VideoStatus .AVAILABLE ) {
97
+ String url = getUrl ( local ) ;
98
+ if (url == null || videoId == null || videoStatus != VideoStatus .AVAILABLE ) {
107
99
return UnDefType .NULL ;
108
100
}
109
101
return toStringType ("%s/vod/%s/index.m3u8" , url , videoId );
0 commit comments