cwtch-ui/lib/models/messagecache.dart

32 lines
876 B
Dart
Raw Normal View History

import 'message.dart';
2022-01-18 23:31:10 +00:00
class MessageInfo {
final MessageMetadata metadata;
final String wrapper;
2022-01-18 23:31:10 +00:00
MessageInfo(this.metadata, this.wrapper);
2022-01-19 21:58:52 +00:00
}
2022-01-18 23:31:10 +00:00
class MessageCache {
late Map<int, MessageInfo> cache;
late List<int?> cacheByIndex;
MessageCache() {
this.cache = {};
this.cacheByIndex = List.empty(growable: true);
}
void addNew(int conversation, int messageID, DateTime timestamp, String senderHandle, String senderImage, bool isAuto, String data) {
this.cache[messageID] = MessageInfo(MessageMetadata(profileOnion, conversation, messageID, timestamp, senderHandle, senderImage, "", {}, false, false, isAuto), data);
this.cacheByIndex.insert(0, messageID);
}
void bumpMessageCache() {
this.messageCache.insert(0, null);
this.totalMessages += 1;
}
void ackCache(int messageID) {
cache[messageID]?.metadata.ackd = true;
}
}