getChatHistory method
Implementation
Future<void> getChatHistory({String? atsign}) async {
try {
chatHistory = [];
var key = AtKey()
..key = storageKey +
(isGroupChat ? groupChatId! : '') +
(atsign ?? chatWithAtSign ?? ' ').substring(1)
..sharedBy = currentAtSign!
..metadata = Metadata();
var keyValue = await atClientInstance.get(key).catchError((e) {
print('error in get ${e.errorCode} ${e.errorMessage}');
});
// ignore: unnecessary_null_comparison
if (keyValue != null && keyValue.value != null) {
chatHistoryMessages = json.decode((keyValue.value) as String) as List?;
chatHistoryMessages!.forEach((value) {
var message = Message.fromJson((value));
chatHistory.insert(0, message);
});
chatSink.add(chatHistory);
} else {
chatHistoryMessages = [];
chatSink.add(chatHistory);
}
var referenceKey = chatKey +
(isGroupChat ? groupChatId! : '') +
(chatHistory.isEmpty ? '' : chatHistory[0].time.toString()) +
currentAtSign!;
await checkForMissedMessages(referenceKey);
} catch (error) {
print('Error in getting chat -> $error');
}
}