startSession static method

  1. @Deprecated('Use joinSession(callToken: token, sessionSettings: settings, ...) instead')
void startSession(
  1. String callToken,
  2. CallSettings callSettings, {
  3. required dynamic onSuccess(
    1. Widget?
    ),
  4. required dynamic onError(
    1. CometChatCallsException
    ),
})

Starts a call session using the v4 API signature.

@deprecated Use joinSession with the callToken parameter instead.

Converts callSettings to SessionSettings via CallSettings.toSessionSettings, creates a CallToken from the callToken string, and delegates to joinSession. If callSettings.listener is non-null, a V4EventListenerAdapter is created and registered on CallSession.getInstance() for all 4 listener types.

Requirements: 3.1, 3.2, 3.3

Implementation

@Deprecated(
    'Use joinSession(callToken: token, sessionSettings: settings, ...) instead')
// ignore: deprecated_member_use_from_same_package
static void startSession(
  String callToken,
  // ignore: deprecated_member_use_from_same_package
  CallSettings callSettings, {
  required Function(Widget?) onSuccess,
  required Function(CometChatCallsException) onError,
}) {
  try {
    // Convert CallSettings → SessionSettings
    // ignore: deprecated_member_use_from_same_package
    final sessionSettings = callSettings.toSessionSettings();

    // Create a CallToken from the token string
    final token = CallToken(token: callToken);

    // ignore: deprecated_member_use_from_same_package
    final v4Listener = callSettings.listener;

    // Delegate to v5 joinSession, then register the adapter AFTER
    // the session is created so CallSession.getInstance() is non-null.
    joinSession(
      callToken: token,
      sessionSettings: sessionSettings,
      onSuccess: (Widget? widget) {
        // Register the v4 listener adapter now that the session exists
        if (v4Listener != null) {
          final adapter = V4EventListenerAdapter(v4Listener);
          final session = CallSession.getInstance();
          if (session != null) {
            session.addSessionStatusListener(adapter);
            session.addParticipantEventListener(adapter);
            session.addMediaEventsListener(adapter);
            session.addButtonClickListener(adapter);
          }
        }
        onSuccess(widget);
      },
      onError: onError,
    );
  } catch (e) {
    onError(CometChatCallsException.wrapUnhandled(e));
  }
}