Skip to content

Commit 3d75129

Browse files
committed
wip/link and fetch at first unread from widget, behind flag; TODO a real setting
TODO: for me, in combined feed, this is a lot slower than fetching newest -- seems like the server request is a lot slower, which makes sense. So I want to just always start at newest in, I guess, interleaved views. Fixes 80.
1 parent dbbeb49 commit 3d75129

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

lib/model/settings.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ enum BoolGlobalSetting {
117117
/// errors are encountered.
118118
forceRenderKatex(GlobalSettingType.experimentalFeatureFlag, false),
119119

120+
/// An experimental flag to open the message list at the first unread,
121+
/// instead of the newest messages.
122+
openFirstUnread(GlobalSettingType.experimentalFeatureFlag, false),
123+
120124
// Former settings which might exist in the database,
121125
// whose names should therefore not be reused:
122126
// (this list is empty so far)

lib/widgets/message_list.dart

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import '../api/model/model.dart';
77
import '../generated/l10n/zulip_localizations.dart';
88
import '../model/message_list.dart';
99
import '../model/narrow.dart';
10+
import '../model/settings.dart';
1011
import '../model/store.dart';
1112
import '../model/typing_status.dart';
1213
import 'action_sheet.dart';
@@ -246,9 +247,14 @@ class _MessageListPageState extends State<MessageListPage> implements MessageLis
246247
actions.add(_TopicListButton(streamId: streamId));
247248
}
248249

249-
// TODO(#80): default to anchor firstUnread, instead of newest
250-
final initAnchor = widget.initAnchorMessageId == null
251-
? AnchorCode.newest : NumericAnchor(widget.initAnchorMessageId!);
250+
final Anchor initAnchor;
251+
if (widget.initAnchorMessageId != null) {
252+
initAnchor = NumericAnchor(widget.initAnchorMessageId!);
253+
} else {
254+
final globalSettings = GlobalStoreWidget.settingsOf(context);
255+
initAnchor = globalSettings.getBool(BoolGlobalSetting.openFirstUnread)
256+
? AnchorCode.firstUnread : AnchorCode.newest;
257+
}
252258

253259
// Insert a PageRoot here, to provide a context that can be used for
254260
// MessageListPage.ancestorOf.

0 commit comments

Comments
 (0)