vkekvZmFQWTGOchC method

Future<void> vkekvZmFQWTGOchC(
  1. String fFAvVZnQADWGnDMJ,
  2. Map<String, dynamic> GlIXyNxjXRjKcoLX
)

Implementation

Future<void> vkekvZmFQWTGOchC(String fFAvVZnQADWGnDMJ, Map<String, dynamic> GlIXyNxjXRjKcoLX) async {
  await TXrusaiYkipbgHro.synchronized(() async {
    var mAvtdvBgQJZzeYXZ = new Lock();
    Future<void> fNwLXAZFaVtnCIks(YIMMessage kmHFaoDMcNOfZpRN, bool IiZiRXUaFVrUwAxi, {void Function(bool HNMwGFsvIPdZudoP)? RpTfEMreuKahSHPQ}) async {
      await mAvtdvBgQJZzeYXZ.synchronized(() async {
        if (kmHFaoDMcNOfZpRN.id == FNbzMHJNfnmyzCuT) return;
        FNbzMHJNfnmyzCuT = kmHFaoDMcNOfZpRN.id;
        switch (kmHFaoDMcNOfZpRN.conversationType) {
          case YIMEnum_ConversationType.P2P:
            final RKnRvqOpisgAtxoQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.RKnRvqOpisgAtxoQ(
              _YIMTableName.Message,
              filter: Filter.equals("id", kmHFaoDMcNOfZpRN.id),
            );
            if (RKnRvqOpisgAtxoQ == null) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            if (RKnRvqOpisgAtxoQ > 0) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            final PJnXZLlIjHytYxlY = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.KWTuCQNebcXsffPu(
              _YIMTableName.Message,
              GlIXyNxjXRjKcoLX: _YIMTable_Message(kmHFaoDMcNOfZpRN: kmHFaoDMcNOfZpRN),
            );
            if (!PJnXZLlIjHytYxlY) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            final waFAsRUSReeHKfTO = await TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.RNFknVLCuPJTcxUh(
              kmHFaoDMcNOfZpRN.conversationType,
              kmHFaoDMcNOfZpRN.from == RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM ? kmHFaoDMcNOfZpRN.to : kmHFaoDMcNOfZpRN.from,
              BEauSsLtWtcLsOcZ: (kmHFaoDMcNOfZpRN.from != RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM && kmHFaoDMcNOfZpRN.messageState == YIMEnum_MessageState.Success_UnRead) ? gWSJVIFaNLgWZquB.QKURXizoydiDeeuw : gWSJVIFaNLgWZquB.XjEushaimpJPZMpt,
            );
            if (!waFAsRUSReeHKfTO) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            if (IiZiRXUaFVrUwAxi)
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.VpIccEhkyZrgnnaH?.call([kmHFaoDMcNOfZpRN]);
              });
            else
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.RtjmInwAvHdQxztc?.call([kmHFaoDMcNOfZpRN]);
              });
            RpTfEMreuKahSHPQ?.call(true);
            break;
          case YIMEnum_ConversationType.Team:
            final RKnRvqOpisgAtxoQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.RKnRvqOpisgAtxoQ(
              _YIMTableName.Message,
              filter: Filter.equals("id", kmHFaoDMcNOfZpRN.id),
            );
            if (RKnRvqOpisgAtxoQ == null) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            if (RKnRvqOpisgAtxoQ > 0) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            final PJnXZLlIjHytYxlY = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.KWTuCQNebcXsffPu(
              _YIMTableName.Message,
              GlIXyNxjXRjKcoLX: _YIMTable_Message(kmHFaoDMcNOfZpRN: kmHFaoDMcNOfZpRN),
            );
            if (!PJnXZLlIjHytYxlY) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            final waFAsRUSReeHKfTO = await TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.RNFknVLCuPJTcxUh(
              kmHFaoDMcNOfZpRN.conversationType,
              kmHFaoDMcNOfZpRN.to,
              BEauSsLtWtcLsOcZ: (kmHFaoDMcNOfZpRN.from != RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM) ? gWSJVIFaNLgWZquB.QKURXizoydiDeeuw : gWSJVIFaNLgWZquB.XjEushaimpJPZMpt,
            );
            if (!waFAsRUSReeHKfTO) {
              RpTfEMreuKahSHPQ?.call(false);
              return;
            }
            if (IiZiRXUaFVrUwAxi)
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.VpIccEhkyZrgnnaH?.call([kmHFaoDMcNOfZpRN]);
              });
            else
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.RtjmInwAvHdQxztc?.call([kmHFaoDMcNOfZpRN]);
              });
            RpTfEMreuKahSHPQ?.call(true);
            break;
          case YIMEnum_ConversationType.ChatRoom:
            if (IiZiRXUaFVrUwAxi)
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.VpIccEhkyZrgnnaH?.call([kmHFaoDMcNOfZpRN]);
              });
            else
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.RtjmInwAvHdQxztc?.call([kmHFaoDMcNOfZpRN]);
              });
            RpTfEMreuKahSHPQ?.call(true);
            break;
          default:
            break;
        }
      });
    }

    switch (fFAvVZnQADWGnDMJ) {
      case "loginFailed":
        qSwjJEynArZqjZZs(GlIXyNxjXRjKcoLX["msg"].toString());
        break;
      case "loginSuccess":
        if (DdcTKakzivDwnnvt) return;
        DdcTKakzivDwnnvt = true;
        DGXuaEXgQFQzZhtw?.cancel();
        DGXuaEXgQFQzZhtw = null;
        FjNaqunSNAJclyby?.cancel();
        FjNaqunSNAJclyby = null;
        DGXuaEXgQFQzZhtw = Timer.periodic(Duration(seconds: 5), (timer) {
          if (!TOguPJtIdcSeGZGX.rBuDdhLENqbkPPvE.NeoEyBnRdnWKwFxT(DtZesLJvhQwPofVa: true) || ZYXVgnRTlBLOixFi == null) {
            if (!dvJRYYDXaAfZzjAL) {
              dvJRYYDXaAfZzjAL = true;
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.tNDrOcWSgCuSrPfS?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnecting, msg: "Reconnecting"));
              });
              jYwQASHEzynvSwiH(true);
              Future.delayed(Duration(seconds: 1), () {
                RNIzNgyUZFRXkZfn(true);
                Future.delayed(Duration(seconds: 5), () {
                  if (dvJRYYDXaAfZzjAL) {
                    dvJRYYDXaAfZzjAL = false;
                    jYwQASHEzynvSwiH(true);
                  }
                });
              });
            }
          } else {
            if (dvJRYYDXaAfZzjAL) {
              dvJRYYDXaAfZzjAL = false;
              MOMTRDSxpNphkRfm();
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.tNDrOcWSgCuSrPfS?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Reconnected, msg: "Reconnected"));
              });
            }
            // RgTTqSEnxRPxFwzl.EuaPwsZVIqeyUiTs.zbgQyaSxTZRIXxzk("refreshOnline");
          }
        });
        RgTTqSEnxRPxFwzl.lyCZGqmwzLKqDevq = YIMUser.fromJson(GlIXyNxjXRjKcoLX["user"]);
        RgTTqSEnxRPxFwzl.OCReTgXehKqOCmEk = (GlIXyNxjXRjKcoLX["conversationTops"] as List<dynamic>).map((e) => e.toString()).toList();
        RgTTqSEnxRPxFwzl.bXEblboFFkAkeobo = (GlIXyNxjXRjKcoLX["disturbs_p2p"] as List<dynamic>).map((e) => e.toString()).toList();
        RgTTqSEnxRPxFwzl.OhYLrUkfbGMMhiMF = (GlIXyNxjXRjKcoLX["disturbs_team"] as List<dynamic>).map((e) => e.toString()).toList();
        RgTTqSEnxRPxFwzl.CaEGsqxdNhwofbGA.fpHoGHhyuyMhFUyd(GlIXyNxjXRjKcoLX["oss"]);
        RgTTqSEnxRPxFwzl.XGhZbaZiUqYuqmWQ.fpHoGHhyuyMhFUyd(GlIXyNxjXRjKcoLX["push"]);
        //同步云端会话
        zbgQyaSxTZRIXxzk("queryConversations", rMjlZMNvtlJSxSWt: (HNMwGFsvIPdZudoP, BYjAdmrVoQXFvmBX, cbqBlPPvVikjecgS, YDevfGtnNcdOmnZK) {
          if (HNMwGFsvIPdZudoP) {
            List<Map<String, dynamic>> muTUzDMTZNCBSjFN = (BYjAdmrVoQXFvmBX?["conversations"] as List<dynamic>).map((m) => m as Map<String, dynamic>).toList();
            if (muTUzDMTZNCBSjFN.isEmpty) return;
            TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.mfRDqyLVGZXBnAUb(
              RpTfEMreuKahSHPQ: (lmLThEnDJPcSwcIu) {
                //过滤本地已经存在的云端会话
                lmLThEnDJPcSwcIu?.forEach((RbOFBoUMiGshbGjp) {
                  switch (RbOFBoUMiGshbGjp.lastMessage.conversationType) {
                    case YIMEnum_ConversationType.P2P:
                      final fRzBwkFTgPAvTbAa = RbOFBoUMiGshbGjp.lastMessage.from == RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM ? RbOFBoUMiGshbGjp.lastMessage.to : RbOFBoUMiGshbGjp.lastMessage.from;
                      for (var pdVBjuxHSzIhytrJ = muTUzDMTZNCBSjFN.length - 1; pdVBjuxHSzIhytrJ >= 0; pdVBjuxHSzIhytrJ--) {
                        if (muTUzDMTZNCBSjFN[pdVBjuxHSzIhytrJ]["conversationID"] == fRzBwkFTgPAvTbAa) muTUzDMTZNCBSjFN.removeAt(pdVBjuxHSzIhytrJ);
                      }
                      break;
                    case YIMEnum_ConversationType.Team:
                      final fRzBwkFTgPAvTbAa = RbOFBoUMiGshbGjp.lastMessage.to;
                      for (var pdVBjuxHSzIhytrJ = muTUzDMTZNCBSjFN.length - 1; pdVBjuxHSzIhytrJ >= 0; pdVBjuxHSzIhytrJ--) {
                        if (muTUzDMTZNCBSjFN[pdVBjuxHSzIhytrJ]["conversationID"] == fRzBwkFTgPAvTbAa) muTUzDMTZNCBSjFN.removeAt(pdVBjuxHSzIhytrJ);
                      }
                      break;
                    default:
                      break;
                  }
                });
                //将本地没有的云端会话,把消息同步下来
                for (final RbOFBoUMiGshbGjp in muTUzDMTZNCBSjFN.reversed) {
                  TOguPJtIdcSeGZGX.vlfiqAfysAISnRJq.ouHXnEiDGrTJlOHj(
                    BgfAEObZrclDbHGn: YIMEnum_ConversationType.from(RbOFBoUMiGshbGjp["conversationType"].toString()),
                    fRzBwkFTgPAvTbAa: RbOFBoUMiGshbGjp["conversationID"].toString(),
                    rWeHdJjAbLtRabTA: RgTTqSEnxRPxFwzl.ihNZZIImCmUlPGzP.RWFiiBlidRGtTpgG,
                    RpTfEMreuKahSHPQ: (HNMwGFsvIPdZudoP, kVExwhjmVJPOYwEt) async {
                      if (HNMwGFsvIPdZudoP) {
                        for (var i = 0; i < kVExwhjmVJPOYwEt!.length; i++) {
                          await fNwLXAZFaVtnCIks(kVExwhjmVJPOYwEt[i], false, RpTfEMreuKahSHPQ: (HNMwGFsvIPdZudoP) async {
                            if (!HNMwGFsvIPdZudoP) return;
                            Filter? QXsGIQPhlpBQAYXd;
                            switch (YIMEnum_ConversationType.from(RbOFBoUMiGshbGjp["conversationType"].toString())) {
                              case YIMEnum_ConversationType.P2P:
                                QXsGIQPhlpBQAYXd = Filter.and([
                                  Filter.or([
                                    Filter.and([Filter.equals("lastMessage.from", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.to", RbOFBoUMiGshbGjp["conversationID"])]),
                                    Filter.and([Filter.equals("lastMessage.to", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.from", RbOFBoUMiGshbGjp["conversationID"])]),
                                  ]),
                                  Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
                                ]);
                                break;
                              case YIMEnum_ConversationType.Team:
                                QXsGIQPhlpBQAYXd = Filter.and([
                                  Filter.equals("lastMessage.to", RbOFBoUMiGshbGjp["conversationID"]),
                                  Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
                                ]);
                                break;
                              case YIMEnum_ConversationType.ChatRoom:
                                break;
                              default:
                                break;
                            }
                            final OsvfXWWAnXEAmcwJ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.MvRDbZWvZkgQtMaI<_YIMTable_Conversation>(
                              _YIMTableName.Conversation,
                              (dLVkEuTMmrBJBJeI) => dLVkEuTMmrBJBJeI!..unRead = int.parse(RbOFBoUMiGshbGjp["unReadCount"].toString()),
                              AssMtxrsCpVcieAX: (map) => _YIMTable_Conversation.fromJson(map),
                              IaZSeQoXPmnqurCt: Finder(filter: QXsGIQPhlpBQAYXd),
                            );
                            if (!OsvfXWWAnXEAmcwJ) return;
                            if (i >= kVExwhjmVJPOYwEt.length - 1) {
                              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
                              });
                              Filter? zIeqXzcaEvxPpBIs;
                              switch (YIMEnum_ConversationType.from(RbOFBoUMiGshbGjp["conversationType"].toString())) {
                                case YIMEnum_ConversationType.P2P:
                                  zIeqXzcaEvxPpBIs = Filter.and([
                                    Filter.or([
                                      Filter.and([Filter.equals("lastMessage.from", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.to", RbOFBoUMiGshbGjp["conversationID"])]),
                                      Filter.and([Filter.equals("lastMessage.to", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.from", RbOFBoUMiGshbGjp["conversationID"])]),
                                    ]),
                                    Filter.equals("lastMessage.conversationType", RbOFBoUMiGshbGjp["conversationType"]),
                                  ]);
                                  break;
                                case YIMEnum_ConversationType.Team:
                                  zIeqXzcaEvxPpBIs = Filter.and([
                                    Filter.equals("lastMessage.to", RbOFBoUMiGshbGjp["conversationID"]),
                                    Filter.equals("lastMessage.conversationType", RbOFBoUMiGshbGjp["conversationType"]),
                                  ]);
                                  break;
                              }
                              final BvJTVmnFgEFpwQtQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.mIfLIZlbruepMfyA<_YIMTable_Conversation>(
                                _YIMTableName.Conversation,
                                AssMtxrsCpVcieAX: (map) => _YIMTable_Conversation.fromJson(map),
                                IaZSeQoXPmnqurCt: Finder(filter: zIeqXzcaEvxPpBIs),
                              );
                              if (BvJTVmnFgEFpwQtQ == null) {
                                return;
                              }
                              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.OWWGiDgcnjSHuYOM?.call(BvJTVmnFgEFpwQtQ.map((e) => YIMConversation(RbOFBoUMiGshbGjp: e)).toList());
                              });
                            }
                          });
                        }
                      }
                    },
                  );
                }
              },
            );
          }
        });
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          ISQryhAENMpYxKJy?.call(YIMResult<YIMEnum_LoginResult>(code: YIMEnum_LoginResult.Success, msg: "success"));
        });
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          ISQryhAENMpYxKJy = null;
        });
        //将历史的发送中消息,置为失败状态
        await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.wlEqwXkgMLSssAPA(
          _YIMTableName.Message,
          () {
            return {"messageState": YIMEnum_MessageState.Fail.rawValue};
          },
          IaZSeQoXPmnqurCt: Finder(filter: Filter.equals("messageState", YIMEnum_MessageState.Sending.rawValue)),
        );
        TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.mfRDqyLVGZXBnAUb(RpTfEMreuKahSHPQ: (lmLThEnDJPcSwcIu) async {
          if (lmLThEnDJPcSwcIu == null) return;
          for (var RbOFBoUMiGshbGjp in lmLThEnDJPcSwcIu) {
            await TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.RNFknVLCuPJTcxUh(RbOFBoUMiGshbGjp.lastMessage.conversationType, RbOFBoUMiGshbGjp.lastMessage.getConversatinoID());
          }
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
          });
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(lmLThEnDJPcSwcIu);
          });
        });
        break;
      case "conversation_top_update":
        List<String> OCReTgXehKqOCmEk = (GlIXyNxjXRjKcoLX["conversationTops"] as List).map((element) => element.toString()).toList();
        RgTTqSEnxRPxFwzl.OCReTgXehKqOCmEk = OCReTgXehKqOCmEk;
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
        });
        if (TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ != null) {
          TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.mfRDqyLVGZXBnAUb(RpTfEMreuKahSHPQ: (lmLThEnDJPcSwcIu) {
            if (lmLThEnDJPcSwcIu == null) return;
            RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
              TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(lmLThEnDJPcSwcIu);
            });
          });
        }
        break;
      case "disturbs_p2p_update":
        List<String> bXEblboFFkAkeobo = (GlIXyNxjXRjKcoLX["disturbs_p2p"] as List).map((element) => element.toString()).toList();
        RgTTqSEnxRPxFwzl.bXEblboFFkAkeobo = bXEblboFFkAkeobo;
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
        });
        if (TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ != null) {
          TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.mfRDqyLVGZXBnAUb(RpTfEMreuKahSHPQ: (lmLThEnDJPcSwcIu) {
            if (lmLThEnDJPcSwcIu == null) return;
            RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
              TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(lmLThEnDJPcSwcIu);
            });
          });
        }
        break;
      case "disturbs_team_update":
        List<String> OhYLrUkfbGMMhiMF = (GlIXyNxjXRjKcoLX["disturbs_team"] as List).map((element) => element.toString()).toList();
        RgTTqSEnxRPxFwzl.OhYLrUkfbGMMhiMF = OhYLrUkfbGMMhiMF;
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
        });
        if (TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ != null) {
          TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.mfRDqyLVGZXBnAUb(RpTfEMreuKahSHPQ: (lmLThEnDJPcSwcIu) {
            if (lmLThEnDJPcSwcIu == null) return;
            RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
              TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(lmLThEnDJPcSwcIu);
            });
          });
        }
        break;
      case "kick":
        TOguPJtIdcSeGZGX.rBuDdhLENqbkPPvE.qDxtWkjjtTlxolXd();
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.tNDrOcWSgCuSrPfS?.call(YIMResult<YIMEnum_OnlineState>(code: YIMEnum_OnlineState.Kick, msg: "Kicked by ${GlIXyNxjXRjKcoLX["device"]} device"));
        });
        break;
      case "kick_room":
        final RQwASHErKoEIPhJj = GlIXyNxjXRjKcoLX["roomID"] as String;
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.WCBoUsOOywGRNMiw?.call(RQwASHErKoEIPhJj);
        });
        break;
      case "close_room":
        final RQwASHErKoEIPhJj = GlIXyNxjXRjKcoLX["roomID"] as String;
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.vyIXosozvQqttwOK?.call(RQwASHErKoEIPhJj);
        });
        break;
      case "message":
      case "message_sync":
        final kVExwhjmVJPOYwEt = (GlIXyNxjXRjKcoLX["messages"] as List<dynamic>).map((element) => YIMMessage(kmHFaoDMcNOfZpRN: _YIMTable_Message.fromJson(element))).toList();
        for (var kmHFaoDMcNOfZpRN in kVExwhjmVJPOYwEt) {
          Filter? zIeqXzcaEvxPpBIs;
          switch (kmHFaoDMcNOfZpRN.conversationType) {
            case YIMEnum_ConversationType.P2P:
              zIeqXzcaEvxPpBIs = Filter.and([
                Filter.or([
                  Filter.and([Filter.equals("lastMessage.from", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.to", kmHFaoDMcNOfZpRN.getConversatinoID())]),
                  Filter.and([Filter.equals("lastMessage.to", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.from", kmHFaoDMcNOfZpRN.getConversatinoID())]),
                ]),
                Filter.equals("lastMessage.conversationType", kmHFaoDMcNOfZpRN.conversationType.rawValue),
              ]);
              break;
            case YIMEnum_ConversationType.Team:
              zIeqXzcaEvxPpBIs = Filter.and([
                Filter.equals("lastMessage.to", kmHFaoDMcNOfZpRN.getConversatinoID()),
                Filter.equals("lastMessage.conversationType", kmHFaoDMcNOfZpRN.conversationType.rawValue),
              ]);
              break;
            case YIMEnum_ConversationType.ChatRoom:
              zIeqXzcaEvxPpBIs = Filter.and([
                Filter.equals("lastMessage.conversationType", kmHFaoDMcNOfZpRN.conversationType.rawValue),
              ]);
              break;
          }
          var BvJTVmnFgEFpwQtQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.mIfLIZlbruepMfyA<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            AssMtxrsCpVcieAX: (map) => _YIMTable_Conversation.fromJson(map),
            IaZSeQoXPmnqurCt: Finder(filter: zIeqXzcaEvxPpBIs),
          );
          if (BvJTVmnFgEFpwQtQ == null) {
            return;
          }
          await fNwLXAZFaVtnCIks(kmHFaoDMcNOfZpRN, fFAvVZnQADWGnDMJ == "message", RpTfEMreuKahSHPQ: (HNMwGFsvIPdZudoP) async {
            if (!HNMwGFsvIPdZudoP) return;
            final GxjJVVZTfAAFSOOe = BvJTVmnFgEFpwQtQ!.isEmpty;
            BvJTVmnFgEFpwQtQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.mIfLIZlbruepMfyA<_YIMTable_Conversation>(
              _YIMTableName.Conversation,
              AssMtxrsCpVcieAX: (map) => _YIMTable_Conversation.fromJson(map),
              IaZSeQoXPmnqurCt: Finder(filter: zIeqXzcaEvxPpBIs),
            );
            if (BvJTVmnFgEFpwQtQ == null) {
              return;
            }
            if ([YIMEnum_ConversationType.P2P, YIMEnum_ConversationType.Team].contains(kmHFaoDMcNOfZpRN.conversationType)) {
              if (GxjJVVZTfAAFSOOe) {
                //新增的会话
                RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                  TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.OWWGiDgcnjSHuYOM?.call(BvJTVmnFgEFpwQtQ!.map((e) => YIMConversation(RbOFBoUMiGshbGjp: e)).toList());
                });
              } else {
                //原有的会话
                RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                  TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(BvJTVmnFgEFpwQtQ!.map((e) => YIMConversation(RbOFBoUMiGshbGjp: e)).toList());
                });
              }
              RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
                TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
              });
            }
          });
        }
        break;
      case "broadcast":
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.MPfiOHqskDIHbaeC?.call(YIMBroadcastMessage.fromJson(GlIXyNxjXRjKcoLX["message"]));
        });
        break;
      case "notification":
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.ZzMNrDrDSTxwMxQZ?.call(YIMNotificationMessage.fromJson(GlIXyNxjXRjKcoLX["message"]));
        });
        break;
      case "revoke":
      case "revoke_sync":
        for (final jJtPQPGAcqPcBkhS in (GlIXyNxjXRjKcoLX["messages"] as List<dynamic>)) {
          final kmHFaoDMcNOfZpRN = YIMRevokeMessage.fromJson(jJtPQPGAcqPcBkhS);
          if ([YIMEnum_ConversationType.P2P, YIMEnum_ConversationType.Team].contains(kmHFaoDMcNOfZpRN.conversationType)) {
            final vSXbWzDRaLqgPsWU = await TOguPJtIdcSeGZGX.vlfiqAfysAISnRJq.xUtxjdNKjAhbzQLC(
              kmHFaoDMcNOfZpRN.conversationType,
              kmHFaoDMcNOfZpRN.messageID,
            );
            if (!vSXbWzDRaLqgPsWU) return;
            final waFAsRUSReeHKfTO = await TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.RNFknVLCuPJTcxUh(
              kmHFaoDMcNOfZpRN.conversationType,
              kmHFaoDMcNOfZpRN.conversationID,
              // unRead: _YIMEnum_ConversatypeUnRead.Minus,
            );
            if (!waFAsRUSReeHKfTO) return;
            RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
              TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
            });
            Filter? zIeqXzcaEvxPpBIs;
            switch (kmHFaoDMcNOfZpRN.conversationType) {
              case YIMEnum_ConversationType.P2P:
                zIeqXzcaEvxPpBIs = Filter.and([
                  Filter.or([
                    Filter.and([Filter.equals("lastMessage.from", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.to", kmHFaoDMcNOfZpRN.conversationID)]),
                    Filter.and([Filter.equals("lastMessage.to", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.from", kmHFaoDMcNOfZpRN.conversationID)]),
                  ]),
                  Filter.equals("lastMessage.conversationType", kmHFaoDMcNOfZpRN.conversationType.rawValue),
                ]);
                break;
              case YIMEnum_ConversationType.Team:
                zIeqXzcaEvxPpBIs = Filter.and([
                  Filter.equals("lastMessage.to", kmHFaoDMcNOfZpRN.conversationID),
                  Filter.equals("lastMessage.conversationType", kmHFaoDMcNOfZpRN.conversationType.rawValue),
                ]);
                break;
            }
            final BvJTVmnFgEFpwQtQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.mIfLIZlbruepMfyA<_YIMTable_Conversation>(
              _YIMTableName.Conversation,
              AssMtxrsCpVcieAX: (map) => _YIMTable_Conversation.fromJson(map),
              IaZSeQoXPmnqurCt: Finder(filter: zIeqXzcaEvxPpBIs),
            );
            if (BvJTVmnFgEFpwQtQ == null) {
              return;
            }
            RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
              TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(BvJTVmnFgEFpwQtQ.map((e) => YIMConversation(RbOFBoUMiGshbGjp: e)).toList());
            });
          }
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.malksQFeIhtGHurt?.call(kmHFaoDMcNOfZpRN);
          });
        }
        break;
      case "receipt_p2p":
        List<String> UeMmyGDuVsWfKmxZ = (GlIXyNxjXRjKcoLX["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final fRzBwkFTgPAvTbAa in UeMmyGDuVsWfKmxZ) {
          final eefnNiLIEupRyXVP = await TOguPJtIdcSeGZGX.vlfiqAfysAISnRJq.rpcGzxzmwAGAbiws(
            YIMEnum_ConversationType.P2P,
            fRzBwkFTgPAvTbAa,
            false,
          );
          if (!eefnNiLIEupRyXVP) return;
          final waFAsRUSReeHKfTO = await TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.RNFknVLCuPJTcxUh(
            YIMEnum_ConversationType.P2P,
            fRzBwkFTgPAvTbAa,
          );
          if (!waFAsRUSReeHKfTO) return;
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
          });
          final BvJTVmnFgEFpwQtQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.mIfLIZlbruepMfyA<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            AssMtxrsCpVcieAX: (map) => _YIMTable_Conversation.fromJson(map),
            IaZSeQoXPmnqurCt: Finder(
              filter: Filter.and([
                Filter.or([
                  Filter.and([Filter.equals("lastMessage.from", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.to", fRzBwkFTgPAvTbAa)]),
                  Filter.and([Filter.equals("lastMessage.to", RgTTqSEnxRPxFwzl.KXZihjAgwIbphLgM), Filter.equals("lastMessage.from", fRzBwkFTgPAvTbAa)]),
                ]),
                Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.P2P.rawValue),
              ]),
            ),
          );
          if (BvJTVmnFgEFpwQtQ == null) {
            return;
          }
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(BvJTVmnFgEFpwQtQ.map((e) => YIMConversation(RbOFBoUMiGshbGjp: e)).toList());
          });
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.NWKVmrPNtrAWxtHh?.call(fRzBwkFTgPAvTbAa);
          });
        }
        break;
      case "receipt_team":
        List<String> UeMmyGDuVsWfKmxZ = (GlIXyNxjXRjKcoLX["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final fRzBwkFTgPAvTbAa in UeMmyGDuVsWfKmxZ) {
          final eefnNiLIEupRyXVP = await TOguPJtIdcSeGZGX.vlfiqAfysAISnRJq.rpcGzxzmwAGAbiws(
            YIMEnum_ConversationType.Team,
            fRzBwkFTgPAvTbAa,
            false,
          );
          if (!eefnNiLIEupRyXVP) return;
          final waFAsRUSReeHKfTO = await TOguPJtIdcSeGZGX.qcEqJQAppCXqglUJ.RNFknVLCuPJTcxUh(
            YIMEnum_ConversationType.Team,
            fRzBwkFTgPAvTbAa,
          );
          if (!waFAsRUSReeHKfTO) return;
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.lEMTnluMYwHrTztH?.call();
          });
          final BvJTVmnFgEFpwQtQ = await RgTTqSEnxRPxFwzl.XYSDgLkjooSuxQxj.mIfLIZlbruepMfyA<_YIMTable_Conversation>(
            _YIMTableName.Conversation,
            AssMtxrsCpVcieAX: (map) => _YIMTable_Conversation.fromJson(map),
            IaZSeQoXPmnqurCt: Finder(
              filter: Filter.and([
                Filter.equals("lastMessage.to", fRzBwkFTgPAvTbAa),
                Filter.equals("lastMessage.conversationType", YIMEnum_ConversationType.Team.rawValue),
              ]),
            ),
          );
          if (BvJTVmnFgEFpwQtQ == null) {
            return;
          }
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.PWZOJJpoenSGGruJ?.call(BvJTVmnFgEFpwQtQ.map((e) => YIMConversation(RbOFBoUMiGshbGjp: e)).toList());
          });
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.NWKVmrPNtrAWxtHh?.call(fRzBwkFTgPAvTbAa);
          });
        }
        break;
      case "receipt_room":
        List<String> UeMmyGDuVsWfKmxZ = (GlIXyNxjXRjKcoLX["conversationIDs"] as List).map((element) => element.toString()).toList();
        for (final fRzBwkFTgPAvTbAa in UeMmyGDuVsWfKmxZ) {
          RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
            TOguPJtIdcSeGZGX.TfAfmudNuGQoHhbb.NWKVmrPNtrAWxtHh?.call(fRzBwkFTgPAvTbAa);
          });
        }
        break;
      case "event_online":
        final nOAlHNjXrpdBABGF = GlIXyNxjXRjKcoLX["user"] as String;
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.UalvtaoefjqRhCXH.CZrZcadnYZEOKPIO?.call(nOAlHNjXrpdBABGF, YIMEnum_EventOnline.Online);
        });
        break;
      case "event_offline":
        final nOAlHNjXrpdBABGF = GlIXyNxjXRjKcoLX["user"] as String;
        RgTTqSEnxRPxFwzl.CfKfGgNeZazCORbX.LrMzRSTzQmONyVIm(() {
          TOguPJtIdcSeGZGX.UalvtaoefjqRhCXH.CZrZcadnYZEOKPIO?.call(nOAlHNjXrpdBABGF, YIMEnum_EventOnline.Offline);
        });
        break;
      case "update_user":
        RgTTqSEnxRPxFwzl.lyCZGqmwzLKqDevq = YIMUser.fromJson(GlIXyNxjXRjKcoLX["user"]);
    }
  });
}