compareBlockedContactListForUpdatedState method
void
compareBlockedContactListForUpdatedState()
compares blockContactList with baseBlockedList and assigns isBlocking
, isMarkingFav
and isDeleting
for existing atsigns in baseBlockedList.
Implementation
void compareBlockedContactListForUpdatedState() {
for (var c in blockContactList) {
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>[];
for (var baseContact in baseBlockedList) {
var index = blockContactList.indexWhere(
(e) => e.atSign == baseContact.contact!.atSign,
);
if (index == -1) {
atsignsToRemove.add(baseContact.contact!.atSign!);
}
}
for (var e in atsignsToRemove) {
baseBlockedList.removeWhere((element) => element.contact!.atSign == e);
}
}