Skip to content

Commit c5cd661

Browse files
committed
api [nfc]: Rename streamId to channelId in ChannelMessage
Fixes parts of zulip#631
1 parent f6f5608 commit c5cd661

12 files changed

+35
-34
lines changed

lib/api/model/model.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,8 @@ class ChannelMessage extends Message {
577577
String get type => 'stream';
578578

579579
final String displayRecipient;
580-
final int streamId;
580+
@JsonKey(name: 'stream_id')
581+
final int channelId;
581582

582583
ChannelMessage({
583584
required super.client,
@@ -599,7 +600,7 @@ class ChannelMessage extends Message {
599600
required super.matchContent,
600601
required super.matchTopic,
601602
required this.displayRecipient,
602-
required this.streamId,
603+
required this.channelId,
603604
});
604605

605606
factory ChannelMessage.fromJson(Map<String, dynamic> json) =>

lib/api/model/model.g.dart

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/model/message_list.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ mixin _MessageSequence {
267267
@visibleForTesting
268268
bool haveSameRecipient(Message prevMessage, Message message) {
269269
if (prevMessage is ChannelMessage && message is ChannelMessage) {
270-
if (prevMessage.streamId != message.streamId) return false;
270+
if (prevMessage.channelId != message.channelId) return false;
271271
if (prevMessage.topic != message.topic) return false;
272272
} else if (prevMessage is DmMessage && message is DmMessage) {
273273
if (!_equalIdSequences(prevMessage.allRecipientIds, message.allRecipientIds)) {
@@ -359,12 +359,12 @@ class MessageListView with ChangeNotifier, _MessageSequence {
359359
case CombinedFeedNarrow():
360360
return switch (message) {
361361
ChannelMessage() =>
362-
store.isTopicVisible(message.streamId, message.topic),
362+
store.isTopicVisible(message.channelId, message.topic),
363363
DmMessage() => true,
364364
};
365365

366366
case StreamNarrow(:final streamId):
367-
assert(message is ChannelMessage && message.streamId == streamId);
367+
assert(message is ChannelMessage && message.channelId == streamId);
368368
if (message is! ChannelMessage) return false;
369369
return store.isTopicVisibleInStream(streamId, message.topic);
370370

lib/model/narrow.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class StreamNarrow extends Narrow {
7272

7373
@override
7474
bool containsMessage(Message message) {
75-
return message is ChannelMessage && message.streamId == streamId;
75+
return message is ChannelMessage && message.channelId == streamId;
7676
}
7777

7878
@override
@@ -95,7 +95,7 @@ class TopicNarrow extends Narrow implements SendableNarrow {
9595
const TopicNarrow(this.streamId, this.topic);
9696

9797
factory TopicNarrow.ofMessage(ChannelMessage message) {
98-
return TopicNarrow(message.streamId, message.topic);
98+
return TopicNarrow(message.channelId, message.topic);
9999
}
100100

101101
final int streamId;
@@ -104,7 +104,7 @@ class TopicNarrow extends Narrow implements SendableNarrow {
104104
@override
105105
bool containsMessage(Message message) {
106106
return (message is ChannelMessage
107-
&& message.streamId == streamId && message.topic == topic);
107+
&& message.channelId == streamId && message.topic == topic);
108108
}
109109

110110
@override

lib/model/unreads.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ class Unreads extends ChangeNotifier {
214214

215215
switch (message) {
216216
case ChannelMessage():
217-
_addLastInStreamTopic(message.id, message.streamId, message.topic);
217+
_addLastInStreamTopic(message.id, message.channelId, message.topic);
218218
case DmMessage():
219219
final narrow = DmNarrow.ofMessage(message, selfUserId: selfUserId);
220220
_addLastInDm(message.id, narrow);

lib/widgets/message_list.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ class ChannelMessageRecipientHeader extends StatelessWidget {
662662

663663
final topic = message.topic;
664664

665-
final subscription = store.subscriptions[message.streamId];
665+
final subscription = store.subscriptions[message.channelId];
666666
final Color backgroundColor;
667667
final Color iconColor;
668668
if (subscription != null) {
@@ -678,13 +678,13 @@ class ChannelMessageRecipientHeader extends StatelessWidget {
678678
if (!showStream) {
679679
streamWidget = const SizedBox(width: 16);
680680
} else {
681-
final stream = store.streams[message.streamId];
681+
final stream = store.streams[message.channelId];
682682
final streamName = stream?.name ?? message.displayRecipient; // TODO(log) if missing
683683

684684
streamWidget = GestureDetector(
685685
onTap: () => Navigator.push(context,
686686
MessageListPage.buildRoute(context: context,
687-
narrow: StreamNarrow(message.streamId))),
687+
narrow: StreamNarrow(message.channelId))),
688688
child: Row(
689689
crossAxisAlignment: CrossAxisAlignment.center,
690690
children: [

test/example_data.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -392,15 +392,15 @@ const _unreadMsgs = unreadMsgs;
392392

393393
DeleteMessageEvent deleteMessageEvent(List<ChannelMessage> messages) {
394394
assert(messages.isNotEmpty);
395-
final streamId = messages.first.streamId;
395+
final streamId = messages.first.channelId;
396396
final topic = messages.first.topic;
397-
assert(messages.every((m) => m.streamId == streamId));
397+
assert(messages.every((m) => m.channelId == streamId));
398398
assert(messages.every((m) => m.topic == topic));
399399
return DeleteMessageEvent(
400400
id: 0,
401401
messageIds: messages.map((message) => message.id).toList(),
402402
messageType: MessageType.stream,
403-
streamId: messages[0].streamId,
403+
streamId: messages[0].channelId,
404404
topic: messages[0].topic,
405405
);
406406
}
@@ -424,7 +424,7 @@ UpdateMessageEvent updateMessageEditEvent(
424424
messageIds: [messageId],
425425
flags: flags ?? origMessage.flags,
426426
editTimestamp: editTimestamp ?? 1234567890, // TODO generate timestamp
427-
origStreamId: origMessage is ChannelMessage ? origMessage.streamId : null,
427+
origStreamId: origMessage is ChannelMessage ? origMessage.channelId : null,
428428
newStreamId: null,
429429
propagateMode: null,
430430
origTopic: null,
@@ -456,7 +456,7 @@ UpdateMessageEvent updateMessageMoveEvent(
456456
messageIds: messages.map((message) => message.id).toList(),
457457
flags: origMessage.flags,
458458
editTimestamp: 1234567890, // TODO generate timestamp
459-
origStreamId: origMessage is ChannelMessage ? origMessage.streamId : null,
459+
origStreamId: origMessage is ChannelMessage ? origMessage.channelId : null,
460460
newStreamId: newStreamId,
461461
propagateMode: null,
462462
origTopic: origTopic,
@@ -487,7 +487,7 @@ UpdateMessageFlagsRemoveEvent updateMessageFlagsRemoveEvent(
487487
ChannelMessage() => UpdateMessageFlagsMessageDetail(
488488
type: MessageType.stream,
489489
mentioned: mentioned,
490-
streamId: message.streamId,
490+
streamId: message.channelId,
491491
topic: message.topic,
492492
userIds: null,
493493
),

test/model/message_list_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -931,10 +931,10 @@ void checkInvariants(MessageListView model) {
931931
if (message is! ChannelMessage) continue;
932932
switch (model.narrow) {
933933
case CombinedFeedNarrow():
934-
check(model.store.isTopicVisible(message.streamId, message.topic))
934+
check(model.store.isTopicVisible(message.channelId, message.topic))
935935
.isTrue();
936936
case StreamNarrow():
937-
check(model.store.isTopicVisibleInStream(message.streamId, message.topic))
937+
check(model.store.isTopicVisibleInStream(message.channelId, message.topic))
938938
.isTrue();
939939
case TopicNarrow():
940940
case DmNarrow():

test/model/unreads_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ void main() {
6767
}
6868
switch (message) {
6969
case ChannelMessage():
70-
final perTopic = expectedStreams[message.streamId] ??= {};
70+
final perTopic = expectedStreams[message.channelId] ??= {};
7171
final messageIds = perTopic[message.topic] ??= QueueList();
7272
messageIds.add(message.id);
7373
case DmMessage():
@@ -444,7 +444,7 @@ void main() {
444444
id: 0,
445445
messageType: MessageType.stream,
446446
messageIds: [message.id],
447-
streamId: message.streamId,
447+
streamId: message.channelId,
448448
topic: message.topic,
449449
),
450450
DmMessage() => DeleteMessageEvent(
@@ -505,7 +505,7 @@ void main() {
505505
id: 0,
506506
messageIds: [message.id],
507507
messageType: MessageType.stream,
508-
streamId: message.streamId,
508+
streamId: message.channelId,
509509
topic: message.topic,
510510
));
511511
// TODO improve implementation; then:

test/notifications/display_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ void main() {
182182
final message = eg.streamMessage(stream: stream);
183183
await checkNotifications(async, messageFcmMessage(message, streamName: stream.name),
184184
expectedTitle: '#${stream.name} > ${message.topic}',
185-
expectedTagComponent: 'stream:${message.streamId}:${message.topic}');
185+
expectedTagComponent: 'stream:${message.channelId}:${message.topic}');
186186
}));
187187

188188
test('stream message, stream name omitted', () => awaitFakeAsync((async) async {
@@ -191,7 +191,7 @@ void main() {
191191
final message = eg.streamMessage(stream: stream);
192192
await checkNotifications(async, messageFcmMessage(message, streamName: null),
193193
expectedTitle: '#(unknown channel) > ${message.topic}',
194-
expectedTagComponent: 'stream:${message.streamId}:${message.topic}');
194+
expectedTagComponent: 'stream:${message.channelId}:${message.topic}');
195195
}));
196196

197197
test('group DM: 3 users', () => awaitFakeAsync((async) async {

test/widgets/action_sheet_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Future<void> setupToMessageActionSheet(WidgetTester tester, {
4444
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
4545
await store.addUser(eg.user(userId: message.senderId));
4646
if (message is ChannelMessage) {
47-
final stream = eg.stream(channelId: message.streamId);
47+
final stream = eg.stream(channelId: message.channelId);
4848
await store.addStream(stream);
4949
await store.addSubscription(eg.subscription(stream));
5050
}
@@ -299,7 +299,7 @@ void main() {
299299

300300
testWidgets('in stream narrow', (WidgetTester tester) async {
301301
final message = eg.streamMessage();
302-
await setupToMessageActionSheet(tester, message: message, narrow: StreamNarrow(message.streamId));
302+
await setupToMessageActionSheet(tester, message: message, narrow: StreamNarrow(message.channelId));
303303
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
304304

305305
final composeBoxController = findComposeBoxController(tester)!;

test/widgets/message_list_test.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ void main() {
706706
testWidgets('from unread to read', (WidgetTester tester) async {
707707
final message = eg.streamMessage(flags: []);
708708
final unreadMsgs = eg.unreadMsgs(streams:[
709-
UnreadStreamSnapshot(topic: message.topic, streamId: message.streamId, unreadMessageIds: [message.id])
709+
UnreadStreamSnapshot(topic: message.topic, streamId: message.channelId, unreadMessageIds: [message.id])
710710
]);
711711
await setupMessageListPage(tester, messages: [message], unreadMsgs: unreadMsgs);
712712
check(isMarkAsReadButtonVisible(tester)).isTrue();
@@ -724,7 +724,7 @@ void main() {
724724
testWidgets("messages don't shift position", (WidgetTester tester) async {
725725
final message = eg.streamMessage(flags: []);
726726
final unreadMsgs = eg.unreadMsgs(streams:[
727-
UnreadStreamSnapshot(topic: message.topic, streamId: message.streamId,
727+
UnreadStreamSnapshot(topic: message.topic, streamId: message.channelId,
728728
unreadMessageIds: [message.id])
729729
]);
730730
await setupMessageListPage(tester,
@@ -749,7 +749,7 @@ void main() {
749749
group('onPressed behavior', () {
750750
final message = eg.streamMessage(flags: []);
751751
final unreadMsgs = eg.unreadMsgs(streams: [
752-
UnreadStreamSnapshot(streamId: message.streamId, topic: message.topic,
752+
UnreadStreamSnapshot(streamId: message.channelId, topic: message.topic,
753753
unreadMessageIds: [message.id]),
754754
]);
755755

@@ -928,7 +928,7 @@ void main() {
928928
});
929929

930930
testWidgets('StreamNarrow on legacy server', (WidgetTester tester) async {
931-
final narrow = StreamNarrow(message.streamId);
931+
final narrow = StreamNarrow(message.channelId);
932932
await setupMessageListPage(tester,
933933
narrow: narrow, messages: [message], unreadMsgs: unreadMsgs);
934934
check(isMarkAsReadButtonVisible(tester)).isTrue();
@@ -940,7 +940,7 @@ void main() {
940940
..method.equals('POST')
941941
..url.path.equals('/api/v1/mark_stream_as_read')
942942
..bodyFields.deepEquals({
943-
'stream_id': message.streamId.toString(),
943+
'stream_id': message.channelId.toString(),
944944
});
945945

946946
await tester.pumpAndSettle(); // process pending timers

0 commit comments

Comments
 (0)