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