fshzduTPWkITuRzq method

Future<void> fshzduTPWkITuRzq(
  1. String IDknCLPaIpCyGkFM,
  2. Map<String, dynamic> JUQwIovWWbGEtXed
)

Implementation

Future<void> fshzduTPWkITuRzq(String IDknCLPaIpCyGkFM, Map<String, dynamic> JUQwIovWWbGEtXed) async {
  await bCMMYpSojRClXHfi.synchronized(() async {
    var wBrGemezRfGxZxfK = new Lock();
    Future<void> RhCdtGDewoNAvfcN(YIMMessage kCwocHxVzlSDCcUI, bool SdVzSqIZujZAlBBS, {void Function(bool IWxelvVBXdhLiYGw)? dFOzKXrUQFAiVUMV}) async {
      await wBrGemezRfGxZxfK.synchronized(() async {
        if (kCwocHxVzlSDCcUI.id == eKIBpNethBUwYhJi) return;
        eKIBpNethBUwYhJi = kCwocHxVzlSDCcUI.id;
        switch (kCwocHxVzlSDCcUI.conversationType) {
          case YIMEnum_ConversationType.P2P:
            final fSZjgxfqRzThwulA = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.fSZjgxfqRzThwulA(
              _YIMTableName.Message,
              filter: Filter.equals("id", kCwocHxVzlSDCcUI.id),
            );
            if (fSZjgxfqRzThwulA == null) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            if (fSZjgxfqRzThwulA > 0) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            final tIjusDOaytMfyUYh = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.jtsnVpZoATWiaSlU(
              _YIMTableName.Message,
              JUQwIovWWbGEtXed: _YIMTable_Message(kCwocHxVzlSDCcUI: kCwocHxVzlSDCcUI),
            );
            if (!tIjusDOaytMfyUYh) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            final mcEPlVXzTebdsxXZ = await UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.PZljnyQTHQWpRuih(
              kCwocHxVzlSDCcUI.conversationType,
              kCwocHxVzlSDCcUI.from == lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM ? kCwocHxVzlSDCcUI.to : kCwocHxVzlSDCcUI.from,
              IpnvQLcAhgIkPBhZ: (kCwocHxVzlSDCcUI.from != lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM && kCwocHxVzlSDCcUI.messageState == YIMEnum_MessageState.Success_UnRead) ? ghgUnqfoANgJzhoD.RhNWXyqLXbXhjbqi : ghgUnqfoANgJzhoD.rDuHPDFhXIKMBAtv,
            );
            if (!mcEPlVXzTebdsxXZ) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            if (SdVzSqIZujZAlBBS)
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.PFaWuRZNJFoTSnNL?.call([kCwocHxVzlSDCcUI]);
              });
            else
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.EfwXpUrWTsCbcDgs?.call([kCwocHxVzlSDCcUI]);
              });
            dFOzKXrUQFAiVUMV?.call(true);
            break;
          case YIMEnum_ConversationType.Team:
            final fSZjgxfqRzThwulA = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.fSZjgxfqRzThwulA(
              _YIMTableName.Message,
              filter: Filter.equals("id", kCwocHxVzlSDCcUI.id),
            );
            if (fSZjgxfqRzThwulA == null) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            if (fSZjgxfqRzThwulA > 0) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            final tIjusDOaytMfyUYh = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.jtsnVpZoATWiaSlU(
              _YIMTableName.Message,
              JUQwIovWWbGEtXed: _YIMTable_Message(kCwocHxVzlSDCcUI: kCwocHxVzlSDCcUI),
            );
            if (!tIjusDOaytMfyUYh) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            final mcEPlVXzTebdsxXZ = await UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.PZljnyQTHQWpRuih(
              kCwocHxVzlSDCcUI.conversationType,
              kCwocHxVzlSDCcUI.to,
              IpnvQLcAhgIkPBhZ: (kCwocHxVzlSDCcUI.from != lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM) ? ghgUnqfoANgJzhoD.RhNWXyqLXbXhjbqi : ghgUnqfoANgJzhoD.rDuHPDFhXIKMBAtv,
            );
            if (!mcEPlVXzTebdsxXZ) {
              dFOzKXrUQFAiVUMV?.call(false);
              return;
            }
            if (SdVzSqIZujZAlBBS)
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.PFaWuRZNJFoTSnNL?.call([kCwocHxVzlSDCcUI]);
              });
            else
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.EfwXpUrWTsCbcDgs?.call([kCwocHxVzlSDCcUI]);
              });
            dFOzKXrUQFAiVUMV?.call(true);
            break;
          case YIMEnum_ConversationType.ChatRoom:
            if (SdVzSqIZujZAlBBS)
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.PFaWuRZNJFoTSnNL?.call([kCwocHxVzlSDCcUI]);
              });
            else
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.EfwXpUrWTsCbcDgs?.call([kCwocHxVzlSDCcUI]);
              });
            dFOzKXrUQFAiVUMV?.call(true);
            break;
          default:
            break;
        }
      });
    }

    switch (IDknCLPaIpCyGkFM) {
      case "loginFailed":
        rfNUjJngNdkmjAxe(JUQwIovWWbGEtXed["msg"].toString());
        break;
      case "loginSuccess":
        if (ZjXuxoDelatipWzo) return;
        ZjXuxoDelatipWzo = true;
        OyEzWRNaYPqNtufz?.cancel();
        OyEzWRNaYPqNtufz = null;
        TkisuliLuqPUEVWM?.cancel();
        TkisuliLuqPUEVWM = null;
        OyEzWRNaYPqNtufz = Timer.periodic(Duration(seconds: 5), (timer) {
          if (!UChfQaxIZXBHpDHw.njDzuTHDjwOofRwd.anPqdZrnWKekLPyp(XnbKaMhmJjWKgrAm: true) || AXEDuxiWAkDMTKGB == null) {
            if (!qILLQlEXlRWYMmye) {
              qILLQlEXlRWYMmye = true;
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.QgGWNsWrOkOrYyPu?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnecting, msg: "Reconnecting"));
              });
              KepcwyLeqXAhtQeG(true);
              Future.delayed(Duration(seconds: 1), () {
                OMDQMMrMTEoZfbGa(true);
                Future.delayed(Duration(seconds: 5), () {
                  if (qILLQlEXlRWYMmye) {
                    qILLQlEXlRWYMmye = false;
                    KepcwyLeqXAhtQeG(true);
                  }
                });
              });
            }
          } else {
            if (qILLQlEXlRWYMmye) {
              qILLQlEXlRWYMmye = false;
              ktBFqviohlMHUDmw();
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.QgGWNsWrOkOrYyPu?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnected, msg: "Reconnected"));
              });
            }
            // lnHdKoLeAXayLaTQ.IDteDTVOmCXMeoaZ.xAbmkiHIVdSWVdsf("refreshOnline");
          }
        });
        lnHdKoLeAXayLaTQ.ikCtvzoxOumWKvvj = YIMUser.fromJson(JUQwIovWWbGEtXed["user"]);
        lnHdKoLeAXayLaTQ.cTPjiAqeCjOrRkZR = (JUQwIovWWbGEtXed["conversationTops"] as List<dynamic>).map((e) => e.toString()).toList();
        lnHdKoLeAXayLaTQ.CgBjJxDnQVBRFFnX = (JUQwIovWWbGEtXed["disturbs_p2p"] as List<dynamic>).map((e) => e.toString()).toList();
        lnHdKoLeAXayLaTQ.qScefxlPSQTbPUjX = (JUQwIovWWbGEtXed["disturbs_team"] as List<dynamic>).map((e) => e.toString()).toList();
        lnHdKoLeAXayLaTQ.daTsWHmsUCmfYRlx.pYozWCnHZaaGRjEx(JUQwIovWWbGEtXed["oss"]);
        lnHdKoLeAXayLaTQ.uHrDKqGhYwFfFjzt.pYozWCnHZaaGRjEx(lnHdKoLeAXayLaTQ.faQkRmckBLGLNpdu?.push ?? JUQwIovWWbGEtXed["push"]);
        //同步云端会话
        xAbmkiHIVdSWVdsf("queryConversations", jCuQmdbQKfCyjgLe: (IWxelvVBXdhLiYGw, iRnmzMAYPMjltgiU, RIJJEwowWZYrUgoB, ojKzdeKHBwmcEOBz) {
          if (IWxelvVBXdhLiYGw) {
            List<Map<String, dynamic>> HFftvJKILIsuhlJr = (iRnmzMAYPMjltgiU?["conversations"] as List<dynamic>).map((m) => m as Map<String, dynamic>).toList();
            if (HFftvJKILIsuhlJr.isEmpty) return;
            UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.TjMCUKWVAiKboQQH(
              dFOzKXrUQFAiVUMV: (mvNVnlaAbMjTUWGG) {
                //过滤本地已经存在的云端会话
                mvNVnlaAbMjTUWGG?.forEach((BXiYJGYbkPLwuERt) {
                  switch (BXiYJGYbkPLwuERt.lastMessage.conversationType) {
                    case YIMEnum_ConversationType.P2P:
                      final DdEJLInBukyevMKs = BXiYJGYbkPLwuERt.lastMessage.from == lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM ? BXiYJGYbkPLwuERt.lastMessage.to : BXiYJGYbkPLwuERt.lastMessage.from;
                      for (var bpqlEkewYJcrfGpI = HFftvJKILIsuhlJr.length - 1; bpqlEkewYJcrfGpI >= 0; bpqlEkewYJcrfGpI--) {
                        if (HFftvJKILIsuhlJr[bpqlEkewYJcrfGpI]["conversationID"] == DdEJLInBukyevMKs) HFftvJKILIsuhlJr.removeAt(bpqlEkewYJcrfGpI);
                      }
                      break;
                    case YIMEnum_ConversationType.Team:
                      final DdEJLInBukyevMKs = BXiYJGYbkPLwuERt.lastMessage.to;
                      for (var bpqlEkewYJcrfGpI = HFftvJKILIsuhlJr.length - 1; bpqlEkewYJcrfGpI >= 0; bpqlEkewYJcrfGpI--) {
                        if (HFftvJKILIsuhlJr[bpqlEkewYJcrfGpI]["conversationID"] == DdEJLInBukyevMKs) HFftvJKILIsuhlJr.removeAt(bpqlEkewYJcrfGpI);
                      }
                      break;
                    default:
                      break;
                  }
                });
                //将本地没有的云端会话,把消息同步下来
                for (final BXiYJGYbkPLwuERt in HFftvJKILIsuhlJr.reversed) {
                  UChfQaxIZXBHpDHw.TVtBMJBxUhVUNvEa.CBjapngMjhQiNExq(
                    TIVvnmucZCCCoXWZ: YIMEnum_ConversationType.from(BXiYJGYbkPLwuERt["conversationType"].toString()),
                    DdEJLInBukyevMKs: BXiYJGYbkPLwuERt["conversationID"].toString(),
                    nHycbSwpLhrSWLwd: lnHdKoLeAXayLaTQ.HprQvLGSNsDrbxsL.prCTaddMcVstuzqb,
                    dFOzKXrUQFAiVUMV: (IWxelvVBXdhLiYGw, ngxdEdyjvmzNkZGI) async {
                      if (IWxelvVBXdhLiYGw) {
                        for (var i = 0; i < ngxdEdyjvmzNkZGI!.length; i++) {
                          await RhCdtGDewoNAvfcN(ngxdEdyjvmzNkZGI[i], false, dFOzKXrUQFAiVUMV: (IWxelvVBXdhLiYGw) async {
                            if (!IWxelvVBXdhLiYGw) return;
                            Filter? CtfXnnlMSVlkkRNg;
                            switch (YIMEnum_ConversationType.from(BXiYJGYbkPLwuERt["conversationType"].toString())) {
                              case YIMEnum_ConversationType.P2P:
                                CtfXnnlMSVlkkRNg = Filter.and([
                                  Filter.or([
                                    Filter.and([Filter.equals("lastMessage.from", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.to", BXiYJGYbkPLwuERt["conversationID"])]),
                                    Filter.and([Filter.equals("lastMessage.to", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.from", BXiYJGYbkPLwuERt["conversationID"])]),
                                  ]),
                                  Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
                                ]);
                                break;
                              case YIMEnum_ConversationType.Team:
                                CtfXnnlMSVlkkRNg = Filter.and([
                                  Filter.equals("lastMessage.to", BXiYJGYbkPLwuERt["conversationID"]),
                                  Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
                                ]);
                                break;
                              case YIMEnum_ConversationType.ChatRoom:
                                break;
                              default:
                                break;
                            }
                            final eCwqNHFuvuJLmpqA = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.wWZGwmhKzGRaHief<_YIMTable_Conversation>(
                              _YIMTableName.Conversation,
                              (ERkcyObSnpiYvUcn) => ERkcyObSnpiYvUcn!..unRead = int.parse(BXiYJGYbkPLwuERt["unReadCount"].toString()),
                              kXTnRNGoMYqcQtxj: (map) => _YIMTable_Conversation.fromJson(map),
                              fnfSorwGDrYrXXrJ: Finder(filter: CtfXnnlMSVlkkRNg),
                            );
                            if (!eCwqNHFuvuJLmpqA) return;
                            if (i >= ngxdEdyjvmzNkZGI.length - 1) {
                              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
                              });
                              Filter? PViwEfkxnHthuFaW;
                              switch (YIMEnum_ConversationType.from(BXiYJGYbkPLwuERt["conversationType"].toString())) {
                                case YIMEnum_ConversationType.P2P:
                                  PViwEfkxnHthuFaW = Filter.and([
                                    Filter.or([
                                      Filter.and([Filter.equals("lastMessage.from", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.to", BXiYJGYbkPLwuERt["conversationID"])]),
                                      Filter.and([Filter.equals("lastMessage.to", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.from", BXiYJGYbkPLwuERt["conversationID"])]),
                                    ]),
                                    Filter.equals("lastMessage.conversationType", BXiYJGYbkPLwuERt["conversationType"]),
                                  ]);
                                  break;
                                case YIMEnum_ConversationType.Team:
                                  PViwEfkxnHthuFaW = Filter.and([
                                    Filter.equals("lastMessage.to", BXiYJGYbkPLwuERt["conversationID"]),
                                    Filter.equals("lastMessage.conversationType", BXiYJGYbkPLwuERt["conversationType"]),
                                  ]);
                                  break;
                              }
                              final dtmfXZcFGyRKHKIm = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.uKKZjqnYwajOojnf<_YIMTable_Conversation>(
                                _YIMTableName.Conversation,
                                kXTnRNGoMYqcQtxj: (map) => _YIMTable_Conversation.fromJson(map),
                                fnfSorwGDrYrXXrJ: Finder(filter: PViwEfkxnHthuFaW),
                              );
                              if (dtmfXZcFGyRKHKIm == null) {
                                return;
                              }
                              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.tvXnKsJjYewLWIsE?.call(dtmfXZcFGyRKHKIm.map((e) => YIMConversation(BXiYJGYbkPLwuERt: e)).toList());
                              });
                            }
                          });
                        }
                      }
                    },
                  );
                }
              },
            );
          }
        });
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          JFJJGDpdTnIRggpg?.call(YIMResult<YIMEnum_LoginResult>(code: YIMEnum_LoginResult.Success, msg: "success"));
        });
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          JFJJGDpdTnIRggpg = null;
        });
        //将历史的发送中消息,置为失败状态
        await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.HtZiTsNfAGUmLizq(
          _YIMTableName.Message,
          () {
            return {"messageState": YIMEnum_MessageState.Fail.rawValue};
          },
          fnfSorwGDrYrXXrJ: Finder(filter: Filter.equals("messageState", YIMEnum_MessageState.Sending.rawValue)),
        );
        UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.TjMCUKWVAiKboQQH(dFOzKXrUQFAiVUMV: (mvNVnlaAbMjTUWGG) async {
          if (mvNVnlaAbMjTUWGG == null) return;
          for (var BXiYJGYbkPLwuERt in mvNVnlaAbMjTUWGG) {
            await UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.PZljnyQTHQWpRuih(BXiYJGYbkPLwuERt.lastMessage.conversationType, BXiYJGYbkPLwuERt.lastMessage.getConversatinoID());
          }
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
          });
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(mvNVnlaAbMjTUWGG);
          });
        });
        break;
      case "conversation_top_update":
        List<String> cTPjiAqeCjOrRkZR = (JUQwIovWWbGEtXed["conversationTops"] as List).map((element) => element.toString()).toList();
        lnHdKoLeAXayLaTQ.cTPjiAqeCjOrRkZR = cTPjiAqeCjOrRkZR;
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
        });
        if (UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu != null) {
          UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.TjMCUKWVAiKboQQH(dFOzKXrUQFAiVUMV: (mvNVnlaAbMjTUWGG) {
            if (mvNVnlaAbMjTUWGG == null) return;
            lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
              UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(mvNVnlaAbMjTUWGG);
            });
          });
        }
        break;
      case "disturbs_p2p_update":
        List<String> CgBjJxDnQVBRFFnX = (JUQwIovWWbGEtXed["disturbs_p2p"] as List).map((element) => element.toString()).toList();
        lnHdKoLeAXayLaTQ.CgBjJxDnQVBRFFnX = CgBjJxDnQVBRFFnX;
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
        });
        if (UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu != null) {
          UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.TjMCUKWVAiKboQQH(dFOzKXrUQFAiVUMV: (mvNVnlaAbMjTUWGG) {
            if (mvNVnlaAbMjTUWGG == null) return;
            lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
              UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(mvNVnlaAbMjTUWGG);
            });
          });
        }
        break;
      case "disturbs_team_update":
        List<String> qScefxlPSQTbPUjX = (JUQwIovWWbGEtXed["disturbs_team"] as List).map((element) => element.toString()).toList();
        lnHdKoLeAXayLaTQ.qScefxlPSQTbPUjX = qScefxlPSQTbPUjX;
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
        });
        if (UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu != null) {
          UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.TjMCUKWVAiKboQQH(dFOzKXrUQFAiVUMV: (mvNVnlaAbMjTUWGG) {
            if (mvNVnlaAbMjTUWGG == null) return;
            lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
              UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(mvNVnlaAbMjTUWGG);
            });
          });
        }
        break;
      case "kick":
        UChfQaxIZXBHpDHw.njDzuTHDjwOofRwd.YqhLoIVTiPFNjYVF();
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.QgGWNsWrOkOrYyPu?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Kick, msg: "Kicked by ${JUQwIovWWbGEtXed["device"]} device"));
        });
        break;
      case "kick_room":
        final cjjasEdBSfpWPBCi = JUQwIovWWbGEtXed["roomID"] as String;
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.hLxdVDZKArSVcSuz?.call(cjjasEdBSfpWPBCi);
        });
        break;
      case "close_room":
        final cjjasEdBSfpWPBCi = JUQwIovWWbGEtXed["roomID"] as String;
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.CIKLvMnTYHtovpQM?.call(cjjasEdBSfpWPBCi);
        });
        break;
      case "message":
      case "message_sync":
        final ngxdEdyjvmzNkZGI = (JUQwIovWWbGEtXed["messages"] as List<dynamic>).map((element) => YIMMessage(kCwocHxVzlSDCcUI: _YIMTable_Message.fromJson(element))).toList();
        for (var kCwocHxVzlSDCcUI in ngxdEdyjvmzNkZGI) {
          Filter? PViwEfkxnHthuFaW;
          switch (kCwocHxVzlSDCcUI.conversationType) {
            case YIMEnum_ConversationType.P2P:
              PViwEfkxnHthuFaW = Filter.and([
                Filter.or([
                  Filter.and([Filter.equals("lastMessage.from", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.to", kCwocHxVzlSDCcUI.getConversatinoID())]),
                  Filter.and([Filter.equals("lastMessage.to", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.from", kCwocHxVzlSDCcUI.getConversatinoID())]),
                ]),
                Filter.equals("lastMessage.conversationType", kCwocHxVzlSDCcUI.conversationType.rawValue),
              ]);
              break;
            case YIMEnum_ConversationType.Team:
              PViwEfkxnHthuFaW = Filter.and([
                Filter.equals("lastMessage.to", kCwocHxVzlSDCcUI.getConversatinoID()),
                Filter.equals("lastMessage.conversationType", kCwocHxVzlSDCcUI.conversationType.rawValue),
              ]);
              break;
            case YIMEnum_ConversationType.ChatRoom:
              PViwEfkxnHthuFaW = Filter.and([
                Filter.equals("lastMessage.conversationType", kCwocHxVzlSDCcUI.conversationType.rawValue),
              ]);
              break;
          }
          var dtmfXZcFGyRKHKIm = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.uKKZjqnYwajOojnf<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            kXTnRNGoMYqcQtxj: (map) => _YIMTable_Conversation.fromJson(map),
            fnfSorwGDrYrXXrJ: Finder(filter: PViwEfkxnHthuFaW),
          );
          if (dtmfXZcFGyRKHKIm == null) {
            return;
          }
          await RhCdtGDewoNAvfcN(kCwocHxVzlSDCcUI, IDknCLPaIpCyGkFM == "message", dFOzKXrUQFAiVUMV: (IWxelvVBXdhLiYGw) async {
            if (!IWxelvVBXdhLiYGw) return;
            final RgiipeBdQbKTfboo = dtmfXZcFGyRKHKIm!.isEmpty;
            dtmfXZcFGyRKHKIm = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.uKKZjqnYwajOojnf<_YIMTable_Conversation>(
              _YIMTableName.Conversation,
              kXTnRNGoMYqcQtxj: (map) => _YIMTable_Conversation.fromJson(map),
              fnfSorwGDrYrXXrJ: Finder(filter: PViwEfkxnHthuFaW),
            );
            if (dtmfXZcFGyRKHKIm == null) {
              return;
            }
            if ([YIMEnum_ConversationType.P2P, YIMEnum_ConversationType.Team].contains(kCwocHxVzlSDCcUI.conversationType)) {
              if (RgiipeBdQbKTfboo) {
                //新增的会话
                lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                  UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.tvXnKsJjYewLWIsE?.call(dtmfXZcFGyRKHKIm!.map((e) => YIMConversation(BXiYJGYbkPLwuERt: e)).toList());
                });
              } else {
                //原有的会话
                lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                  UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(dtmfXZcFGyRKHKIm!.map((e) => YIMConversation(BXiYJGYbkPLwuERt: e)).toList());
                });
              }
              lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
                UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
              });
            }
          });
        }
        break;
      case "broadcast":
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.ltyamhUbEqXlorSB?.call(YIMBroadcastMessage.fromJson(JUQwIovWWbGEtXed["message"]));
        });
        break;
      case "notification":
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.hUeQfhsQXaKoSxRa?.call(YIMNotificationMessage.fromJson(JUQwIovWWbGEtXed["message"]));
        });
        break;
      case "push":
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.DSQlqzXbtpyYWgbH?.call(YIMPushMessage.fromJson(JUQwIovWWbGEtXed["message"]));
        });
        break;
      case "revoke":
      case "revoke_sync":
        for (final FQhJkpttqzsvMrwj in (JUQwIovWWbGEtXed["messages"] as List<dynamic>)) {
          final kCwocHxVzlSDCcUI = YIMRevokeMessage.fromJson(FQhJkpttqzsvMrwj);
          if ([YIMEnum_ConversationType.P2P, YIMEnum_ConversationType.Team].contains(kCwocHxVzlSDCcUI.conversationType)) {
            final ZSerFQVSEagBQhqF = await UChfQaxIZXBHpDHw.TVtBMJBxUhVUNvEa.VRCPzHDUoPYMLBOp(
              kCwocHxVzlSDCcUI.conversationType,
              kCwocHxVzlSDCcUI.messageID,
            );
            if (!ZSerFQVSEagBQhqF) return;
            final mcEPlVXzTebdsxXZ = await UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.PZljnyQTHQWpRuih(
              kCwocHxVzlSDCcUI.conversationType,
              kCwocHxVzlSDCcUI.conversationID,
              // unRead: _YIMEnum_ConversatypeUnRead.Minus,
            );
            if (!mcEPlVXzTebdsxXZ) return;
            lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
              UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
            });
            Filter? PViwEfkxnHthuFaW;
            switch (kCwocHxVzlSDCcUI.conversationType) {
              case YIMEnum_ConversationType.P2P:
                PViwEfkxnHthuFaW = Filter.and([
                  Filter.or([
                    Filter.and([Filter.equals("lastMessage.from", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.to", kCwocHxVzlSDCcUI.conversationID)]),
                    Filter.and([Filter.equals("lastMessage.to", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.from", kCwocHxVzlSDCcUI.conversationID)]),
                  ]),
                  Filter.equals("lastMessage.conversationType", kCwocHxVzlSDCcUI.conversationType.rawValue),
                ]);
                break;
              case YIMEnum_ConversationType.Team:
                PViwEfkxnHthuFaW = Filter.and([
                  Filter.equals("lastMessage.to", kCwocHxVzlSDCcUI.conversationID),
                  Filter.equals("lastMessage.conversationType", kCwocHxVzlSDCcUI.conversationType.rawValue),
                ]);
                break;
            }
            final dtmfXZcFGyRKHKIm = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.uKKZjqnYwajOojnf<_YIMTable_Conversation>(
              _YIMTableName.Conversation,
              kXTnRNGoMYqcQtxj: (map) => _YIMTable_Conversation.fromJson(map),
              fnfSorwGDrYrXXrJ: Finder(filter: PViwEfkxnHthuFaW),
            );
            if (dtmfXZcFGyRKHKIm == null) {
              return;
            }
            lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
              UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(dtmfXZcFGyRKHKIm.map((e) => YIMConversation(BXiYJGYbkPLwuERt: e)).toList());
            });
          }
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.TVlcUBVraDhODubx?.call(kCwocHxVzlSDCcUI);
          });
        }
        break;
      case "receipt_p2p":
        List<String> ppTCuZbHYhtpcWGC = (JUQwIovWWbGEtXed["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final DdEJLInBukyevMKs in ppTCuZbHYhtpcWGC) {
          final iirtwqEXofdELBSI = await UChfQaxIZXBHpDHw.TVtBMJBxUhVUNvEa.KBzcdMaVgeTLhbSO(
            YIMEnum_ConversationType.P2P,
            DdEJLInBukyevMKs,
            false,
          );
          if (!iirtwqEXofdELBSI) return;
          final mcEPlVXzTebdsxXZ = await UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.PZljnyQTHQWpRuih(
            YIMEnum_ConversationType.P2P,
            DdEJLInBukyevMKs,
          );
          if (!mcEPlVXzTebdsxXZ) return;
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
          });
          final dtmfXZcFGyRKHKIm = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.uKKZjqnYwajOojnf<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            kXTnRNGoMYqcQtxj: (map) => _YIMTable_Conversation.fromJson(map),
            fnfSorwGDrYrXXrJ: Finder(
              filter: Filter.and([
                Filter.or([
                  Filter.and([Filter.equals("lastMessage.from", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.to", DdEJLInBukyevMKs)]),
                  Filter.and([Filter.equals("lastMessage.to", lnHdKoLeAXayLaTQ.wkoLiCQozKacYjmM), Filter.equals("lastMessage.from", DdEJLInBukyevMKs)]),
                ]),
                Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
              ]),
            ),
          );
          if (dtmfXZcFGyRKHKIm == null) {
            return;
          }
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(dtmfXZcFGyRKHKIm.map((e) => YIMConversation(BXiYJGYbkPLwuERt: e)).toList());
          });
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.AdoSfdKUZKmSgbVI?.call(DdEJLInBukyevMKs);
          });
        }
        break;
      case "receipt_team":
        List<String> ppTCuZbHYhtpcWGC = (JUQwIovWWbGEtXed["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final DdEJLInBukyevMKs in ppTCuZbHYhtpcWGC) {
          final iirtwqEXofdELBSI = await UChfQaxIZXBHpDHw.TVtBMJBxUhVUNvEa.KBzcdMaVgeTLhbSO(
            YIMEnum_ConversationType.Team,
            DdEJLInBukyevMKs,
            false,
          );
          if (!iirtwqEXofdELBSI) return;
          final mcEPlVXzTebdsxXZ = await UChfQaxIZXBHpDHw.VurOaXdcuMhmFxOY.PZljnyQTHQWpRuih(
            YIMEnum_ConversationType.Team,
            DdEJLInBukyevMKs,
          );
          if (!mcEPlVXzTebdsxXZ) return;
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.zYXHYCxBRzMmefXt?.call();
          });
          final dtmfXZcFGyRKHKIm = await lnHdKoLeAXayLaTQ.vByYuYitJBHbvUKL.uKKZjqnYwajOojnf<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            kXTnRNGoMYqcQtxj: (map) => _YIMTable_Conversation.fromJson(map),
            fnfSorwGDrYrXXrJ: Finder(
              filter: Filter.and([
                Filter.equals("lastMessage.to", DdEJLInBukyevMKs),
                Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
              ]),
            ),
          );
          if (dtmfXZcFGyRKHKIm == null) {
            return;
          }
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.rMqppijxSRmKvvLu?.call(dtmfXZcFGyRKHKIm.map((e) => YIMConversation(BXiYJGYbkPLwuERt: e)).toList());
          });
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.AdoSfdKUZKmSgbVI?.call(DdEJLInBukyevMKs);
          });
        }
        break;
      case "receipt_room":
        List<String> ppTCuZbHYhtpcWGC = (JUQwIovWWbGEtXed["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final DdEJLInBukyevMKs in ppTCuZbHYhtpcWGC) {
          lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
            UChfQaxIZXBHpDHw.hTyLGxoJhBOoadid.AdoSfdKUZKmSgbVI?.call(DdEJLInBukyevMKs);
          });
        }
        break;
      case "event_online":
        final OqUWRJxUkloqziqW = JUQwIovWWbGEtXed["user"] as String;
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.aPajfqGZYzQCDWSB.iDslZJfRGeDdprMF?.call(OqUWRJxUkloqziqW, YIMEnum_EventOnline.Online);
        });
        break;
      case "event_offline":
        final OqUWRJxUkloqziqW = JUQwIovWWbGEtXed["user"] as String;
        lnHdKoLeAXayLaTQ.hqSwzyClHgtHzAja.bhMrnZZKiorcTBJp(() {
          UChfQaxIZXBHpDHw.aPajfqGZYzQCDWSB.iDslZJfRGeDdprMF?.call(OqUWRJxUkloqziqW, YIMEnum_EventOnline.Offline);
        });
        break;
      case "update_user":
        lnHdKoLeAXayLaTQ.ikCtvzoxOumWKvvj = YIMUser.fromJson(JUQwIovWWbGEtXed["user"]);
    }
  });
}