notificationHandler static method
void
notificationHandler(
- String notiJson
)
Implementation
static void notificationHandler(String notiJson) {
if (kDebugMode) print("Notified $notiJson");
final Map notification = jsonDecode(notiJson);
final data = notification["data"];
final bool inPreview = notification["inPreview"] ?? false;
switch (notification["type"]) {
case "JOINED":
_meetingStreamController.sink.add({
"event_name": "on_join_room",
"data": {"room": data}
});
break;
case "ROOM_UPDATED":
{
final args = {"event_name": "on_room_update", "data": data};
_meetingStreamController.sink.add(args);
if (inPreview) {
_previewStreamController.sink.add(args);
}
break;
}
case 'HMS_STAT':
{
_rtcStreamController.sink
.add({"event_name": notification["event"], "data": data});
break;
}
case "PEER_LIST":
//print('$data are the peers in the room'); // received right after join
break;
case "NEW_MESSAGE":
_meetingStreamController.sink
.add({"event_name": "on_message", "data": data});
break;
case "ERROR":
{
final args = {
"event_name": "on_error",
"data": {"error": data}
};
_meetingStreamController.sink.add(args);
if (inPreview) {
_previewStreamController.sink.add(args);
}
break;
}
case "RECONNECTING":
_meetingStreamController.sink.add({
"event_name": "on_re_connecting",
});
break;
case "RECONNECTED":
_meetingStreamController.sink.add({
"event_name": "on_re_connected",
});
break;
case 'PEER_UPDATE':
{
final args = {
"event_name": "on_peer_update",
"data": {
'peer': data,
'update': notification['update'],
}
};
_meetingStreamController.sink.add(args);
if (inPreview) {
_previewStreamController.sink.add(args);
}
break;
}
case 'TRACK_UPDATE':
_meetingStreamController.sink.add({
"event_name": "on_track_update",
"data": {
'track': data,
'peer': notification['peer'],
'update': notification['update'],
}
});
break;
case "ROOM_ENDED":
_meetingStreamController.sink
.add({"event_name": "on_removed_from_room", "data": data});
break;
case "REMOVED_FROM_ROOM":
_meetingStreamController.sink
.add({"event_name": "on_removed_from_room", "data": data});
break;
case "DEVICE_CHANGE_UPDATE":
//print('device changed - $data');
break;
default:
break;
}
}