Skip to content

Commit 2b045d2

Browse files
committed
realm [nfc]: Organize realm settings, from current API doc
To identify which fields are realm settings in the API, so that #668 applies to them, I looked at the current API docs: https://zulip.com/api/get-events#realm-update_dict It turns out a couple of items that had been realm settings are now something else; one that was a server setting (and even lacked "realm" in the name: maxFileUploadSizeMib) is now a realm setting updated by events. So the comments on the implementation fields need updating. I'll do that in a separate commit, though, so that this one is more purely moving code around.
1 parent 86ce025 commit 2b045d2

File tree

1 file changed

+56
-29
lines changed

1 file changed

+56
-29
lines changed

lib/model/realm.dart

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ import 'store.dart';
1212
/// * [RealmStoreImpl] for the implementation of this that does the work.
1313
/// * [HasRealmStore] for an implementation useful for other substores.
1414
mixin RealmStore on PerAccountStoreBase {
15+
//|//////////////////////////////////////////////////////////////
16+
// Server settings, explicitly so named.
17+
1518
Duration get serverPresencePingInterval => Duration(seconds: serverPresencePingIntervalSeconds);
1619
int get serverPresencePingIntervalSeconds;
1720
Duration get serverPresenceOfflineThreshold => Duration(seconds: serverPresenceOfflineThresholdSeconds);
@@ -24,17 +27,35 @@ mixin RealmStore on PerAccountStoreBase {
2427
Duration get serverTypingStartedWaitPeriod => Duration(milliseconds: serverTypingStartedWaitPeriodMilliseconds);
2528
int get serverTypingStartedWaitPeriodMilliseconds;
2629

27-
RealmWildcardMentionPolicy get realmWildcardMentionPolicy;
28-
bool get realmMandatoryTopics;
29-
/// For docs, please see [InitialSnapshot.realmWaitingPeriodThreshold].
30-
int get realmWaitingPeriodThreshold;
30+
//|//////////////////////////////////////////////////////////////
31+
// Realm settings.
32+
33+
//|//////////////////////////////
34+
// Realm settings found in realm/update_dict events:
35+
// https://zulip.com/api/get-events#realm-update_dict
36+
// TODO(#668): update all these realm settings on events.
37+
3138
bool get realmAllowMessageEditing;
39+
bool get realmMandatoryTopics;
40+
int get maxFileUploadSizeMib;
3241
Duration? get realmMessageContentEditLimit =>
3342
realmMessageContentEditLimitSeconds == null ? null
3443
: Duration(seconds: realmMessageContentEditLimitSeconds!);
3544
int? get realmMessageContentEditLimitSeconds;
3645
bool get realmPresenceDisabled;
37-
int get maxFileUploadSizeMib;
46+
int get realmWaitingPeriodThreshold;
47+
48+
//|//////////////////////////////
49+
// Realm settings previously found in realm/update_dict events,
50+
// but now deprecated.
51+
52+
RealmWildcardMentionPolicy get realmWildcardMentionPolicy; // TODO(#662): replaced by can_mention_many_users_group
53+
54+
EmailAddressVisibility? get emailAddressVisibility; // TODO: replaced at FL-163 by a user setting
55+
56+
//|//////////////////////////////
57+
// Realm settings that lack events.
58+
// (Each of these is probably secretly a server setting.)
3859

3960
/// The display name to use for empty topics.
4061
///
@@ -44,9 +65,14 @@ mixin RealmStore on PerAccountStoreBase {
4465
String get realmEmptyTopicDisplayName;
4566

4667
Map<String, RealmDefaultExternalAccount> get realmDefaultExternalAccounts;
68+
69+
//|//////////////////////////////
70+
// Realm settings with their own events.
71+
4772
List<CustomProfileField> get customProfileFields;
48-
/// For docs, please see [InitialSnapshot.emailAddressVisibility].
49-
EmailAddressVisibility? get emailAddressVisibility;
73+
74+
//|//////////////////////////////////////////////////////////////
75+
// Methods that examine the settings.
5076

5177
/// Process the given topic to match how it would appear
5278
/// on a message object from the server.
@@ -109,27 +135,27 @@ mixin ProxyRealmStore on RealmStore {
109135
@override
110136
int get serverTypingStartedWaitPeriodMilliseconds => realmStore.serverTypingStartedWaitPeriodMilliseconds;
111137
@override
112-
RealmWildcardMentionPolicy get realmWildcardMentionPolicy => realmStore.realmWildcardMentionPolicy;
138+
bool get realmAllowMessageEditing => realmStore.realmAllowMessageEditing;
113139
@override
114140
bool get realmMandatoryTopics => realmStore.realmMandatoryTopics;
115141
@override
116-
int get realmWaitingPeriodThreshold => realmStore.realmWaitingPeriodThreshold;
117-
@override
118-
bool get realmAllowMessageEditing => realmStore.realmAllowMessageEditing;
142+
int get maxFileUploadSizeMib => realmStore.maxFileUploadSizeMib;
119143
@override
120144
int? get realmMessageContentEditLimitSeconds => realmStore.realmMessageContentEditLimitSeconds;
121145
@override
122146
bool get realmPresenceDisabled => realmStore.realmPresenceDisabled;
123147
@override
124-
int get maxFileUploadSizeMib => realmStore.maxFileUploadSizeMib;
148+
int get realmWaitingPeriodThreshold => realmStore.realmWaitingPeriodThreshold;
149+
@override
150+
RealmWildcardMentionPolicy get realmWildcardMentionPolicy => realmStore.realmWildcardMentionPolicy;
151+
@override
152+
EmailAddressVisibility? get emailAddressVisibility => realmStore.emailAddressVisibility;
125153
@override
126154
String get realmEmptyTopicDisplayName => realmStore.realmEmptyTopicDisplayName;
127155
@override
128156
Map<String, RealmDefaultExternalAccount> get realmDefaultExternalAccounts => realmStore.realmDefaultExternalAccounts;
129157
@override
130158
List<CustomProfileField> get customProfileFields => realmStore.customProfileFields;
131-
@override
132-
EmailAddressVisibility? get emailAddressVisibility => realmStore.emailAddressVisibility;
133159
}
134160

135161
/// A base class for [PerAccountStore] substores that need access to [RealmStore]
@@ -154,17 +180,17 @@ class RealmStoreImpl extends PerAccountStoreBase with RealmStore {
154180
serverTypingStartedExpiryPeriodMilliseconds = initialSnapshot.serverTypingStartedExpiryPeriodMilliseconds,
155181
serverTypingStoppedWaitPeriodMilliseconds = initialSnapshot.serverTypingStoppedWaitPeriodMilliseconds,
156182
serverTypingStartedWaitPeriodMilliseconds = initialSnapshot.serverTypingStartedWaitPeriodMilliseconds,
157-
realmWildcardMentionPolicy = initialSnapshot.realmWildcardMentionPolicy,
183+
realmAllowMessageEditing = initialSnapshot.realmAllowMessageEditing,
158184
realmMandatoryTopics = initialSnapshot.realmMandatoryTopics,
159-
realmWaitingPeriodThreshold = initialSnapshot.realmWaitingPeriodThreshold,
160-
realmPresenceDisabled = initialSnapshot.realmPresenceDisabled,
161185
maxFileUploadSizeMib = initialSnapshot.maxFileUploadSizeMib,
162-
_realmEmptyTopicDisplayName = initialSnapshot.realmEmptyTopicDisplayName,
163-
realmAllowMessageEditing = initialSnapshot.realmAllowMessageEditing,
164186
realmMessageContentEditLimitSeconds = initialSnapshot.realmMessageContentEditLimitSeconds,
187+
realmPresenceDisabled = initialSnapshot.realmPresenceDisabled,
188+
realmWaitingPeriodThreshold = initialSnapshot.realmWaitingPeriodThreshold,
189+
realmWildcardMentionPolicy = initialSnapshot.realmWildcardMentionPolicy,
190+
emailAddressVisibility = initialSnapshot.emailAddressVisibility,
191+
_realmEmptyTopicDisplayName = initialSnapshot.realmEmptyTopicDisplayName,
165192
realmDefaultExternalAccounts = initialSnapshot.realmDefaultExternalAccounts,
166-
customProfileFields = _sortCustomProfileFields(initialSnapshot.customProfileFields),
167-
emailAddressVisibility = initialSnapshot.emailAddressVisibility;
193+
customProfileFields = _sortCustomProfileFields(initialSnapshot.customProfileFields);
168194

169195
@override
170196
final int serverPresencePingIntervalSeconds;
@@ -179,19 +205,23 @@ class RealmStoreImpl extends PerAccountStoreBase with RealmStore {
179205
final int serverTypingStartedWaitPeriodMilliseconds;
180206

181207
@override
182-
final RealmWildcardMentionPolicy realmWildcardMentionPolicy; // TODO(#668): update this realm setting
208+
final bool realmAllowMessageEditing; // TODO(#668): update this realm setting
183209
@override
184210
final bool realmMandatoryTopics; // TODO(#668): update this realm setting
185211
@override
186-
final int realmWaitingPeriodThreshold; // TODO(#668): update this realm setting
187-
@override
188-
final bool realmAllowMessageEditing; // TODO(#668): update this realm setting
212+
final int maxFileUploadSizeMib; // No event for this.
189213
@override
190214
final int? realmMessageContentEditLimitSeconds; // TODO(#668): update this realm setting
191215
@override
192216
final bool realmPresenceDisabled; // TODO(#668): update this realm setting
193217
@override
194-
final int maxFileUploadSizeMib; // No event for this.
218+
final int realmWaitingPeriodThreshold; // TODO(#668): update this realm setting
219+
220+
@override
221+
final RealmWildcardMentionPolicy realmWildcardMentionPolicy; // TODO(#668): update this realm setting
222+
223+
@override
224+
final EmailAddressVisibility? emailAddressVisibility; // TODO(#668): update this realm setting
195225

196226
@override
197227
String get realmEmptyTopicDisplayName {
@@ -222,9 +252,6 @@ class RealmStoreImpl extends PerAccountStoreBase with RealmStore {
222252
return displayFields.followedBy(nonDisplayFields).toList();
223253
}
224254

225-
@override
226-
final EmailAddressVisibility? emailAddressVisibility; // TODO(#668): update this realm setting
227-
228255
void handleCustomProfileFieldsEvent(CustomProfileFieldsEvent event) {
229256
customProfileFields = _sortCustomProfileFields(event.fields);
230257
}

0 commit comments

Comments
 (0)