compareBlockedContactListForUpdatedState method
void
compareBlockedContactListForUpdatedState()
Implementation
void compareBlockedContactListForUpdatedState() {
blockContactList.forEach(
(c) {
var index =
baseBlockedList.indexWhere((e) => e.contact!.atSign == c!.atSign);
if (index > -1) {
baseBlockedList[index] = BaseContact(
c,
isBlocking: baseBlockedList[index].isBlocking,
isMarkingFav: baseBlockedList[index].isMarkingFav,
isDeleting: baseBlockedList[index].isDeleting,
);
} else {
baseBlockedList.add(
BaseContact(
c,
isBlocking: false,
isMarkingFav: false,
isDeleting: false,
),
);
}
},
);
// checking to remove unblocked atsigns from baseBlockedList.
var atsignsToRemove = <String>[];
baseBlockedList.forEach((baseContact) {
var index = blockContactList.indexWhere(
(e) => e!.atSign == baseContact.contact!.atSign,
);
if (index == -1) {
atsignsToRemove.add(baseContact.contact!.atSign!);
}
});
atsignsToRemove.forEach((e) {
baseBlockedList.removeWhere((element) => element.contact!.atSign == e);
});
}