stub of new cache

This commit is contained in:
Dan Ballard 2022-01-18 18:31:10 -05:00
parent e7b9f5bb96
commit d5cb37ed9c
2 changed files with 28 additions and 4 deletions

View File

@ -19,7 +19,6 @@ class ContactInfoState extends ChangeNotifier {
late int _totalMessages = 0;
late DateTime _lastMessageTime;
late Map<String, GlobalKey<MessageRowState>> keys;
late List<MessageCache?> messageCache;
int _newMarker = 0;
DateTime _newMarkerClearAt = DateTime.now();
@ -198,7 +197,7 @@ class ContactInfoState extends ChangeNotifier {
}
void updateMessageCache(int conversation, int messageID, DateTime timestamp, String senderHandle, String senderImage, bool isAuto, String data) {
this.messageCache.insert(0, MessageCache(MessageMetadata(profileOnion, conversation, messageID, timestamp, senderHandle, senderImage, "", {}, false, false, isAuto), data));
this.messageCache.insert(0, MessageInfo(MessageMetadata(profileOnion, conversation, messageID, timestamp, senderHandle, senderImage, "", {}, false, false, isAuto), data));
this.totalMessages += 1;
}

View File

@ -1,7 +1,32 @@
import 'message.dart';
class MessageCache {
class MessageInfo {
final MessageMetadata metadata;
final String wrapper;
MessageCache(this.metadata, this.wrapper);
MessageInfo(this.metadata, this.wrapper);
}
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;
}
}