feat: Display all push rules and allow to enable disable them
parent
1c97a9798d
commit
e4a2c13a6f
@ -0,0 +1,121 @@
|
||||
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()}";
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue