TF-3416 Handle preview EML attachment on mobile
This commit is contained in:
@@ -186,13 +186,13 @@ abstract class EmailRepository {
|
||||
|
||||
Future<String> generatePreviewEmailEMLContent(PreviewEmailEMLRequest previewEmailEMLRequest);
|
||||
|
||||
Future<void> sharePreviewEmailEMLContent(String keyStored, EMLPreviewer emlPreviewer);
|
||||
Future<void> sharePreviewEmailEMLContent(EMLPreviewer emlPreviewer);
|
||||
|
||||
Future<EMLPreviewer> getPreviewEmailEMLContentShared(String keyStored);
|
||||
|
||||
Future<void> removePreviewEmailEMLContentShared(String keyStored);
|
||||
|
||||
Future<void> storePreviewEMLContentToSessionStorage(String keyStored, EMLPreviewer emlPreviewer);
|
||||
Future<void> storePreviewEMLContentToSessionStorage(EMLPreviewer emlPreviewer);
|
||||
|
||||
Future<EMLPreviewer> getPreviewEMLContentInMemory(String keyStored);
|
||||
}
|
||||
@@ -6,13 +6,12 @@ class GettingPreviewEmailEMLContentShared extends LoadingState {}
|
||||
|
||||
class GetPreviewEmailEMLContentSharedSuccess extends UIState {
|
||||
|
||||
final String keyStored;
|
||||
final EMLPreviewer emlPreviewer;
|
||||
|
||||
GetPreviewEmailEMLContentSharedSuccess(this.keyStored, this.emlPreviewer);
|
||||
GetPreviewEmailEMLContentSharedSuccess(this.emlPreviewer);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [keyStored, emlPreviewer];
|
||||
List<Object?> get props => [emlPreviewer];
|
||||
}
|
||||
|
||||
class GetPreviewEmailEMLContentSharedFailure extends FeatureFailure {
|
||||
|
||||
@@ -6,13 +6,12 @@ class PreviewingEmailFromEmlFile extends LoadingState {}
|
||||
|
||||
class PreviewEmailFromEmlFileSuccess extends UIState {
|
||||
|
||||
final String storeKey;
|
||||
final EMLPreviewer emlPreviewer;
|
||||
|
||||
PreviewEmailFromEmlFileSuccess(this.storeKey, this.emlPreviewer);
|
||||
PreviewEmailFromEmlFileSuccess(this.emlPreviewer);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [storeKey, emlPreviewer];
|
||||
List<Object?> get props => [emlPreviewer];
|
||||
}
|
||||
|
||||
class PreviewEmailFromEmlFileFailure extends FeatureFailure {
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ class GetPreviewEmailEMLContentSharedInteractor {
|
||||
final previewEMLContent = await _emailRepository
|
||||
.getPreviewEmailEMLContentShared(keyStored);
|
||||
|
||||
yield Right<Failure, Success>(GetPreviewEmailEMLContentSharedSuccess(keyStored, previewEMLContent));
|
||||
yield Right<Failure, Success>(GetPreviewEmailEMLContentSharedSuccess(previewEMLContent));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(GetPreviewEmailEMLContentSharedFailure(
|
||||
keyStored: keyStored,
|
||||
|
||||
+3
-3
@@ -10,12 +10,12 @@ class MovePreviewEmlContentFromPersistentToMemoryInteractor {
|
||||
|
||||
const MovePreviewEmlContentFromPersistentToMemoryInteractor(this._emailRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(String keyStored, EMLPreviewer emlPreviewer) async* {
|
||||
Stream<Either<Failure, Success>> execute(EMLPreviewer emlPreviewer) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(MovingPreviewEmailEMLContentFromPersistentToMemory());
|
||||
await Future.wait([
|
||||
_emailRepository.removePreviewEmailEMLContentShared(keyStored),
|
||||
_emailRepository.storePreviewEMLContentToSessionStorage(keyStored, emlPreviewer),
|
||||
_emailRepository.removePreviewEmailEMLContentShared(emlPreviewer.id),
|
||||
_emailRepository.storePreviewEMLContentToSessionStorage(emlPreviewer),
|
||||
]);
|
||||
yield Right<Failure, Success>(MovePreviewEmailEMLContentFromPersistentToMemorySuccess());
|
||||
} catch (e) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/preview_email_eml_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
@@ -20,20 +21,21 @@ class PreviewEmailFromEmlFileInteractor {
|
||||
final previewEMLContent = await _emailRepository
|
||||
.generatePreviewEmailEMLContent(previewEmailEMLRequest);
|
||||
|
||||
final keyStored = previewEmailEMLRequest.keyStored;
|
||||
|
||||
final emlPreviewer = EMLPreviewer(
|
||||
id: previewEmailEMLRequest.keyStored,
|
||||
title: previewEmailEMLRequest.title,
|
||||
content: previewEMLContent,
|
||||
);
|
||||
|
||||
if (previewEmailEMLRequest.isShared) {
|
||||
await _emailRepository.sharePreviewEmailEMLContent(keyStored, emlPreviewer);
|
||||
} else {
|
||||
await _emailRepository.storePreviewEMLContentToSessionStorage(keyStored, emlPreviewer);
|
||||
if (PlatformInfo.isWeb) {
|
||||
if (previewEmailEMLRequest.isShared) {
|
||||
await _emailRepository.sharePreviewEmailEMLContent(emlPreviewer);
|
||||
} else {
|
||||
await _emailRepository.storePreviewEMLContentToSessionStorage(emlPreviewer);
|
||||
}
|
||||
}
|
||||
|
||||
yield Right<Failure, Success>(PreviewEmailFromEmlFileSuccess(keyStored, emlPreviewer));
|
||||
yield Right<Failure, Success>(PreviewEmailFromEmlFileSuccess(emlPreviewer));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(PreviewEmailFromEmlFileFailure(e));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user