TF-1813 Add createTime and change type email property in SendingEmailHiveCache
(cherry picked from commit 3077cc3b414d4894ac13f5636aa5d59b0096c9fb)
This commit is contained in:
@@ -9,6 +9,7 @@ extension EmailRequestExtension on EmailRequest {
|
|||||||
sendingId: sendingId,
|
sendingId: sendingId,
|
||||||
email: email,
|
email: email,
|
||||||
emailActionType: emailActionType,
|
emailActionType: emailActionType,
|
||||||
|
createTime: DateTime.now(),
|
||||||
sentMailboxId: sentMailboxId,
|
sentMailboxId: sentMailboxId,
|
||||||
emailIdDestroyed: emailIdDestroyed,
|
emailIdDestroyed: emailIdDestroyed,
|
||||||
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
|
import 'package:model/extensions/email_extension.dart';
|
||||||
import 'package:model/extensions/email_id_extensions.dart';
|
import 'package:model/extensions/email_id_extensions.dart';
|
||||||
import 'package:model/extensions/identity_id_extension.dart';
|
import 'package:model/extensions/identity_id_extension.dart';
|
||||||
import 'package:model/extensions/mailbox_id_extension.dart';
|
import 'package:model/extensions/mailbox_id_extension.dart';
|
||||||
@@ -9,8 +10,9 @@ extension SendingEmailExtension on SendingEmail {
|
|||||||
SendingEmailHiveCache toHiveCache() {
|
SendingEmailHiveCache toHiveCache() {
|
||||||
return SendingEmailHiveCache(
|
return SendingEmailHiveCache(
|
||||||
sendingId,
|
sendingId,
|
||||||
email.toJson(),
|
email.asString(),
|
||||||
emailActionType.name,
|
emailActionType.name,
|
||||||
|
createTime,
|
||||||
sentMailboxId?.asString,
|
sentMailboxId?.asString,
|
||||||
emailIdDestroyed?.asString,
|
emailIdDestroyed?.asString,
|
||||||
emailIdAnsweredOrForwarded?.asString,
|
emailIdAnsweredOrForwarded?.asString,
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
|
||||||
|
import 'package:core/domain/extensions/datetime_extension.dart';
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
|
import 'package:flutter_date_range_picker/flutter_date_range_picker.dart';
|
||||||
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.dart';
|
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.dart';
|
||||||
import 'package:jmap_dart_client/http/converter/id_nullable_converter.dart';
|
import 'package:jmap_dart_client/http/converter/id_nullable_converter.dart';
|
||||||
import 'package:jmap_dart_client/http/converter/identities/identity_id_nullable_converter.dart';
|
import 'package:jmap_dart_client/http/converter/identities/identity_id_nullable_converter.dart';
|
||||||
@@ -9,6 +11,7 @@ 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/email/email.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||||
import 'package:model/email/email_action_type.dart';
|
import 'package:model/email/email_action_type.dart';
|
||||||
|
import 'package:model/email/presentation_email.dart';
|
||||||
import 'package:model/extensions/email_extension.dart';
|
import 'package:model/extensions/email_extension.dart';
|
||||||
|
|
||||||
class SendingEmail with EquatableMixin {
|
class SendingEmail with EquatableMixin {
|
||||||
@@ -21,11 +24,13 @@ class SendingEmail with EquatableMixin {
|
|||||||
final EmailActionType emailActionType;
|
final EmailActionType emailActionType;
|
||||||
final MailboxName? mailboxNameRequest;
|
final MailboxName? mailboxNameRequest;
|
||||||
final Id? creationIdRequest;
|
final Id? creationIdRequest;
|
||||||
|
final DateTime createTime;
|
||||||
|
|
||||||
SendingEmail({
|
SendingEmail({
|
||||||
required this.sendingId,
|
required this.sendingId,
|
||||||
required this.email,
|
required this.email,
|
||||||
required this.emailActionType,
|
required this.emailActionType,
|
||||||
|
required this.createTime,
|
||||||
this.sentMailboxId,
|
this.sentMailboxId,
|
||||||
this.emailIdDestroyed,
|
this.emailIdDestroyed,
|
||||||
this.emailIdAnsweredOrForwarded,
|
this.emailIdAnsweredOrForwarded,
|
||||||
@@ -46,6 +51,7 @@ class SendingEmail with EquatableMixin {
|
|||||||
writeNotNull('sendingId', sendingId);
|
writeNotNull('sendingId', sendingId);
|
||||||
writeNotNull('email', email.asString());
|
writeNotNull('email', email.asString());
|
||||||
writeNotNull('emailActionType', emailActionType.name);
|
writeNotNull('emailActionType', emailActionType.name);
|
||||||
|
writeNotNull('createTime', createTime.toIso8601String());
|
||||||
writeNotNull('sentMailboxId', const MailboxIdNullableConverter().toJson(sentMailboxId));
|
writeNotNull('sentMailboxId', const MailboxIdNullableConverter().toJson(sentMailboxId));
|
||||||
writeNotNull('emailIdDestroyed', const EmailIdNullableConverter().toJson(emailIdDestroyed));
|
writeNotNull('emailIdDestroyed', const EmailIdNullableConverter().toJson(emailIdDestroyed));
|
||||||
writeNotNull('emailIdAnsweredOrForwarded', const EmailIdNullableConverter().toJson(emailIdAnsweredOrForwarded));
|
writeNotNull('emailIdAnsweredOrForwarded', const EmailIdNullableConverter().toJson(emailIdAnsweredOrForwarded));
|
||||||
@@ -56,11 +62,18 @@ class SendingEmail with EquatableMixin {
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PresentationEmail get presentationEmail => email.toPresentationEmail();
|
||||||
|
|
||||||
|
String getCreateTimeAt(String newLocale) {
|
||||||
|
return DateFormat(createTime.toPattern(), newLocale).format(createTime);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [
|
List<Object?> get props => [
|
||||||
sendingId,
|
sendingId,
|
||||||
email,
|
email,
|
||||||
emailActionType,
|
emailActionType,
|
||||||
|
createTime,
|
||||||
sentMailboxId,
|
sentMailboxId,
|
||||||
emailIdDestroyed,
|
emailIdDestroyed,
|
||||||
emailIdAnsweredOrForwarded,
|
emailIdAnsweredOrForwarded,
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.dart';
|
||||||
|
import 'package:jmap_dart_client/http/converter/id_nullable_converter.dart';
|
||||||
|
import 'package:jmap_dart_client/http/converter/identities/identity_id_nullable_converter.dart';
|
||||||
|
import 'package:jmap_dart_client/http/converter/mailbox_id_nullable_converter.dart';
|
||||||
|
import 'package:jmap_dart_client/http/converter/mailbox_name_converter.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
|
import 'package:model/email/email_action_type.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 SendingEmailHiveCacheExtension on SendingEmailHiveCache {
|
||||||
|
|
||||||
|
SendingEmail toSendingEmail() {
|
||||||
|
return SendingEmail(
|
||||||
|
sendingId: sendingId,
|
||||||
|
email: Email.fromJson(jsonDecode(email)),
|
||||||
|
emailActionType: EmailActionType.values.firstWhere((value) => value.name == emailActionType),
|
||||||
|
createTime: createTime,
|
||||||
|
sentMailboxId: const MailboxIdNullableConverter().fromJson(sentMailboxId),
|
||||||
|
emailIdDestroyed: const EmailIdNullableConverter().fromJson(emailIdDestroyed),
|
||||||
|
emailIdAnsweredOrForwarded: const EmailIdNullableConverter().fromJson(emailIdAnsweredOrForwarded),
|
||||||
|
identityId: const IdentityIdNullableConverter().fromJson(identityId),
|
||||||
|
mailboxNameRequest: const MailboxNameConverter().fromJson(mailboxNameRequest),
|
||||||
|
creationIdRequest: const IdNullableConverter().fromJson(creationIdRequest)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,33 +12,37 @@ class SendingEmailHiveCache extends HiveObject with EquatableMixin {
|
|||||||
final String sendingId;
|
final String sendingId;
|
||||||
|
|
||||||
@HiveField(1)
|
@HiveField(1)
|
||||||
final Map<String, dynamic> email;
|
final String email;
|
||||||
|
|
||||||
@HiveField(2)
|
@HiveField(2)
|
||||||
final String emailActionType;
|
final String emailActionType;
|
||||||
|
|
||||||
@HiveField(3)
|
@HiveField(3)
|
||||||
final String? sentMailboxId;
|
final DateTime createTime;
|
||||||
|
|
||||||
@HiveField(4)
|
@HiveField(4)
|
||||||
final String? emailIdDestroyed;
|
final String? sentMailboxId;
|
||||||
|
|
||||||
@HiveField(5)
|
@HiveField(5)
|
||||||
final String? emailIdAnsweredOrForwarded;
|
final String? emailIdDestroyed;
|
||||||
|
|
||||||
@HiveField(6)
|
@HiveField(6)
|
||||||
final String? identityId;
|
final String? emailIdAnsweredOrForwarded;
|
||||||
|
|
||||||
@HiveField(7)
|
@HiveField(7)
|
||||||
final String? mailboxNameRequest;
|
final String? identityId;
|
||||||
|
|
||||||
@HiveField(8)
|
@HiveField(8)
|
||||||
|
final String? mailboxNameRequest;
|
||||||
|
|
||||||
|
@HiveField(9)
|
||||||
final String? creationIdRequest;
|
final String? creationIdRequest;
|
||||||
|
|
||||||
SendingEmailHiveCache(
|
SendingEmailHiveCache(
|
||||||
this.sendingId,
|
this.sendingId,
|
||||||
this.email,
|
this.email,
|
||||||
this.emailActionType,
|
this.emailActionType,
|
||||||
|
this.createTime,
|
||||||
this.sentMailboxId,
|
this.sentMailboxId,
|
||||||
this.emailIdDestroyed,
|
this.emailIdDestroyed,
|
||||||
this.emailIdAnsweredOrForwarded,
|
this.emailIdAnsweredOrForwarded,
|
||||||
@@ -52,6 +56,7 @@ class SendingEmailHiveCache extends HiveObject with EquatableMixin {
|
|||||||
sendingId,
|
sendingId,
|
||||||
email,
|
email,
|
||||||
emailActionType,
|
emailActionType,
|
||||||
|
createTime,
|
||||||
sentMailboxId,
|
sentMailboxId,
|
||||||
emailIdDestroyed,
|
emailIdDestroyed,
|
||||||
emailIdAnsweredOrForwarded,
|
emailIdAnsweredOrForwarded,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class Worker with EquatableMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> get inputData {
|
Map<String, dynamic> get inputData {
|
||||||
data[WorkManagerConstants.workerTypeKey] = type.name;
|
data.addAll({WorkManagerConstants.workerTypeKey: type.name});
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user