diff --git a/lib/features/composer/data/datasource/composer_datasource.dart b/lib/features/composer/data/datasource/composer_datasource.dart index 7d78cb470..d0f702796 100644 --- a/lib/features/composer/data/datasource/composer_datasource.dart +++ b/lib/features/composer/data/datasource/composer_datasource.dart @@ -1,4 +1,6 @@ +import 'package:model/upload/file_info.dart'; + abstract class ComposerDataSource { - Future downloadImageAsBase64(String url); + Future downloadImageAsBase64(String url, String cid, FileInfo fileInfo, {double? maxWidth, bool? compress}); } \ No newline at end of file diff --git a/lib/features/composer/data/datasource_impl/composer_datasource_impl.dart b/lib/features/composer/data/datasource_impl/composer_datasource_impl.dart index 60de37fab..a609133da 100644 --- a/lib/features/composer/data/datasource_impl/composer_datasource_impl.dart +++ b/lib/features/composer/data/datasource_impl/composer_datasource_impl.dart @@ -1,5 +1,6 @@ import 'package:core/core.dart'; +import 'package:model/upload/file_info.dart'; import 'package:tmail_ui_user/features/composer/data/datasource/composer_datasource.dart'; class ComposerDataSourceImpl extends ComposerDataSource { @@ -9,7 +10,14 @@ class ComposerDataSourceImpl extends ComposerDataSource { ComposerDataSourceImpl(this.downloadClient); @override - Future downloadImageAsBase64(String url) { - return downloadClient.downloadImageAsBase64(url); + Future downloadImageAsBase64(String url, String cid, FileInfo fileInfo, {double? maxWidth, bool? compress}) { + return downloadClient.downloadImageAsBase64( + url, + cid, + fileInfo.fileExtension, + fileInfo.fileName, + bytesData: fileInfo.bytes, + maxWidth: maxWidth, + compress: compress); } } \ No newline at end of file diff --git a/lib/features/composer/data/repository/composer_repository_impl.dart b/lib/features/composer/data/repository/composer_repository_impl.dart index fe9106548..904fd52c0 100644 --- a/lib/features/composer/data/repository/composer_repository_impl.dart +++ b/lib/features/composer/data/repository/composer_repository_impl.dart @@ -21,7 +21,7 @@ class ComposerRepositoryImpl extends ComposerRepository { } @override - Future downloadImageAsBase64(String url) { - return _composerDataSource.downloadImageAsBase64(url); + Future downloadImageAsBase64(String url, String cid, FileInfo fileInfo, {double? maxWidth, bool? compress}) { + return _composerDataSource.downloadImageAsBase64(url, cid, fileInfo, maxWidth: maxWidth, compress: compress); } } \ No newline at end of file diff --git a/lib/features/composer/domain/repository/composer_repository.dart b/lib/features/composer/domain/repository/composer_repository.dart index a184011cc..a3eb8cf3f 100644 --- a/lib/features/composer/domain/repository/composer_repository.dart +++ b/lib/features/composer/domain/repository/composer_repository.dart @@ -5,5 +5,5 @@ import 'package:tmail_ui_user/features/upload/domain/model/upload_attachment.dar abstract class ComposerRepository { UploadAttachment uploadAttachment(FileInfo fileInfo, Uri uploadUri, {CancelToken? cancelToken}); - Future downloadImageAsBase64(String url); + Future downloadImageAsBase64(String url, String cid, FileInfo fileInfo, {double? maxWidth, bool? compress}); } \ No newline at end of file diff --git a/lib/features/composer/domain/state/download_image_as_base64_state.dart b/lib/features/composer/domain/state/download_image_as_base64_state.dart index 93f9c3cba..fd0e5481d 100644 --- a/lib/features/composer/domain/state/download_image_as_base64_state.dart +++ b/lib/features/composer/domain/state/download_image_as_base64_state.dart @@ -13,14 +13,14 @@ class DownloadingImageAsBase64 extends UIState { class DownloadImageAsBase64Success extends UIState { - final String imageAsBase64; + final String base64Uri; final String cid; final FileInfo fileInfo; - DownloadImageAsBase64Success(this.imageAsBase64, this.cid, this.fileInfo); + DownloadImageAsBase64Success(this.base64Uri, this.cid, this.fileInfo); @override - List get props => [imageAsBase64, cid, fileInfo]; + List get props => [base64Uri, cid, fileInfo]; } class DownloadImageAsBase64Failure extends FeatureFailure { diff --git a/lib/features/composer/domain/usecases/download_image_as_base64_interactor.dart b/lib/features/composer/domain/usecases/download_image_as_base64_interactor.dart index 2cf7f4b95..3f37fb5bf 100644 --- a/lib/features/composer/domain/usecases/download_image_as_base64_interactor.dart +++ b/lib/features/composer/domain/usecases/download_image_as_base64_interactor.dart @@ -9,10 +9,23 @@ class DownloadImageAsBase64Interactor { DownloadImageAsBase64Interactor(this._composerRepository); - Stream> execute(String url, String cid, FileInfo fileInfo) async* { + Stream> execute( + String url, + String cid, + FileInfo fileInfo, + { + double? maxWidth, + bool? compress + } + ) async* { try { yield Right(DownloadingImageAsBase64()); - final result = await _composerRepository.downloadImageAsBase64(url); + final result = await _composerRepository.downloadImageAsBase64( + url, + cid, + fileInfo, + maxWidth: maxWidth, + compress: compress); if (result?.isNotEmpty == true) { yield Right(DownloadImageAsBase64Success(result!, cid, fileInfo)); } else {