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