Implementation
Future<void> oFMtqQUOrKgMPAYV(String event, Map<String, dynamic> data) async {
await dOywkRvhatFOEfPE.synchronized(() async {
var _lock_message = new Lock();
Future<void> EUPaGdpuWEjWZFHr(YIMMessage message, bool isNewMessage, {void Function(bool isSuccess)? callback}) async {
await _lock_message.synchronized(() async {
if (message.id == ImQpGYfnYhSmhKxx) return;
ImQpGYfnYhSmhKxx = message.id;
switch (message.conversationType) {
case YIMEnum_ConversationType.P2P:
final count = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.jkvZnZIvvDSnHWwS(
_YIMTableName.Message,
filter: Filter.equals("id", message.id),
);
if (count == null) {
callback?.call(false);
return;
}
if (count > 0) {
callback?.call(false);
return;
}
final isSuccess_insert = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.NiaHHNqDHRPpcqed(
_YIMTableName.Message,
data: _YIMTable_Message(message: message),
);
if (!isSuccess_insert) {
callback?.call(false);
return;
}
final isSuccess_updateLastMessage = await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(
message.conversationType,
message.from == ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO ? message.to : message.from,
unRead: (message.from != ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO && message.messageState == YIMEnum_MessageState.Success_UnRead) ? _YIMEnum_ConversatypeUnRead.Plus : _YIMEnum_ConversatypeUnRead.Nothing,
);
if (!isSuccess_updateLastMessage) {
callback?.call(false);
return;
}
if (isNewMessage)
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.gQTdyVpBttLdgYzF?.call([message]);
});
else
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.eldbbzSlquDUExeM?.call([message]);
});
callback?.call(true);
break;
case YIMEnum_ConversationType.Team:
final count = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.jkvZnZIvvDSnHWwS(
_YIMTableName.Message,
filter: Filter.equals("id", message.id),
);
if (count == null) {
callback?.call(false);
return;
}
if (count > 0) {
callback?.call(false);
return;
}
final isSuccess_insert = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.NiaHHNqDHRPpcqed(
_YIMTableName.Message,
data: _YIMTable_Message(message: message),
);
if (!isSuccess_insert) {
callback?.call(false);
return;
}
final isSuccess_updateLastMessage = await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(
message.conversationType,
message.to,
unRead: (message.from != ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO) ? _YIMEnum_ConversatypeUnRead.Plus : _YIMEnum_ConversatypeUnRead.Nothing,
);
if (!isSuccess_updateLastMessage) {
callback?.call(false);
return;
}
if (isNewMessage)
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.gQTdyVpBttLdgYzF?.call([message]);
});
else
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.eldbbzSlquDUExeM?.call([message]);
});
callback?.call(true);
break;
default:
break;
}
});
}
switch (event) {
case "loginFailed":
tzENBpVGblQVMmwE(data["msg"].toString());
break;
case "loginSuccess":
if (nGnihtTnqBUqrEDc) return;
nGnihtTnqBUqrEDc = true;
AmmccRTBAKSYRttO?.cancel();
AmmccRTBAKSYRttO = null;
UFAzqOkGabwvyZYy?.cancel();
UFAzqOkGabwvyZYy = null;
AmmccRTBAKSYRttO = Timer.periodic(Duration(seconds: 5), (timer) {
if (!OvtmToJxJungsSYZ.csuUedvgDStbzLNY.PscxCSwHobBJanUn(needCheckConnect: true) || NpoGiDlujxAxYGaG == null) {
if (!lSgMBKzHIMXrzwca) {
lSgMBKzHIMXrzwca = true;
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.gDIRLGyouXilUtPk?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnecting, msg: "Reconnecting"));
});
nUXRFFyGtBJQekax(true);
Future.delayed(Duration(seconds: 1), () {
ofxhFxzBVhnOUFUL(true);
Future.delayed(Duration(seconds: 5), () {
if (lSgMBKzHIMXrzwca) {
lSgMBKzHIMXrzwca = false;
nUXRFFyGtBJQekax(true);
}
});
});
}
} else {
if (lSgMBKzHIMXrzwca) {
lSgMBKzHIMXrzwca = false;
fPuRzDqFSuoTlKkS();
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.gDIRLGyouXilUtPk?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnected, msg: "Reconnected"));
});
}
// ikkMDRSazNrwMPHX.DaZbfaaNrPMLDyED.DMeWPljAqpqlapTz("refreshOnline");
}
});
//同步云端会话
DMeWPljAqpqlapTz("queryConversations", ack: (isSuccess, results, code, msg) {
if (isSuccess) {
List<Map<String, dynamic>> conversations_server = (results?["conversations"] as List<dynamic>).map((m) => m as Map<String, dynamic>).toList();
if (conversations_server.isEmpty) return;
OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.oaZoaCpqHHEClCMM(
callback: (conversations) {
//过滤本地已经存在的云端会话
conversations?.forEach((conversation) {
switch (conversation.lastMessage.conversationType) {
case YIMEnum_ConversationType.P2P:
final conversationID = conversation.lastMessage.from == ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO ? conversation.lastMessage.to : conversation.lastMessage.from;
for (var i = conversations_server.length - 1; i >= 0; i--) {
if (conversations_server[i]["conversationID"] == conversationID) conversations_server.removeAt(i);
}
break;
case YIMEnum_ConversationType.Team:
final conversationID = conversation.lastMessage.to;
for (var i = conversations_server.length - 1; i >= 0; i--) {
if (conversations_server[i]["conversationID"] == conversationID) conversations_server.removeAt(i);
}
break;
default:
break;
}
});
//将本地没有的云端会话,把消息同步下来
for (final conversation in conversations_server.reversed) {
OvtmToJxJungsSYZ.TGOVPGaiUaEyiIOK.UFhdpCyZGKOKVfNB(
conversationType: YIMEnum_ConversationType.from(conversation["conversationType"].toString()),
conversationID: conversation["conversationID"].toString(),
limit: ikkMDRSazNrwMPHX.BCuDevRBXDCEqsDh.sJqQruXaVGpfImlw,
callback: (isSuccess, messages) async {
if (isSuccess) {
for (var i = 0; i < messages!.length; i++) {
await EUPaGdpuWEjWZFHr(messages[i], false, callback: (isSuccess) async {
if (!isSuccess) return;
Filter? filter;
switch (YIMEnum_ConversationType.from(conversation["conversationType"].toString())) {
case YIMEnum_ConversationType.P2P:
filter = Filter.and([
Filter.or([
Filter.and([Filter.equals("lastMessage.from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.to", conversation["conversationID"])]),
Filter.and([Filter.equals("lastMessage.to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.from", conversation["conversationID"])]),
]),
Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
]);
break;
case YIMEnum_ConversationType.Team:
filter = Filter.and([
Filter.equals("lastMessage.to", conversation["conversationID"]),
Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
]);
break;
case YIMEnum_ConversationType.ChatRoom:
break;
default:
break;
}
final isSuccess_updateOne = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.KZuXhZonFPBRPmsK<_YIMTable_Conversation>(
_YIMTableName.Conversation,
(oldData) => oldData!..unRead = int.parse(conversation["unReadCount"].toString()),
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(filter: filter),
);
if (!isSuccess_updateOne) return;
if (i >= messages.length - 1) {
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
});
Filter? filter_conversation;
switch (YIMEnum_ConversationType.from(conversation["conversationType"].toString())) {
case YIMEnum_ConversationType.P2P:
filter_conversation = Filter.and([
Filter.or([
Filter.and([Filter.equals("lastMessage.from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.to", conversation["conversationID"])]),
Filter.and([Filter.equals("lastMessage.to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.from", conversation["conversationID"])]),
]),
Filter.equals("lastMessage.conversationType", conversation["conversationType"]),
]);
break;
case YIMEnum_ConversationType.Team:
filter_conversation = Filter.and([
Filter.equals("lastMessage.to", conversation["conversationID"]),
Filter.equals("lastMessage.conversationType", conversation["conversationType"]),
]);
break;
}
final needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
_YIMTableName.Conversation,
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(filter: filter_conversation),
);
if (needUpdateConversations == null) {
return;
}
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.BOcvwyFExikPxjUj?.call(needUpdateConversations.map((e) => YIMConversation(conversation: e)).toList());
});
}
});
}
}
},
);
}
},
);
}
});
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
RYqSPMuNbwRLjCkh?.call(YIMResult<YIMEnum_LoginResult>(code: YIMEnum_LoginResult.Success, msg: "success"));
});
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
RYqSPMuNbwRLjCkh = null;
});
//将历史的发送中消息,置为失败状态
await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.qnoGdWQYqooeXorc(
_YIMTableName.Message,
() {
return {"messageState": YIMEnum_MessageState.Fail.rawValue};
},
finder: Finder(filter: Filter.equals("messageState", YIMEnum_MessageState.Sending.rawValue)),
);
OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.oaZoaCpqHHEClCMM(callback: (conversations) async {
if (conversations == null) return;
for (var conversation in conversations) {
await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(conversation.lastMessage.conversationType, conversation.lastMessage.getConversatinoID());
}
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
});
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.pNEsHvSGgGaVaPdm?.call(conversations);
});
});
ikkMDRSazNrwMPHX.njeqgTukQZhJugsB = YIMUser.fromJson(data["user"]);
ikkMDRSazNrwMPHX.FtJQCRnYnNckMoAg.PCzsrhjANbwIWRMu(data["oss"]);
ikkMDRSazNrwMPHX.EKxdrisXBgUZKEWJ.PCzsrhjANbwIWRMu(data["push"]);
break;
case "kick":
OvtmToJxJungsSYZ.csuUedvgDStbzLNY.xEaWVylibHaKBZUT();
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.gDIRLGyouXilUtPk?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Kick, msg: "Kicked by ${data["device"]} device"));
});
break;
case "message":
case "message_sync":
final messages = (data["messages"] as List<dynamic>).map((element) => YIMMessage(message: _YIMTable_Message.fromJson(element))).toList();
for (var message in messages) {
Filter? filter_conversation;
switch (message.conversationType) {
case YIMEnum_ConversationType.P2P:
filter_conversation = Filter.and([
Filter.or([
Filter.and([Filter.equals("lastMessage.from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.to", message.getConversatinoID())]),
Filter.and([Filter.equals("lastMessage.to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.from", message.getConversatinoID())]),
]),
Filter.equals("lastMessage.conversationType", message.conversationType.rawValue),
]);
break;
case YIMEnum_ConversationType.Team:
filter_conversation = Filter.and([
Filter.equals("lastMessage.to", message.getConversatinoID()),
Filter.equals("lastMessage.conversationType", message.conversationType.rawValue),
]);
break;
}
var needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
_YIMTableName.Conversation,
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(filter: filter_conversation),
);
if (needUpdateConversations == null) {
return;
}
final isNewConversation = needUpdateConversations.isEmpty;
await EUPaGdpuWEjWZFHr(message, event == "message");
needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
_YIMTableName.Conversation,
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(filter: filter_conversation),
);
if (needUpdateConversations == null) {
return;
}
if (isNewConversation) {
//新增的会话
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.BOcvwyFExikPxjUj?.call(needUpdateConversations!.map((e) => YIMConversation(conversation: e)).toList());
});
} else {
//原有的会话
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.pNEsHvSGgGaVaPdm?.call(needUpdateConversations!.map((e) => YIMConversation(conversation: e)).toList());
});
}
}
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
});
break;
case "broadcast":
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.LzCkwqgkNkflqkMX?.call(YIMBroadcastMessage.fromJson(data["message"]));
});
break;
case "notification":
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.yPDXVqdCCTlZrIGy?.call(YIMNotificationMessage.fromJson(data["message"]));
});
break;
case "revoke":
case "revoke_sync":
for (final element in (data["messages"] as List<dynamic>)) {
final message = YIMRevokeMessage.fromJson(element);
final isSuccess_markConversationRevoke = await OvtmToJxJungsSYZ.TGOVPGaiUaEyiIOK.FAGxgEdvelhEvrtQ(
message.conversationType,
message.messageID,
);
if (!isSuccess_markConversationRevoke) return;
final isSuccess_updateLastMessage = await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(
message.conversationType,
message.conversationID,
// unRead: _YIMEnum_ConversatypeUnRead.Minus,
);
if (!isSuccess_updateLastMessage) return;
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
});
Filter? filter_conversation;
switch (message.conversationType) {
case YIMEnum_ConversationType.P2P:
filter_conversation = Filter.and([
Filter.or([
Filter.and([Filter.equals("lastMessage.from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.to", message.conversationID)]),
Filter.and([Filter.equals("lastMessage.to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.from", message.conversationID)]),
]),
Filter.equals("lastMessage.conversationType", message.conversationType.rawValue),
]);
break;
case YIMEnum_ConversationType.Team:
filter_conversation = Filter.and([
Filter.equals("lastMessage.to", message.conversationID),
Filter.equals("lastMessage.conversationType", message.conversationType.rawValue),
]);
break;
}
final needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
_YIMTableName.Conversation,
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(filter: filter_conversation),
);
if (needUpdateConversations == null) {
return;
}
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.pNEsHvSGgGaVaPdm?.call(needUpdateConversations.map((e) => YIMConversation(conversation: e)).toList());
});
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.MGXfhAfFUlDeKUdW?.call(message);
});
}
break;
case "receipt_p2p":
List<String> conversationIDs = (data["conversationIDs"] as List).map((element) => element.toString()).toList();
for (final conversationID in conversationIDs) {
final isSuccess_markConversationRead = await OvtmToJxJungsSYZ.TGOVPGaiUaEyiIOK.sRfyvtNzVdxXjhnj(
YIMEnum_ConversationType.P2P,
conversationID,
false,
);
if (!isSuccess_markConversationRead) return;
final isSuccess_updateLastMessage = await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(
YIMEnum_ConversationType.P2P,
conversationID,
);
if (!isSuccess_updateLastMessage) return;
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
});
final needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
_YIMTableName.Conversation,
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(
filter: Filter.and([
Filter.or([
Filter.and([Filter.equals("lastMessage.from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.to", conversationID)]),
Filter.and([Filter.equals("lastMessage.to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.from", conversationID)]),
]),
Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
]),
),
);
if (needUpdateConversations == null) {
return;
}
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.pNEsHvSGgGaVaPdm?.call(needUpdateConversations.map((e) => YIMConversation(conversation: e)).toList());
});
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.HFyejPRQqjOgcZCF?.call(conversationID);
});
}
break;
case "receipt_team":
List<String> conversationIDs = (data["conversationIDs"] as List).map((element) => element.toString()).toList();
for (final conversationID in conversationIDs) {
final isSuccess_markConversationRead = await OvtmToJxJungsSYZ.TGOVPGaiUaEyiIOK.sRfyvtNzVdxXjhnj(
YIMEnum_ConversationType.Team,
conversationID,
false,
);
if (!isSuccess_markConversationRead) return;
final isSuccess_updateLastMessage = await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(
YIMEnum_ConversationType.Team,
conversationID,
);
if (!isSuccess_updateLastMessage) return;
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
});
final needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
_YIMTableName.Conversation,
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(
filter: Filter.and([
Filter.equals("lastMessage.to", conversationID),
Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
]),
),
);
if (needUpdateConversations == null) {
return;
}
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.pNEsHvSGgGaVaPdm?.call(needUpdateConversations.map((e) => YIMConversation(conversation: e)).toList());
});
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.HFyejPRQqjOgcZCF?.call(conversationID);
});
}
break;
case "event_online":
final user = data["user"] as String;
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.sCOgbWsklAdRbMmL.gOSUblGcWIveDjLh?.call(user, YIMEnum_EventOnline.Online);
});
break;
case "event_offline":
final user = data["user"] as String;
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.sCOgbWsklAdRbMmL.gOSUblGcWIveDjLh?.call(user, YIMEnum_EventOnline.Offline);
});
break;
case "update_user":
ikkMDRSazNrwMPHX.njeqgTukQZhJugsB = YIMUser.fromJson(data["user"]);
}
});
}