TF-1812 Add SendingEmailHiveCache to store sending email
(cherry picked from commit 7ff4c951b843f7a844e0dd4f0667b85b7fb0b710)
This commit is contained in:
@@ -17,12 +17,14 @@ class CachingConstants {
|
||||
static const int ATTACHMENT_HIVE_CACHE_ID = 15;
|
||||
static const int EMAIL_HEADER_HIVE_CACHE_ID = 16;
|
||||
static const int DETAILED_EMAIL_HIVE_CACHE_ID = 17;
|
||||
static const int SENDING_EMAIL_HIVE_CACHE_ID = 18;
|
||||
|
||||
static const String fcmCacheBoxName = 'fcm_cache_box';
|
||||
static const String incomingEmailedCacheBoxName = 'incoming_emailed_cache_box';
|
||||
static const String incomingEmailedContentFolderName = 'incoming_emailed';
|
||||
static const String openedEmailContentFolderName = 'opened_email';
|
||||
static const String openedEmailCacheBoxName = 'opened_email_cache_box';
|
||||
static const String sendingEmailCacheBoxName = 'sending_email_cache_box';
|
||||
|
||||
static const int maxNumberNewEmailsForOffline = 10;
|
||||
static const int maxNumberOpenedEmailsForOffline = 30;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
import 'package:model/extensions/email_id_extensions.dart';
|
||||
import 'package:model/extensions/identity_id_extension.dart';
|
||||
import 'package:model/extensions/mailbox_id_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/sending_email_hive_cache.dart';
|
||||
|
||||
extension SendingEmailExtension on SendingEmail {
|
||||
SendingEmailHiveCache toHiveCache() {
|
||||
return SendingEmailHiveCache(
|
||||
sendingId,
|
||||
email.toJson(),
|
||||
emailActionType.name,
|
||||
sentMailboxId?.asString,
|
||||
emailIdDestroyed?.asString,
|
||||
emailIdAnsweredOrForwarded?.asString,
|
||||
identityId?.asString,
|
||||
mailboxNameRequest?.name,
|
||||
creationIdRequest?.value
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/email_action_type.dart';
|
||||
|
||||
class SendingEmail with EquatableMixin {
|
||||
final String sendingId;
|
||||
final Email email;
|
||||
final MailboxId? sentMailboxId;
|
||||
final EmailId? emailIdDestroyed;
|
||||
final EmailId? emailIdAnsweredOrForwarded;
|
||||
final IdentityId? identityId;
|
||||
final EmailActionType emailActionType;
|
||||
final MailboxName? mailboxNameRequest;
|
||||
final Id? creationIdRequest;
|
||||
|
||||
SendingEmail({
|
||||
required this.sendingId,
|
||||
required this.email,
|
||||
required this.emailActionType,
|
||||
this.sentMailboxId,
|
||||
this.emailIdDestroyed,
|
||||
this.emailIdAnsweredOrForwarded,
|
||||
this.identityId,
|
||||
this.mailboxNameRequest,
|
||||
this.creationIdRequest
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
sendingId,
|
||||
email,
|
||||
emailActionType,
|
||||
sentMailboxId,
|
||||
emailIdDestroyed,
|
||||
emailIdAnsweredOrForwarded,
|
||||
identityId,
|
||||
mailboxNameRequest,
|
||||
creationIdRequest
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
|
||||
|
||||
part 'sending_email_hive_cache.g.dart';
|
||||
|
||||
@HiveType(typeId: CachingConstants.SENDING_EMAIL_HIVE_CACHE_ID)
|
||||
class SendingEmailHiveCache extends HiveObject with EquatableMixin {
|
||||
|
||||
@HiveField(0)
|
||||
final String sendingId;
|
||||
|
||||
@HiveField(1)
|
||||
final Map<String, dynamic> emailData;
|
||||
|
||||
@HiveField(2)
|
||||
final String emailActionType;
|
||||
|
||||
@HiveField(3)
|
||||
final String? sentMailboxId;
|
||||
|
||||
@HiveField(4)
|
||||
final String? emailIdDestroyed;
|
||||
|
||||
@HiveField(5)
|
||||
final String? emailIdAnsweredOrForwarded;
|
||||
|
||||
@HiveField(6)
|
||||
final String? identityId;
|
||||
|
||||
@HiveField(7)
|
||||
final String? mailboxNameRequest;
|
||||
|
||||
@HiveField(8)
|
||||
final String? creationIdRequest;
|
||||
|
||||
SendingEmailHiveCache(
|
||||
this.sendingId,
|
||||
this.emailData,
|
||||
this.emailActionType,
|
||||
this.sentMailboxId,
|
||||
this.emailIdDestroyed,
|
||||
this.emailIdAnsweredOrForwarded,
|
||||
this.identityId,
|
||||
this.mailboxNameRequest,
|
||||
this.creationIdRequest
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
sendingId,
|
||||
emailData,
|
||||
emailActionType,
|
||||
sentMailboxId,
|
||||
emailIdDestroyed,
|
||||
emailIdAnsweredOrForwarded,
|
||||
identityId,
|
||||
mailboxNameRequest,
|
||||
creationIdRequest
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||
|
||||
extension IdentityIdExtension on IdentityId {
|
||||
String get asString => id.value;
|
||||
}
|
||||
@@ -58,6 +58,7 @@ export 'extensions/list_identity_id_extension.dart';
|
||||
export 'extensions/email_id_extensions.dart';
|
||||
export 'extensions/account_id_extensions.dart';
|
||||
export 'extensions/account_extension.dart';
|
||||
export 'extensions/identity_id_extension.dart';
|
||||
// Identity
|
||||
export 'identity/identity_request_dto.dart';
|
||||
export 'mailbox/expand_mode.dart';
|
||||
|
||||
Reference in New Issue
Block a user