getChatHistory method
Implementation
Future<void> getChatHistory({String? atsign}) async {
try {
chatHistory = [];
var key = AtKey()
..key = storageKey + (isGroupChat ? groupChatId! : '') + (chatWithAtSign ?? ' ').substring(1)
..sharedBy = currentAtSign!
..sharedWith = chatWithAtSign
..metadata = Metadata();
key.metadata.ccd = true;
var keyValue = await atClientManager.atClient.get(key).catchError((e) {
return AtValue();
});
// ignore: unnecessary_null_comparison
if (keyValue != null && keyValue.value != null) {
chatHistoryMessages = json.decode((keyValue.value) as String) as List;
} else {
chatHistoryMessages = [];
}
// get received messages
key.key =
storageKey + (isGroupChat ? groupChatId! : '') + (chatWithAtSign != null ? currentAtSign! : ' ').substring(1);
key.sharedBy = chatWithAtSign;
key.sharedWith = currentAtSign!;
keyValue = await atClientManager.atClient.get(key).catchError((e) {
return AtValue();
});
if (keyValue.value != null) {
chatHistoryMessagesOther = json.decode((keyValue.value) as String) as List;
} else {
chatHistoryMessagesOther = [];
}
chatHistory = await interleave(chatHistoryMessages, chatHistoryMessagesOther);
chatSink.add(chatHistory);
} catch (error) {
chatSink.add(chatHistory);
}
}