setReceipts method
Implementation
@override
setReceipts(MessageReceipt receipt) {
for (int i = 0; i < list.length; i++) {
Conversation conversation = list[i];
if (conversation.conversationType == ReceiverTypeConstants.user &&
receipt.sender.uid == ((conversation.conversationWith as User).uid)) {
BaseMessage? lastMessage = conversation.lastMessage;
//Check if receipt type is delivered
if (lastMessage != null &&
lastMessage.deliveredAt == null &&
receipt.receiptType == ReceiptTypeConstants.delivered &&
receipt.messageId == lastMessage.id) {
lastMessage.deliveredAt = receipt.deliveredAt;
list[i].lastMessage = lastMessage;
update();
break;
} else if (lastMessage != null &&
lastMessage.readAt == null &&
receipt.receiptType == ReceiptTypeConstants.read &&
receipt.messageId == lastMessage.id) {
//if receipt type is read
lastMessage.readAt = receipt.readAt;
list[i].lastMessage = lastMessage;
update();
break;
}
} else if(conversation.conversationType == ReceiverTypeConstants.group){
BaseMessage? lastMessage = conversation.lastMessage;
//Check if receipt type is delivered to all
if (lastMessage != null &&
lastMessage.deliveredAt == null &&
receipt.receiptType == ReceiptTypeConstants.deliveredToAll &&
receipt.messageId == lastMessage.id) {
lastMessage.deliveredAt = receipt.deliveredAt;
list[i].lastMessage = lastMessage;
update();
break;
} else if (lastMessage != null &&
lastMessage.readAt == null &&
receipt.receiptType == ReceiptTypeConstants.readByAll &&
receipt.messageId == lastMessage.id) {
//if receipt type is read by all
lastMessage.readAt = receipt.readAt;
list[i].lastMessage = lastMessage;
update();
break;
}
}
}
}