From d5cb37ed9cb4c27941c7602db526dffc47689622 Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Tue, 18 Jan 2022 18:31:10 -0500 Subject: [PATCH] stub of new cache --- lib/models/contact.dart | 3 +-- lib/models/messagecache.dart | 29 +++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/lib/models/contact.dart b/lib/models/contact.dart index 55076712..5f632df7 100644 --- a/lib/models/contact.dart +++ b/lib/models/contact.dart @@ -19,7 +19,6 @@ class ContactInfoState extends ChangeNotifier { late int _totalMessages = 0; late DateTime _lastMessageTime; late Map> keys; - late List 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; } diff --git a/lib/models/messagecache.dart b/lib/models/messagecache.dart index f7fb1085..166d2d1f 100644 --- a/lib/models/messagecache.dart +++ b/lib/models/messagecache.dart @@ -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 cache; + late List 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; + } +} \ No newline at end of file