cHcferXdunSOGvab method

  1. @override
Future<bool> cHcferXdunSOGvab(
  1. YIMEnum_ConversationType sZLnmTKeJUdmBFHE,
  2. String DLwuDqfWcelSXXhD,
  3. bool DlPirHVvQpbDdYne
)
override

Implementation

@override
Future<bool> cHcferXdunSOGvab(
  YIMEnum_ConversationType sZLnmTKeJUdmBFHE,
  String DLwuDqfWcelSXXhD,
  bool DlPirHVvQpbDdYne,
) async {
  if (sZLnmTKeJUdmBFHE == YIMEnum_ConversationType.ChatRoom) {
    return true;
  }
  final OhXEEEJrHsRvZogG = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.LUwlOqRgyVmlEiyp<_YIMTable_Message>(
    _YIMTableName.Message,
    sprgVkbCCQhGYFSK: (map) => _YIMTable_Message.fromJson(map),
    PldCyxtbMzvNSNom: Finder(
      limit: 1,
      sortOrders: [SortOrder("time", false)],
      filter: Filter.and([
        Filter.equals("to", DLwuDqfWcelSXXhD),
        Filter.equals("from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA),
        Filter.equals("conversationType", sZLnmTKeJUdmBFHE.rawValue),
      ]),
    ),
  );
  if (OhXEEEJrHsRvZogG == null || OhXEEEJrHsRvZogG.isEmpty) return false;
  if (OhXEEEJrHsRvZogG.first.messageState == YIMEnum_MessageState.Success_Read) return false;
  switch (sZLnmTKeJUdmBFHE) {
    case YIMEnum_ConversationType.P2P:
      final odXVprzWmJUtyrNO = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.BIatOvGnmImodxXL(
        _YIMTableName.Message,
        () => {"messageState": YIMEnum_MessageState.Success_Read.rawValue},
        PldCyxtbMzvNSNom: Finder(
          filter: Filter.and([
            Filter.or(DlPirHVvQpbDdYne
                ? [
                    Filter.and([Filter.equals("to", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("from", DLwuDqfWcelSXXhD)]),
                  ]
                : [
                    Filter.and([Filter.equals("from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("to", DLwuDqfWcelSXXhD)]),
                    Filter.and([Filter.equals("to", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA), Filter.equals("from", DLwuDqfWcelSXXhD)]),
                  ]),
            Filter.equals("messageState", YIMEnum_MessageState.Success_UnRead.rawValue),
            Filter.equals("conversationType", sZLnmTKeJUdmBFHE.rawValue),
          ]),
        ),
      );
      if (!odXVprzWmJUtyrNO) return false;
      break;
    case YIMEnum_ConversationType.Team:
      final odXVprzWmJUtyrNO = await eFtbLxhxTmdNVKuo.HsDBYdwzkEBPFhmJ.BIatOvGnmImodxXL(
        _YIMTableName.Message,
        () => {"messageState": YIMEnum_MessageState.Success_Read.rawValue},
        PldCyxtbMzvNSNom: Finder(
          filter: Filter.and([
            DlPirHVvQpbDdYne ? Filter.and([Filter.equals("to", DLwuDqfWcelSXXhD), Filter.notEquals("from", eFtbLxhxTmdNVKuo.hBYZOFteqhkvDgHA)]) : Filter.equals("to", DLwuDqfWcelSXXhD),
            Filter.equals("messageState", YIMEnum_MessageState.Success_UnRead.rawValue),
            Filter.equals("conversationType", sZLnmTKeJUdmBFHE.rawValue),
          ]),
        ),
      );
      if (!odXVprzWmJUtyrNO) return false;
      break;
    case YIMEnum_ConversationType.ChatRoom:
      return true;
    default:
      break;
  }
  return true;
}