FlutterAndroidAuto constructor

FlutterAndroidAuto()

Implementation

FlutterAndroidAuto() {
  if (defaultTargetPlatform != TargetPlatform.android) return;

  _eventBroadcast = _androidAutoController.eventChannel
      .receiveBroadcastStream()
      .listen((event) async {
    final FAAChannelTypes receivedChannelType = EnumUtils.enumFromString(
      FAAChannelTypes.values,
      event['type'],
    );

    switch (receivedChannelType) {
      case FAAChannelTypes.onAndroidAutoConnectionChange:
        final ConnectionStatusTypes connectionStatus =
            EnumUtils.enumFromString(
          ConnectionStatusTypes.values,
          event['data']['status'],
        );
        _connectionStatus = connectionStatus.name;
        _onAndroidAutoConnectionChange?.call(connectionStatus);
        break;

      case FAAChannelTypes.onListItemSelected:
        await _androidAutoController.processFAAListItemSelectedChannel(
          event['data']['elementId'],
        );
        break;

      case FAAChannelTypes.onListSectionSelected:
        _androidAutoController.processFAAListSectionSelectedChannel(
          event['data']['elementId'],
          event['data']['selectedIndex'],
        );
        break;

      case FAAChannelTypes.onToggleCheckedChange:
        _androidAutoController.processFAAToggleCheckedChangeChannel(
          event['data']['elementId'],
          event['data']['checked'],
        );
        break;

      case FAAChannelTypes.onPaneActionPressed:
        _androidAutoController.processFAAPaneActionPressedChannel(
          event['data']['elementId'],
        );
        break;

      case FAAChannelTypes.onScreenBackButtonPressed:
        FlutterAndroidAutoController.templateHistory.removeWhere(
          (AATemplate item) => item.uniqueId == event['data']['elementId'],
        );
        break;

      case FAAChannelTypes.onAlertActionPressed:
        _androidAutoController.processFAAAlertActionPressed(
          event['data']['elementId'],
        );
        break;

      case FAAChannelTypes.onPresentStateChanged:
        final bool completed = event['data']['completed'] as bool? ?? false;
        _androidAutoController.processFAAPresentStateChanged(
          event['data']['elementId'],
          completed,
        );
        break;

      case FAAChannelTypes.onTabBarItemSelected:
        break;

      case FAAChannelTypes.onGridButtonPressed:
        await _androidAutoController.processFAAGridButtonPressed(
          event['data']['elementId'],
        );
        break;

      default:
        break;
    }
  });
}