TF-2871 Block notification on folders Sent, Outbox, Drafts, Spam and Trash

This commit is contained in:
dab246
2024-07-16 09:40:12 +07:00
committed by Dat H. Pham
parent 501d4d38d9
commit 7b5c0d5a75
20 changed files with 253 additions and 81 deletions
@@ -1,20 +1,22 @@
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/push_notification/data/keychain/keychain_sharing_session.dart';
extension KeychainSharingSessionExtension on KeychainSharingSession {
KeychainSharingSession updating({String? emailState}) {
KeychainSharingSession updating({String? emailState, List<MailboxId>? mailboxIdsBlockNotification}) {
return KeychainSharingSession(
accountId: accountId,
userName: userName,
authenticationType: authenticationType,
apiUrl: apiUrl,
emailState: emailState ?? emailState,
emailState: emailState ?? this.emailState,
emailDeliveryState: emailDeliveryState,
tokenOIDC: tokenOIDC,
basicAuth: basicAuth,
tokenEndpoint: tokenEndpoint,
oidcScopes: oidcScopes,
mailboxIdsBlockNotification: mailboxIdsBlockNotification ?? this.mailboxIdsBlockNotification,
);
}
}
@@ -1,14 +1,17 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/http/converter/account_id_converter.dart';
import 'package:jmap_dart_client/http/converter/mailbox_id_converter.dart';
import 'package:jmap_dart_client/http/converter/user_name_converter.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:model/account/authentication_type.dart';
import 'package:model/oidc/token_oidc.dart';
part 'keychain_sharing_session.g.dart';
@MailboxIdConverter()
@UserNameConverter()
@AccountIdConverter()
@JsonSerializable(includeIfNull: false, explicitToJson: true)
@@ -23,6 +26,7 @@ class KeychainSharingSession with EquatableMixin {
String? basicAuth;
String? tokenEndpoint;
List<String>? oidcScopes;
List<MailboxId>? mailboxIdsBlockNotification;
KeychainSharingSession({
required this.accountId,
@@ -35,6 +39,7 @@ class KeychainSharingSession with EquatableMixin {
this.basicAuth,
this.tokenEndpoint,
this.oidcScopes,
this.mailboxIdsBlockNotification,
});
factory KeychainSharingSession.fromJson(Map<String, dynamic> json) => _$KeychainSharingSessionFromJson(json);
@@ -53,5 +58,6 @@ class KeychainSharingSession with EquatableMixin {
basicAuth,
tokenEndpoint,
oidcScopes,
mailboxIdsBlockNotification,
];
}