FlutterCarplay constructor
FlutterCarplay()
Creates an FlutterCarplay and starts the connection.
Implementation
FlutterCarplay() {
if (defaultTargetPlatform != TargetPlatform.iOS) return;
_eventBroadcast = _carPlayController.eventChannel
.receiveBroadcastStream()
.listen((event) {
final FCPChannelTypes receivedChannelType =
EnumUtils.enumFromString(FCPChannelTypes.values, event['type']);
switch (receivedChannelType) {
case FCPChannelTypes.onCarplayConnectionChange:
final ConnectionStatusTypes connectionStatus =
EnumUtils.enumFromString(
ConnectionStatusTypes.values,
event['data']['status'],
);
_connectionStatus = connectionStatus.name;
if (_onCarplayConnectionChange != null) {
_onCarplayConnectionChange!(connectionStatus);
}
break;
case FCPChannelTypes.onFCPListItemSelected:
_carPlayController.processFCPListItemSelectedChannel(
event['data']['elementId'],
);
break;
case FCPChannelTypes.onFCPListImageRowItemSelected:
_carPlayController.processFCPListImageRowItemSelectedChannel(
event['data']['elementId'],
);
break;
case FCPChannelTypes.onFCPListImageRowItemElementSelected:
_carPlayController.processFCPListImageRowItemElementSelectedChannel(
event['data']['elementId'],
event['data']['index'],
);
break;
case FCPChannelTypes.onFCPAlertActionPressed:
_carPlayController.processFCPAlertActionPressed(
event['data']['elementId'],
);
break;
case FCPChannelTypes.onPresentStateChanged:
_carPlayController.processFCPAlertTemplateCompleted(
event['data']['completed'],
);
break;
case FCPChannelTypes.onGridButtonPressed:
_carPlayController.processFCPGridButtonPressed(
event['data']['elementId'],
);
break;
case FCPChannelTypes.onBarButtonPressed:
_carPlayController.processFCPBarButtonPressed(
event['data']['elementId'],
);
break;
case FCPChannelTypes.onTextButtonPressed:
_carPlayController.processFCPTextButtonPressed(
event['data']['elementId'],
);
break;
case FCPChannelTypes.onScreenBackButtonPressed:
FlutterCarPlayController.templateHistory.removeWhere(
(CPTemplate item) => item.uniqueId == event['data']['elementId'],
);
break;
default:
break;
}
});
}