join method

Future<bool> join()

Implementation

Future<bool> join() async {
  // call after config method
  debugPrint('join meeting');
  bool audioPermissions =
      await methodChannelProvider.requestAudioPermissions();
  bool videoPermissions =
      await methodChannelProvider.requestVideoPermissions();

  // Create error messages for incorrect permissions
  if (!_checkPermissions(audioPermissions, videoPermissions)) {
    return false;
  }

  // Check if device is connected to the internet
  bool deviceIsConnected = await _isConnectedToInternet();
  if (!deviceIsConnected) {
    // Response.not_connected_to_internet
    return false;
  }
  // Send JSON to iOS
  MethodChannelResponse? joinResponse = await methodChannelProvider
      .callMethod(MethodCallOption.join, meetingData.toJson());

  if (joinResponse == null) {
    // Response.null_join_response
    return false;
  }

  if (joinResponse.result) {
    await listAudioDevices();
    await initialAudioSelection();
    await toggleMute(unmute: false);
    return true;
  } else {
    // To do error
    return false;
  }
}