122 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
| import 'package:fluffychat/generated/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()}";
 | |
|   }
 | |
| }
 |