You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.6 KiB
Dart
122 lines
4.6 KiB
Dart
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
|
import 'package:matrix/matrix.dart';
|
|
|
|
extension PushRuleExtension on PushRule {
|
|
String getPushRuleName(L10n l10n) {
|
|
switch (ruleId) {
|
|
case '.m.rule.contains_user_name':
|
|
return l10n.notificationRuleContainsUserName;
|
|
case '.m.rule.master':
|
|
return l10n.notificationRuleMaster;
|
|
case '.m.rule.suppress_notices':
|
|
return l10n.notificationRuleSuppressNotices;
|
|
case '.m.rule.invite_for_me':
|
|
return l10n.notificationRuleInviteForMe;
|
|
case '.m.rule.member_event':
|
|
return l10n.notificationRuleMemberEvent;
|
|
case '.m.rule.is_user_mention':
|
|
return l10n.notificationRuleIsUserMention;
|
|
case '.m.rule.contains_display_name':
|
|
return l10n.notificationRuleContainsDisplayName;
|
|
case '.m.rule.is_room_mention':
|
|
return l10n.notificationRuleIsRoomMention;
|
|
case '.m.rule.roomnotif':
|
|
return l10n.notificationRuleRoomnotif;
|
|
case '.m.rule.tombstone':
|
|
return l10n.notificationRuleTombstone;
|
|
case '.m.rule.reaction':
|
|
return l10n.notificationRuleReaction;
|
|
case '.m.rule.room_server_acl':
|
|
return l10n.notificationRuleRoomServerAcl;
|
|
case '.m.rule.suppress_edits':
|
|
return l10n.notificationRuleSuppressEdits;
|
|
case '.m.rule.call':
|
|
return l10n.notificationRuleCall;
|
|
case '.m.rule.encrypted_room_one_to_one':
|
|
return l10n.notificationRuleEncryptedRoomOneToOne;
|
|
case '.m.rule.room_one_to_one':
|
|
return l10n.notificationRuleRoomOneToOne;
|
|
case '.m.rule.message':
|
|
return l10n.notificationRuleMessage;
|
|
case '.m.rule.encrypted':
|
|
return l10n.notificationRuleEncrypted;
|
|
case '.m.rule.room.server_acl':
|
|
return l10n.notificationRuleServerAcl;
|
|
case '.im.vector.jitsi':
|
|
return l10n.notificationRuleJitsi;
|
|
default:
|
|
return ruleId.split('.').last.replaceAll('_', ' ').capitalize();
|
|
}
|
|
}
|
|
|
|
String getPushRuleDescription(L10n l10n) {
|
|
switch (ruleId) {
|
|
case '.m.rule.contains_user_name':
|
|
return l10n.notificationRuleContainsUserNameDescription;
|
|
case '.m.rule.master':
|
|
return l10n.notificationRuleMasterDescription;
|
|
case '.m.rule.suppress_notices':
|
|
return l10n.notificationRuleSuppressNoticesDescription;
|
|
case '.m.rule.invite_for_me':
|
|
return l10n.notificationRuleInviteForMeDescription;
|
|
case '.m.rule.member_event':
|
|
return l10n.notificationRuleMemberEventDescription;
|
|
case '.m.rule.is_user_mention':
|
|
return l10n.notificationRuleIsUserMentionDescription;
|
|
case '.m.rule.contains_display_name':
|
|
return l10n.notificationRuleContainsDisplayNameDescription;
|
|
case '.m.rule.is_room_mention':
|
|
return l10n.notificationRuleIsRoomMentionDescription;
|
|
case '.m.rule.roomnotif':
|
|
return l10n.notificationRuleRoomnotifDescription;
|
|
case '.m.rule.tombstone':
|
|
return l10n.notificationRuleTombstoneDescription;
|
|
case '.m.rule.reaction':
|
|
return l10n.notificationRuleReactionDescription;
|
|
case '.m.rule.room_server_acl':
|
|
return l10n.notificationRuleRoomServerAclDescription;
|
|
case '.m.rule.suppress_edits':
|
|
return l10n.notificationRuleSuppressEditsDescription;
|
|
case '.m.rule.call':
|
|
return l10n.notificationRuleCallDescription;
|
|
case '.m.rule.encrypted_room_one_to_one':
|
|
return l10n.notificationRuleEncryptedRoomOneToOneDescription;
|
|
case '.m.rule.room_one_to_one':
|
|
return l10n.notificationRuleRoomOneToOneDescription;
|
|
case '.m.rule.message':
|
|
return l10n.notificationRuleMessageDescription;
|
|
case '.m.rule.encrypted':
|
|
return l10n.notificationRuleEncryptedDescription;
|
|
case '.m.rule.room.server_acl':
|
|
return l10n.notificationRuleServerAclDescription;
|
|
case '.im.vector.jitsi':
|
|
return l10n.notificationRuleJitsiDescription;
|
|
default:
|
|
return l10n.unknownPushRule(ruleId);
|
|
}
|
|
}
|
|
}
|
|
|
|
extension PushRuleKindLocal on PushRuleKind {
|
|
String localized(L10n l10n) {
|
|
switch (this) {
|
|
case PushRuleKind.content:
|
|
return l10n.contentNotificationSettings;
|
|
case PushRuleKind.override:
|
|
return l10n.generalNotificationSettings;
|
|
case PushRuleKind.room:
|
|
return l10n.roomNotificationSettings;
|
|
case PushRuleKind.sender:
|
|
return l10n.userSpecificNotificationSettings;
|
|
case PushRuleKind.underride:
|
|
return l10n.otherNotificationSettings;
|
|
}
|
|
}
|
|
}
|
|
|
|
extension on String {
|
|
String capitalize() {
|
|
return "${this[0].toUpperCase()}${substring(1).toLowerCase()}";
|
|
}
|
|
}
|