onInit method
override
Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.
Implementation
@override
void onInit() {
_subscription = _callService.calls.changes.listen((event) async {
Log.debug(
'_callService.calls.changes -> ${event.op}: key(${event.key}), value(${event.value?.value})',
'$runtimeType',
);
switch (event.op) {
case OperationKind.added:
if (event.key == null || event.value == null) {
Log.error(
'_callService.calls.changes -> ${event.op} -> Unreachable situation with `null`s: `${event.key}` or ${event.value}',
'$runtimeType',
);
return;
}
await _handleAddedCall(event.key!, event.value!);
break;
case OperationKind.removed:
if (event.key == null) {
Log.error(
'_callService.calls.changes -> ${event.op} -> Unreachable situation with `null` at: `${event.key}`',
'$runtimeType',
);
return;
}
_handleCallRemoved(event.key!, event.value);
break;
case OperationKind.updated:
// No-op.
break;
}
});
// Account the calls that are already present in the service.
for (var e in _callService.calls.entries) {
_handleAddedCall(e.key, e.value);
}
super.onInit();
}