init method

void init()

Implementation

void init() {
  fetchBlackList();

  // 断网重连,重新拉取数据

  subscriptions.add(
    NimCore.instance.loginService.onDataSync.listen((event) {
      if (event.type == NIMDataSyncType.nimDataSyncMain &&
          event.state == NIMDataSyncState.nimDataSyncStateCompleted) {
        fetchBlackList();
      }
    }),
  );

  subscriptions.add(
    ContactRepo.registerBlockListRemovedObserver().listen((event) {
      blackListUsers.removeWhere((element) => event == element.accountId);
      notifyListeners();
    }),
  );

  subscriptions.add(
    ContactRepo.registerBlockListAddedObserver().listen((event) {
      int index = blackListUsers.indexWhere(
        (element) => element.accountId == event.accountId,
      );
      if (index >= 0) {
        blackListUsers[index] = event;
      } else {
        blackListUsers.add(event);
      }
      notifyListeners();
    }),
  );

  subscriptions.add(
    ContactRepo.registerFriendInfoChangedObserver().listen((event) {
      int index = blackListUsers.indexWhere(
        (element) => element.accountId == event.accountId,
      );
      if (index >= 0 && blackListUsers[index].name != event.alias) {
        blackListUsers[index].name = event.alias;
      }
      notifyListeners();
    }),
  );

  subscriptions.add(
    ContactRepo.registerUserProfileChangedObserver().listen((event) {
      for (var e in event) {
        int index = blackListUsers.indexWhere(
          (element) => element.accountId == e.accountId,
        );
        if (index >= 0) {
          blackListUsers[index] = e;
        }
      }
      notifyListeners();
    }),
  );
}