|
|
|
@ -52,7 +52,8 @@ class ContactInfoState extends ChangeNotifier {
|
|
|
|
|
late String _savePeerHistory;
|
|
|
|
|
late int _unreadMessages = 0;
|
|
|
|
|
late int _totalMessages = 0;
|
|
|
|
|
late DateTime _lastMessageTime;
|
|
|
|
|
late DateTime _lastMessageReceivedTime; // last time we received a message, for sorting
|
|
|
|
|
late DateTime _lastMessageSentTime; // last time a message reported being sent, for display
|
|
|
|
|
late Map<String, GlobalKey<MessageRowState>> keys;
|
|
|
|
|
int _newMarkerMsgIndex = -1;
|
|
|
|
|
late MessageCache messageCache;
|
|
|
|
@ -106,7 +107,8 @@ class ContactInfoState extends ChangeNotifier {
|
|
|
|
|
this._totalMessages = numMessages;
|
|
|
|
|
this._unreadMessages = numUnread;
|
|
|
|
|
this._savePeerHistory = savePeerHistory;
|
|
|
|
|
this._lastMessageTime = lastMessageTime == null ? DateTime.fromMillisecondsSinceEpoch(0) : lastMessageTime;
|
|
|
|
|
this._lastMessageReceivedTime = lastMessageTime == null ? DateTime.fromMillisecondsSinceEpoch(0) : lastMessageTime;
|
|
|
|
|
this._lastMessageSentTime = _lastMessageReceivedTime;
|
|
|
|
|
this._server = server;
|
|
|
|
|
this._archived = archived;
|
|
|
|
|
this._notificationPolicy = notificationPolicyFromString(notificationPolicy);
|
|
|
|
@ -256,10 +258,21 @@ class ContactInfoState extends ChangeNotifier {
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DateTime get lastMessageTime => this._lastMessageTime;
|
|
|
|
|
// This is last message received time (local) and to be used for sorting only
|
|
|
|
|
// for instance, group sync, we want to pop to the top, so we set to time.Now() for new messages
|
|
|
|
|
// but it should not be used for display
|
|
|
|
|
DateTime get lastMessageReceivedTime => this._lastMessageReceivedTime;
|
|
|
|
|
|
|
|
|
|
set lastMessageTime(DateTime newVal) {
|
|
|
|
|
this._lastMessageTime = newVal;
|
|
|
|
|
set lastMessageReceivedTime(DateTime newVal) {
|
|
|
|
|
this._lastMessageReceivedTime = newVal;
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This is last message sent time and is based on message reports of sent times
|
|
|
|
|
// this can be used to display in the contact list a last time a message was received
|
|
|
|
|
DateTime get lastMessageSentTime => this._lastMessageSentTime;
|
|
|
|
|
set lastMessageSentTime(DateTime newVal) {
|
|
|
|
|
this._lastMessageSentTime = newVal;
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -322,7 +335,8 @@ class ContactInfoState extends ChangeNotifier {
|
|
|
|
|
_newMarkerMsgIndex++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this._lastMessageTime = timestamp;
|
|
|
|
|
this._lastMessageReceivedTime = timestamp;
|
|
|
|
|
this._lastMessageSentTime = timestamp;
|
|
|
|
|
this.messageCache.addNew(profileOnion, identifier, messageID, timestamp, senderHandle, senderImage, isAuto, data, contenthash);
|
|
|
|
|
this.totalMessages += 1;
|
|
|
|
|
|
|
|
|
|