init method

  1. @override
Future<void> init({
  1. required int appId,
  2. TIMLogLevel logLevel = TIMLogLevel.off,
})

Implementation

@override
Future<void> init({
  required int appId,
  TIMLogLevel logLevel = TIMLogLevel.off,
}) async {
  Completer completer = Completer();

  V2TimValueCallback<bool> res = await TencentImSDKPlugin.v2TIMManager.initSDK(
    sdkAppID: appId,
    loglevel: logLevel.index,
    listener: V2TimSDKListener(
      onConnecting: () {
        eventStreamController.add(NetworkStatusChangedEvent(networkStatus: TIMNetworkStatus.connecting));
      },
      onConnectSuccess: () {
        eventStreamController.add(NetworkStatusChangedEvent(networkStatus: TIMNetworkStatus.connected));
        completer.complete();
      },
      onConnectFailed: (int code, String message) {
        eventStreamController.add(NetworkStatusChangedEvent(networkStatus: TIMNetworkStatus.connectFailed));
        completer.completeError(ConnectFailException(code, message));
      },
      onKickedOffline: () {
        eventStreamController.add(KickedOfflineEvent());
      },
      onUserSigExpired: () {
        eventStreamController.add(UserSignExpiredEvent());
      },
      onSelfInfoUpdated: (V2TimUserFullInfo info) {},
    ),
  );

  if (!(res.data ?? false)) {
    throw (InitSdkFailException());
  }

  return completer.future;
}