removeAdvancedMsgListener method

  1. @override
Future<void> removeAdvancedMsgListener({
  1. V2TimAdvancedMsgListener? listener,
  2. String? uuid,
})
override

移除高级消息监听器

Implementation

@override

/// 移除高级消息监听器
///
Future<void> removeAdvancedMsgListener({
  V2TimAdvancedMsgListener? listener,
  String? uuid,
}) async {
  return await Future.delayed(const Duration(seconds: 1), () async {
    if (uuid != null) {
      advancedMsgListenerList.remove(uuid);
      return await _channel.invokeMethod(
        "removeAdvancedMsgListener",
        buildMessageMangerParam(
          {
            "listenerUuid": uuid,
          },
        ),
      );
    }
    if (listener == null && uuid == null) {
      advancedMsgListenerList.clear();
      return await _channel.invokeMethod(
        "removeAdvancedMsgListener",
        buildMessageMangerParam(
          {
            "listenerUuid": "",
          },
        ),
      );
    }

    if (listener != null) {
      var listenerUuid = "";
      listenerUuid = advancedMsgListenerList.keys.firstWhere((k) => advancedMsgListenerList[k] == listener, orElse: () => "");
      if (listenerUuid.isNotEmpty) {
        advancedMsgListenerList.remove(listenerUuid);
        _channel.invokeMethod("removeAdvancedMsgListener", buildMessageMangerParam({"listenerUuid": listenerUuid}));
      } else {
        return;
      }
    } else {
      advancedMsgListenerList.clear();
      return await _channel.invokeMethod(
        "removeAdvancedMsgListener",
        buildMessageMangerParam(
          {
            "listenerUuid": "",
          },
        ),
      );
    }
  });

}