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