sendMediaMessage method

Future<Map> sendMediaMessage(
  1. dynamic message,
  2. String toConversationID,
  3. dynamic conversationType,
  4. dynamic config,
  5. int messageID,
  6. int progressID,
  7. int messageAttachedCallbackID,
)

Implementation

Future<Map<dynamic, dynamic>> sendMediaMessage(
    dynamic message,
    String toConversationID,
    dynamic conversationType,
    dynamic config,
    int messageID,
    int progressID,
    int messageAttachedCallbackID) async {
  Object _message = mapToJSObj(message);

  Object _config = mapToJSObj(config);

  Map notification = {
    'onMessageAttached':
        allowInterop((message, currentFileSize, totalFileSize) {
      ZIMMessageAttachedCallback? callback = ZIMCommonData
          .zimMessageAttachedCallbackMap[messageAttachedCallbackID];

      if (callback != null) {
        callback(ZIMConverter.oZIMMessage(jsObjectToMap(message)));
      }
    }),
    'onMediaUploadingProgress':
        allowInterop((message, currentFileSize, totalFileSize) {
      ZIMMediaUploadingProgress? progress =
          ZIMCommonData.mediaUploadingProgressMap[progressID];

      if (progress != null) {
        progress(
            ZIMConverter.oZIMMessage(jsObjectToMap(message))
                as ZIMMediaMessage,
            currentFileSize,
            totalFileSize);
      }
    })
  };

  final result = await promiseToFuture(ZIM.getInstance()!.sendMediaMessage(
          _message,
          toConversationID,
          conversationType,
          _config,
          mapToJSObj(notification)))
      .catchError(handleError);

  return jsObjectToMap(result);
}