@@ -93,32 +93,42 @@ class MessageStoreImpl with MessageStore {
93
93
}
94
94
95
95
void handleUpdateMessageEvent (UpdateMessageEvent event) {
96
+ _handleUpdateMessageEventTimestamp (event);
96
97
_handleUpdateMessageEventContent (event);
97
98
// TODO(#150): Handle message moves. The views' recipient headers
98
99
// may need updating, and consequently showSender too.
100
+ for (final view in _messageListViews) {
101
+ view.notifyListenersIfAnyMessagePresent (event.messageIds);
102
+ }
99
103
}
100
104
101
- void _handleUpdateMessageEventContent (UpdateMessageEvent event) {
102
- final message = messages[event.messageId];
103
- if (message == null ) return ;
104
-
105
+ void _handleUpdateMessageEventTimestamp (UpdateMessageEvent event) {
105
106
// TODO(server-5): Cut this fallback; rely on renderingOnly from FL 114
106
107
final isRenderingOnly = event.renderingOnly ?? (event.userId == null );
107
- if (event.editTimestamp != null && ! isRenderingOnly) {
108
+ if (event.editTimestamp == null || isRenderingOnly) {
108
109
// A rendering-only update gets omitted from the message edit history,
109
110
// and [Message.lastEditTimestamp] is the last timestamp of that history.
110
111
// So on a rendering-only update, the timestamp doesn't get updated.
112
+ return ;
113
+ }
114
+
115
+ for (final messageId in event.messageIds) {
116
+ final message = messages[messageId];
117
+ if (message == null ) continue ;
111
118
message.lastEditTimestamp = event.editTimestamp;
112
119
}
120
+ }
113
121
114
- message.flags = event.flags;
122
+ void _handleUpdateMessageEventContent (UpdateMessageEvent event) {
123
+ final message = messages[event.messageId];
124
+ if (message == null ) return ;
115
125
126
+ message.flags = event.flags;
116
127
if (event.renderedContent != null ) {
117
128
assert (message.contentType == 'text/html' ,
118
129
"Message contentType was ${message .contentType }; expected text/html." );
119
130
message.content = event.renderedContent! ;
120
131
}
121
-
122
132
if (event.isMeMessage != null ) {
123
133
message.isMeMessage = event.isMeMessage! ;
124
134
}
0 commit comments