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();
  }));
}