TF-3082 Restore identity from cache
This commit is contained in:
@@ -32,6 +32,11 @@ import 'package:tmail_ui_user/features/email/domain/usecases/unsubscribe_email_i
|
||||
import 'package:tmail_ui_user/features/email/presentation/bindings/email_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/repository/session_repository.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/usecases/store_session_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/data/datasource/identity_creator_data_source.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/data/datasource_impl/local_identity_creator_data_source_impl.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/data/repository/identity_creator_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/domain/repository/identity_creator_repository.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/domain/usecase/get_identity_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource/state_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart';
|
||||
@@ -158,6 +163,7 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.find<DeleteEmailPermanentlyInteractor>(),
|
||||
Get.find<MarkAsMailboxReadInteractor>(),
|
||||
Get.find<GetComposerCacheOnWebInteractor>(),
|
||||
Get.find<GetIdentityCacheOnWebInteractor>(),
|
||||
Get.find<MarkAsEmailReadInteractor>(),
|
||||
Get.find<MarkAsStarEmailInteractor>(),
|
||||
Get.find<MarkAsMultipleEmailReadInteractor>(),
|
||||
@@ -197,6 +203,7 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.lazyPut<MailboxCacheDataSourceImpl>(() => Get.find<MailboxCacheDataSourceImpl>());
|
||||
Get.lazyPut<ServerSettingsDataSource>(
|
||||
() => Get.find<RemoteServerSettingsDataSourceImpl>());
|
||||
Get.lazyPut<IdentityCreatorDataSource>(() => Get.find<LocalIdentityCreatorDataSourceImpl>());
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -260,6 +267,9 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.find<ServerSettingsAPI>(),
|
||||
Get.find<RemoteExceptionThrower>()
|
||||
));
|
||||
Get.lazyPut(() => LocalIdentityCreatorDataSourceImpl(
|
||||
Get.find<CacheExceptionThrower>()
|
||||
));
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -346,6 +356,9 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.find<IdentityRepository>(),
|
||||
Get.find<IdentityUtils>()
|
||||
));
|
||||
Get.lazyPut(() => GetIdentityCacheOnWebInteractor(
|
||||
Get.find<IdentityCreatorRepository>()
|
||||
));
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -359,6 +372,7 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.lazyPut<SpamReportRepository>(() => Get.find<SpamReportRepositoryImpl>());
|
||||
Get.lazyPut<MailboxRepository>(() => Get.find<MailboxRepositoryImpl>());
|
||||
Get.lazyPut<ServerSettingsRepository>(() => Get.find<ServerSettingsRepositoryImpl>());
|
||||
Get.lazyPut<IdentityCreatorRepository>(() => Get.find<IdentityCreatorRepositoryImpl>());
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -403,5 +417,8 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.find<StateDataSource>(),
|
||||
));
|
||||
Get.lazyPut(() => ServerSettingsRepositoryImpl(Get.find<ServerSettingsDataSource>()));
|
||||
Get.lazyPut(() => IdentityCreatorRepositoryImpl(
|
||||
Get.find<IdentityCreatorDataSource>()
|
||||
));
|
||||
}
|
||||
}
|
||||
+17
@@ -72,6 +72,8 @@ import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart
|
||||
import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/usecases/store_session_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/domain/state/get_identity_cache_on_web_state.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/domain/usecase/get_identity_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/mailbox_exception.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||
@@ -174,6 +176,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
||||
final DeleteEmailPermanentlyInteractor _deleteEmailPermanentlyInteractor;
|
||||
final MarkAsMailboxReadInteractor _markAsMailboxReadInteractor;
|
||||
final GetComposerCacheOnWebInteractor _getEmailCacheOnWebInteractor;
|
||||
final GetIdentityCacheOnWebInteractor _getIdentityCacheOnWebInteractor;
|
||||
final MarkAsEmailReadInteractor _markAsEmailReadInteractor;
|
||||
final MarkAsStarEmailInteractor _markAsStarEmailInteractor;
|
||||
final MarkAsMultipleEmailReadInteractor _markAsMultipleEmailReadInteractor;
|
||||
@@ -257,6 +260,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
||||
this._deleteEmailPermanentlyInteractor,
|
||||
this._markAsMailboxReadInteractor,
|
||||
this._getEmailCacheOnWebInteractor,
|
||||
this._getIdentityCacheOnWebInteractor,
|
||||
this._markAsEmailReadInteractor,
|
||||
this._markAsStarEmailInteractor,
|
||||
this._markAsMultipleEmailReadInteractor,
|
||||
@@ -310,6 +314,15 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
||||
sessionCurrent!.username));
|
||||
}
|
||||
|
||||
void _handleIdentityCache() async {
|
||||
if (accountId.value == null || sessionCurrent == null) return;
|
||||
|
||||
consumeState(
|
||||
_getIdentityCacheOnWebInteractor.execute(
|
||||
accountId.value!,
|
||||
sessionCurrent!.username));
|
||||
}
|
||||
|
||||
@override
|
||||
void handleSuccessViewState(Success success) {
|
||||
super.handleSuccessViewState(success);
|
||||
@@ -384,6 +397,8 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
||||
_handleGetAllIdentitiesSuccess(success);
|
||||
} else if (success is GetComposerCacheSuccess) {
|
||||
goToComposer(ComposerArguments.fromSessionStorageBrowser(success.composerCache));
|
||||
} else if (success is GetIdentityCacheOnWebSuccess) {
|
||||
goToSettings();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,6 +426,8 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
||||
} else if (failure is EmptySpamFolderFailure
|
||||
|| failure is MoveMultipleEmailToMailboxFailure) {
|
||||
toastManager.showMessageFailure(failure);
|
||||
} else if (failure is GetComposerCacheFailure) {
|
||||
_handleIdentityCache();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user