diff --git a/core/lib/utils/app_logger.dart b/core/lib/utils/app_logger.dart index 439a29e2b..46e263b8f 100644 --- a/core/lib/utils/app_logger.dart +++ b/core/lib/utils/app_logger.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:core/utils/build_utils.dart'; import 'package:core/utils/platform_info.dart'; import 'package:core/utils/sentry/sentry_manager.dart'; @@ -59,26 +61,33 @@ void _internalLog( ? PlatformInfo.isWeb : BuildUtils.isDebugMode; - if (!shouldPrint) { + final shouldSentry = _shouldReportToSentry(level); + + if (!shouldPrint && !shouldSentry) { return; } final rawMessage = _buildRawMessage(message, exception, extras, stackTrace); - final formattedMessage = _formatMessage(level, rawMessage); - if (webConsoleEnabled && PlatformInfo.isWeb) { - _printWebConsole(level, formattedMessage); - } else { - // ignore: avoid_print - print('$appLogName $formattedMessage'); + if (shouldPrint) { + final formattedMessage = _formatMessage(level, rawMessage); + + if (webConsoleEnabled && PlatformInfo.isWeb) { + _printWebConsole(level, formattedMessage); + } else { + // ignore: avoid_print + print('$appLogName $formattedMessage'); + } } - if (_shouldReportToSentry(level)) { - SentryManager.instance.captureException( - exception ?? rawMessage, - stackTrace: stackTrace, - message: rawMessage, - extras: extras, + if (shouldSentry) { + unawaited( + SentryManager.instance.captureException( + exception ?? rawMessage, + stackTrace: stackTrace, + message: rawMessage, + extras: extras, + ), ); } } diff --git a/core/lib/utils/application_manager.dart b/core/lib/utils/application_manager.dart index 78a16adb5..f68b575fb 100644 --- a/core/lib/utils/application_manager.dart +++ b/core/lib/utils/application_manager.dart @@ -2,71 +2,159 @@ import 'package:core/utils/app_logger.dart'; import 'package:core/utils/platform_info.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:fk_user_agent/fk_user_agent.dart'; -import 'package:flutter/cupertino.dart'; +import 'package:flutter/foundation.dart'; import 'package:package_info_plus/package_info_plus.dart'; class ApplicationManager { + ApplicationManager._internal(); + static final ApplicationManager _instance = ApplicationManager._internal(); factory ApplicationManager() => _instance; - ApplicationManager._internal(); - - // Allow overriding in unit tests @visibleForTesting static DeviceInfoPlugin? debugDeviceInfoOverride; - DeviceInfoPlugin get _deviceInfoPlugin => + DeviceInfoPlugin get _deviceInfo => debugDeviceInfoOverride ?? DeviceInfoPlugin(); - Future getPackageInfo() async { - final packageInfo = await PackageInfo.fromPlatform(); - log('ApplicationManager::getPackageInto: $packageInfo'); - return packageInfo; + PackageInfo? _packageInfoCache; + String? _versionCache; + String? _cachedWebUserAgent; + String? _cachedMobileUserAgent; + bool _isMobileUserAgentInitialized = false; + + @visibleForTesting + void clearCache() { + _packageInfoCache = null; + _versionCache = null; + _cachedWebUserAgent = null; + _cachedMobileUserAgent = null; } - Future getVersion() async { + Future getPackageInfo() async { + if (_packageInfoCache != null) { + return _packageInfoCache!; + } + + final info = await PackageInfo.fromPlatform(); + _packageInfoCache = info; + + log('ApplicationManager:getPackageInfo -> cached: $info'); + return info; + } + + Future getAppVersion() async { + if (_versionCache != null) { + return _versionCache!; + } + try { final version = (await getPackageInfo()).version; - log('ApplicationManager::getVersion: $version'); + _versionCache = version; + + log('ApplicationManager:getAppVersion -> cached: $version'); return version; } catch (e) { - return ''; - } - } - - Future getUserAgent() async { - try { - String userAgent = ''; - if (PlatformInfo.isWeb) { - final webBrowserInfo = await _deviceInfoPlugin.webBrowserInfo; - userAgent = webBrowserInfo.userAgent ?? ''; - } else if (PlatformInfo.isMobile) { - userAgent = FkUserAgent.userAgent ?? ''; - } - log('ApplicationManager::getUserAgent: $userAgent'); - return userAgent; - } catch(e) { - logWarning('ApplicationManager::getUserAgent: Exception: $e'); + logWarning('ApplicationManager:getAppVersion failedd, Exception = $e'); return ''; } } Future initUserAgent() async { - if (PlatformInfo.isMobile) { + if (!PlatformInfo.isMobile) return; + + try { await FkUserAgent.init(); + _isMobileUserAgentInitialized = true; + _cachedMobileUserAgent = null; + + log('ApplicationManager:initUserAgent -> initialized'); + } catch (e) { + logWarning('ApplicationManager:initUserAgent failed, Exception $e'); } } Future releaseUserAgent() async { - if (PlatformInfo.isMobile) { + if (!PlatformInfo.isMobile) return; + + try { FkUserAgent.release(); + _isMobileUserAgentInitialized = false; + _cachedMobileUserAgent = null; + + log('ApplicationManager:releaseUserAgent -> released & cache cleared'); + } catch (e) { + logWarning('ApplicationManager:releaseUserAgent failed, Exception $e'); } } - Future generateApplicationUserAgent() async { - final userAgent = await getUserAgent(); - final version = await getVersion(); - return 'Twake-Mail/$version $userAgent'; + Future getUserAgent() async { + try { + if (PlatformInfo.isWeb) { + return _getWebUserAgent(); + } + + if (PlatformInfo.isMobile) { + return _getMobileUserAgent(); + } + + return ''; + } catch (e) { + logWarning('ApplicationManager:getUserAgent failed'); + return ''; + } } -} \ No newline at end of file + + Future _getWebUserAgent() async { + if (_cachedWebUserAgent != null) { + return _cachedWebUserAgent!; + } + + WebBrowserInfo webInfo; + + try { + webInfo = await _deviceInfo.webBrowserInfo; + } catch (e) { + logWarning('ApplicationManager:_getWebUserAgent failed, Exception $e'); + return ''; + } + + final userAgent = webInfo.userAgent ?? ''; + _cachedWebUserAgent = userAgent; + + log('ApplicationManager:_getWebUserAgent -> cached'); + return userAgent; + } + + Future _getMobileUserAgent() async { + if (!_isMobileUserAgentInitialized) { + logWarning( + 'ApplicationManager:_getMobileUserAgent called before initUserAgent', + ); + return ''; + } + + if (_cachedMobileUserAgent != null) { + return _cachedMobileUserAgent!; + } + + final userAgent = FkUserAgent.userAgent; + + if (userAgent == null || userAgent.isEmpty) { + return ''; + } + + _cachedMobileUserAgent = userAgent; + log('ApplicationManager:_getMobileUserAgent -> cached'); + + return userAgent; + } + + Future generateApplicationUserAgent() async { + final version = await getAppVersion(); + final userAgent = await getUserAgent(); + + return 'Twake-Mail/$version $userAgent'.trim(); + } +} diff --git a/core/lib/utils/sentry/sentry_config.dart b/core/lib/utils/sentry/sentry_config.dart index 72c1bcf84..a316b9940 100644 --- a/core/lib/utils/sentry/sentry_config.dart +++ b/core/lib/utils/sentry/sentry_config.dart @@ -62,7 +62,7 @@ class SentryConfig { throw Exception('Sentry configuration is missing'); } - final appVersion = await ApplicationManager().getVersion(); + final appVersion = await ApplicationManager().getAppVersion(); return SentryConfig( dsn: sentryDSN, diff --git a/core/test/utils/application_manager_test.dart b/core/test/utils/application_manager_test.dart index 4c1ee11a1..abef82a37 100644 --- a/core/test/utils/application_manager_test.dart +++ b/core/test/utils/application_manager_test.dart @@ -22,6 +22,7 @@ void main() { ApplicationManager.debugDeviceInfoOverride = mockDeviceInfoPlugin; applicationManager = ApplicationManager(); + applicationManager.clearCache(); }); tearDown(() { @@ -38,97 +39,170 @@ void main() { FkUserAgent.release(); }); - group('ApplicationManager::getUserAgent test', () { + group('ApplicationManager::getUserAgent', () { test( - 'WHEN platform is Web THEN getUserAgent should return user agent for web', - () async { - const webUserAgent = 'User-Agent-Twake-Mail-Web'; + 'WHEN platform is Web THEN return web userAgent AND cache it', + () async { + const webUserAgent = 'User-Agent-Twake-Mail-Web'; - PlatformInfo.isTestingForWeb = true; + PlatformInfo.isTestingForWeb = true; - when(mockDeviceInfoPlugin.webBrowserInfo).thenAnswer( - (_) async => WebBrowserInfo( - userAgent: webUserAgent, - appCodeName: '', - appName: '', - appVersion: '', - deviceMemory: null, - language: '', - languages: [], - platform: '', - product: '', - productSub: '', - vendor: '', - vendorSub: '', - maxTouchPoints: null, - hardwareConcurrency: null, - ), - ); + when(mockDeviceInfoPlugin.webBrowserInfo).thenAnswer( + (_) async => WebBrowserInfo( + userAgent: webUserAgent, + appCodeName: '', + appName: '', + appVersion: '', + deviceMemory: null, + language: '', + languages: const [], + platform: '', + product: '', + productSub: '', + vendor: '', + vendorSub: '', + maxTouchPoints: null, + hardwareConcurrency: null, + ), + ); - final userAgent = await applicationManager.getUserAgent(); + final firstCall = await applicationManager.getUserAgent(); + final secondCall = await applicationManager.getUserAgent(); - expect(userAgent, webUserAgent); - }); + expect(firstCall, webUserAgent); + expect(secondCall, webUserAgent); + + // platform channel must be called only once (cached) + verify(mockDeviceInfoPlugin.webBrowserInfo).called(1); + }, + ); test( - 'WHEN platform is Android THEN getUserAgent should return user agent for Android', - () async { - debugDefaultTargetPlatformOverride = TargetPlatform.android; + 'WHEN platform is Android THEN return mobile userAgent AND cache it', + () async { + debugDefaultTargetPlatformOverride = TargetPlatform.android; - const androidUserAgent = 'User-Agent-Twake-Mail-Android'; + const androidUserAgent = 'User-Agent-Twake-Mail-Android'; - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler( - const MethodChannel('fk_user_agent'), - (message) async { - if (message.method == 'getProperties') { - return {'userAgent': androidUserAgent}; - } - return null; - }, - ); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler( + const MethodChannel('fk_user_agent'), + (message) async { + if (message.method == 'getProperties') { + return {'userAgent': androidUserAgent}; + } + return null; + }, + ); - await FkUserAgent.init(); + await applicationManager.initUserAgent(); - final userAgent = await applicationManager.getUserAgent(); + final firstCall = await applicationManager.getUserAgent(); + final secondCall = await applicationManager.getUserAgent(); - expect(userAgent, androidUserAgent); - }); + expect(firstCall, androidUserAgent); + expect(secondCall, androidUserAgent); + }, + ); test( - 'WHEN platform is Web AND mockDeviceInfoPlugin.webBrowserInfo throws exception THEN return empty string', - () async { - PlatformInfo.isTestingForWeb = true; + 'WHEN platform is Web AND webBrowserInfo throws exception THEN return empty string', + () async { + PlatformInfo.isTestingForWeb = true; - when(mockDeviceInfoPlugin.webBrowserInfo) - .thenThrow(Exception('Failed to get web browser info')); + when(mockDeviceInfoPlugin.webBrowserInfo).thenAnswer( + (_) => Future.error( + Exception('Failed to get web browser info'), + ), + ); - final userAgent = await applicationManager.getUserAgent(); + final userAgent = await applicationManager.getUserAgent(); - expect(userAgent, ''); - }); + expect(userAgent, ''); + }, + ); test( - 'WHEN platform is Android AND FkUserAgent.userAgent empty THEN return empty string', - () async { - debugDefaultTargetPlatformOverride = TargetPlatform.android; + 'WHEN platform is Android AND FkUserAgent returns empty THEN return empty string', + () async { + debugDefaultTargetPlatformOverride = TargetPlatform.android; - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler( - const MethodChannel('fk_user_agent'), - (message) async { - if (message.method == 'getProperties') { - return {}; - } - return null; - }, - ); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler( + const MethodChannel('fk_user_agent'), + (message) async { + if (message.method == 'getProperties') { + return {}; + } + return null; + }, + ); - await FkUserAgent.init(); + await applicationManager.initUserAgent(); - final userAgent = await applicationManager.getUserAgent(); + final userAgent = await applicationManager.getUserAgent(); - expect(userAgent, ''); - }); + expect(userAgent, ''); + }, + ); + + test( + 'WHEN mobile userAgent is released THEN getUserAgent returns empty string', + () async { + debugDefaultTargetPlatformOverride = TargetPlatform.android; + + const androidUserAgent = 'User-Agent-Twake-Mail-Android'; + + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler( + const MethodChannel('fk_user_agent'), + (message) async { + if (message.method == 'getProperties') { + return {'userAgent': androidUserAgent}; + } + return null; + }, + ); + + await applicationManager.initUserAgent(); + + final firstCall = await applicationManager.getUserAgent(); + await applicationManager.releaseUserAgent(); + final secondCall = await applicationManager.getUserAgent(); + + expect(firstCall, androidUserAgent); + expect(secondCall, ''); + }, + ); + + test( + 'WHEN mobile userAgent is released AND re-initialized THEN cache rebuilt', + () async { + debugDefaultTargetPlatformOverride = TargetPlatform.android; + + const androidUserAgent = 'User-Agent-Twake-Mail-Android'; + + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler( + const MethodChannel('fk_user_agent'), + (message) async { + if (message.method == 'getProperties') { + return {'userAgent': androidUserAgent}; + } + return null; + }, + ); + + await applicationManager.initUserAgent(); + final firstCall = await applicationManager.getUserAgent(); + + await applicationManager.releaseUserAgent(); + await applicationManager.initUserAgent(); + final secondCall = await applicationManager.getUserAgent(); + + expect(firstCall, androidUserAgent); + expect(secondCall, androidUserAgent); + }, + ); }); } diff --git a/lib/features/base/widget/application_version_widget.dart b/lib/features/base/widget/application_version_widget.dart index 81608a987..a34bddd5d 100644 --- a/lib/features/base/widget/application_version_widget.dart +++ b/lib/features/base/widget/application_version_widget.dart @@ -1,7 +1,6 @@ import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/utils/application_manager.dart'; import 'package:flutter/material.dart'; -import 'package:get/get.dart'; class ApplicationVersionWidget extends StatefulWidget { @@ -22,13 +21,12 @@ class ApplicationVersionWidget extends StatefulWidget { class _ApplicationVersionWidgetState extends State { - final ApplicationManager _applicationManager = Get.find(); Future? _versionStream; @override void initState() { super.initState(); - _versionStream = _applicationManager.getVersion(); + _versionStream = ApplicationManager().getAppVersion(); } @override diff --git a/lib/features/composer/data/repository/composer_repository_impl.dart b/lib/features/composer/data/repository/composer_repository_impl.dart index d8d1d1507..9c784ffb7 100644 --- a/lib/features/composer/data/repository/composer_repository_impl.dart +++ b/lib/features/composer/data/repository/composer_repository_impl.dart @@ -24,14 +24,12 @@ class ComposerRepositoryImpl extends ComposerRepository { final AttachmentUploadDataSource _attachmentUploadDataSource; final ComposerDataSource _composerDataSource; final HtmlDataSource _htmlDataSource; - final ApplicationManager _applicationManager; final Uuid _uuid; ComposerRepositoryImpl( this._attachmentUploadDataSource, this._composerDataSource, this._htmlDataSource, - this._applicationManager, this._uuid, ); @@ -74,7 +72,7 @@ class ComposerRepositoryImpl extends ComposerRepository { emailContent = HtmlUtils.wrapPlainTextLinks(emailContent); - final userAgent = await _applicationManager.generateApplicationUserAgent(); + final userAgent = await ApplicationManager().generateApplicationUserAgent(); final emailBodyPartId = PartId(_uuid.v1()); final emailObject = createEmailRequest.generateEmail( diff --git a/lib/features/composer/presentation/composer_bindings.dart b/lib/features/composer/presentation/composer_bindings.dart index 27cc6b6ad..bd2da13c6 100644 --- a/lib/features/composer/presentation/composer_bindings.dart +++ b/lib/features/composer/presentation/composer_bindings.dart @@ -196,7 +196,6 @@ class ComposerBindings extends BaseBindings { Get.find(tag: composerId), Get.find(tag: composerId), Get.find(tag: composerId), - Get.find(), Get.find(), ), tag: composerId); Get.lazyPut( diff --git a/lib/features/public_asset/presentation/public_asset_bindings.dart b/lib/features/public_asset/presentation/public_asset_bindings.dart index 691e5b31e..c6bc2d956 100644 --- a/lib/features/public_asset/presentation/public_asset_bindings.dart +++ b/lib/features/public_asset/presentation/public_asset_bindings.dart @@ -1,5 +1,4 @@ import 'package:core/data/network/download/download_client.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/http/http_client.dart'; import 'package:tmail_ui_user/features/base/base_bindings.dart'; @@ -11,12 +10,12 @@ import 'package:tmail_ui_user/features/composer/domain/usecases/upload_attachmen import 'package:tmail_ui_user/features/email/data/datasource/html_datasource.dart'; import 'package:tmail_ui_user/features/email/data/datasource_impl/html_datasource_impl.dart'; import 'package:tmail_ui_user/features/email/data/local/html_analyzer.dart'; -import 'package:tmail_ui_user/features/public_asset/domain/usecase/create_public_asset_interactor.dart'; import 'package:tmail_ui_user/features/public_asset/data/datasource/public_asset_datasource.dart'; import 'package:tmail_ui_user/features/public_asset/data/datasource_impl/remote_public_asset_datasource_impl.dart'; import 'package:tmail_ui_user/features/public_asset/data/network/public_asset_api.dart'; import 'package:tmail_ui_user/features/public_asset/data/repository/public_asset_repository_impl.dart'; import 'package:tmail_ui_user/features/public_asset/domain/repository/public_asset_repository.dart'; +import 'package:tmail_ui_user/features/public_asset/domain/usecase/create_public_asset_interactor.dart'; import 'package:tmail_ui_user/features/public_asset/domain/usecase/delete_public_assets_interactor.dart'; import 'package:tmail_ui_user/features/public_asset/presentation/model/public_asset_arguments.dart'; import 'package:tmail_ui_user/features/public_asset/presentation/public_asset_controller.dart'; @@ -124,7 +123,6 @@ class PublicAssetBindings extends BaseBindings { Get.find(tag: BindingTag.publicAssetBindingsTag), Get.find(tag: BindingTag.publicAssetBindingsTag), Get.find(tag: BindingTag.publicAssetBindingsTag), - Get.find(), Get.find()), tag: BindingTag.publicAssetBindingsTag); Get.lazyPut( diff --git a/scribe/lib/scribe/ai/data/datasource_impl/ai_datasource_impl.dart b/scribe/lib/scribe/ai/data/datasource_impl/ai_datasource_impl.dart index 00130be62..7ff7b02e7 100644 --- a/scribe/lib/scribe/ai/data/datasource_impl/ai_datasource_impl.dart +++ b/scribe/lib/scribe/ai/data/datasource_impl/ai_datasource_impl.dart @@ -13,7 +13,7 @@ class AIDataSourceImpl implements AIDataSource { try { final apiResponse = await _aiApi.generateMessage(prompt); return AIResponse(result: apiResponse.content); - } on DioError catch (e) { + } on DioException catch (e) { throw Exception('Failed to generate AI text: ${e.message}'); } catch (e) { throw Exception('Failed to generate AI text: $e'); diff --git a/test/features/base/base_controller_test.dart b/test/features/base/base_controller_test.dart index 533e3d61a..341e5cc24 100644 --- a/test/features/base/base_controller_test.dart +++ b/test/features/base/base_controller_test.dart @@ -5,7 +5,6 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/core/account/account.dart'; @@ -69,7 +68,6 @@ class SomeOtherException extends RemoteException {} MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), ]) @@ -88,7 +86,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -104,7 +101,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -123,7 +119,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); Get.testMode = true; diff --git a/test/features/composer/data/repository/composer_repository_impl_test.dart b/test/features/composer/data/repository/composer_repository_impl_test.dart index 1bbd209f9..682891584 100644 --- a/test/features/composer/data/repository/composer_repository_impl_test.dart +++ b/test/features/composer/data/repository/composer_repository_impl_test.dart @@ -1,4 +1,3 @@ -import 'package:core/utils/application_manager.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:http_parser/http_parser.dart'; @@ -8,9 +7,9 @@ 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_address.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart'; -import 'package:model/email/attachment.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; +import 'package:model/email/attachment.dart'; import 'package:model/email/email_action_type.dart'; import 'package:tmail_ui_user/features/composer/data/datasource/composer_datasource.dart'; import 'package:tmail_ui_user/features/composer/data/repository/composer_repository_impl.dart'; @@ -25,7 +24,6 @@ import 'composer_repository_impl_test.mocks.dart'; AttachmentUploadDataSource, ComposerDataSource, HtmlDataSource, - ApplicationManager, Uuid, CreateEmailRequest, Session, @@ -37,7 +35,6 @@ void main() { late MockAttachmentUploadDataSource mockAttachmentUploadDataSource; late MockComposerDataSource mockComposerDataSource; late MockHtmlDataSource mockHtmlDataSource; - late MockApplicationManager mockApplicationManager; late MockUuid mockUuid; late MockCreateEmailRequest mockCreateEmailRequest; late MockSession mockSession; @@ -47,7 +44,6 @@ void main() { mockAttachmentUploadDataSource = MockAttachmentUploadDataSource(); mockComposerDataSource = MockComposerDataSource(); mockHtmlDataSource = MockHtmlDataSource(); - mockApplicationManager = MockApplicationManager(); mockUuid = MockUuid(); mockCreateEmailRequest = MockCreateEmailRequest(); mockSession = MockSession(); @@ -67,7 +63,6 @@ void main() { mockAttachmentUploadDataSource, mockComposerDataSource, mockHtmlDataSource, - mockApplicationManager, mockUuid, ); }); @@ -81,7 +76,6 @@ void main() { 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg=='; const emailContentWithBase64 = '

Hello test image

'; const emailContentWithCid = '

Hello test image

'; - const userAgent = 'TestUserAgent'; const partIdValue = 'part-id-123'; final inlineAttachments = { 'unique-cid': Attachment(name: 'test.png'), @@ -115,9 +109,6 @@ void main() { when(mockHtmlDataSource.removeCollapsedExpandedSignatureEffect(emailContent: emailContentWithCid)) .thenAnswer((_) async => emailContentWithCid); - when(mockApplicationManager.generateApplicationUserAgent()) - .thenAnswer((_) async => userAgent); - when(mockUuid.v1()).thenReturn(partIdValue); // Act @@ -142,7 +133,6 @@ void main() { () async { // Arrange const emailContentWithBase64 = '

Hello test

'; - const userAgent = 'TestUserAgent'; const partIdValue = 'part-id-123'; final inlineAttachments = { 'cid-1': Attachment(name: 'test.png'), @@ -173,9 +163,6 @@ void main() { when(mockHtmlDataSource.removeCollapsedExpandedSignatureEffect(emailContent: emailContentWithBase64)) .thenAnswer((_) async => emailContentWithBase64); - when(mockApplicationManager.generateApplicationUserAgent()) - .thenAnswer((_) async => userAgent); - when(mockUuid.v1()).thenReturn(partIdValue); // Act @@ -197,7 +184,6 @@ void main() { 'generateEmail should process it correctly and return a valid email', () async { const plainEmailContent = '

Hello, this is a simple email

'; - const userAgent = 'TestUserAgent'; const partIdValue = 'part-id-123'; final attachments = [Attachment(name: 'test.png')]; final emailBodyParts = { @@ -228,9 +214,6 @@ void main() { when(mockHtmlDataSource.removeCollapsedExpandedSignatureEffect(emailContent: plainEmailContent)) .thenAnswer((_) async => plainEmailContent); - when(mockApplicationManager.generateApplicationUserAgent()) - .thenAnswer((_) async => userAgent); - when(mockUuid.v1()).thenReturn(partIdValue); final result = await repository.generateEmail(mockCreateEmailRequest); diff --git a/test/features/composer/presentation/composer_controller_test.dart b/test/features/composer/presentation/composer_controller_test.dart index 1620520f0..134b6cc0b 100644 --- a/test/features/composer/presentation/composer_controller_test.dart +++ b/test/features/composer/presentation/composer_controller_test.dart @@ -4,7 +4,6 @@ import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:core/utils/platform_info.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter/material.dart'; @@ -167,7 +166,6 @@ class MockMailboxDashBoardController extends Mock implements MailboxDashBoardCon MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), @@ -211,7 +209,6 @@ void main() { late MockDeleteAuthorityOidcInteractor mockDeleteAuthorityOidcInteractor; late MockAppToast mockAppToast; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -257,7 +254,6 @@ void main() { mockDeleteAuthorityOidcInteractor = MockDeleteAuthorityOidcInteractor(); mockAppToast = MockAppToast(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -276,7 +272,6 @@ void main() { Get.put(ImagePaths()); Get.put(ResponsiveUtils()); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); diff --git a/test/features/email/presentation/controller/single_email_controller_test.dart b/test/features/email/presentation/controller/single_email_controller_test.dart index a2b715e50..9627de553 100644 --- a/test/features/email/presentation/controller/single_email_controller_test.dart +++ b/test/features/email/presentation/controller/single_email_controller_test.dart @@ -92,7 +92,6 @@ const fallbackGenerators = { MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -123,7 +122,6 @@ void main() { final uuid = MockUuid(); final printEmailInteractor = MockPrintEmailInteractor(); final printUtils = MockPrintUtils(); - final applicationManager = MockApplicationManager(); final mockToastManager = MockToastManager(); final mockTwakeAppManager = MockTwakeAppManager(); @@ -159,7 +157,6 @@ void main() { Get.put(responsiveUtils); Get.put(uuid); Get.put(printUtils); - Get.put(applicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); diff --git a/test/features/home/presentation/home_controller_test.dart b/test/features/home/presentation/home_controller_test.dart index 3edd20c03..b68fd24c4 100644 --- a/test/features/home/presentation/home_controller_test.dart +++ b/test/features/home/presentation/home_controller_test.dart @@ -4,7 +4,6 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; @@ -62,7 +61,6 @@ import 'home_controller_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), ]) @@ -95,7 +93,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -126,7 +123,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -150,7 +146,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); Get.testMode = true; diff --git a/test/features/identity_creator/presentation/identity_creator_controller_test.dart b/test/features/identity_creator/presentation/identity_creator_controller_test.dart index 0abe834ba..10f93524d 100644 --- a/test/features/identity_creator/presentation/identity_creator_controller_test.dart +++ b/test/features/identity_creator/presentation/identity_creator_controller_test.dart @@ -4,10 +4,9 @@ import 'package:core/data/network/download/download_client.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; +import 'package:core/utils/file_utils.dart'; import 'package:core/utils/platform_info.dart'; import 'package:dartz/dartz.dart' hide State; -import 'package:core/utils/file_utils.dart'; import 'package:flutter/widgets.dart' hide State; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; @@ -69,7 +68,6 @@ import 'identity_creator_controller_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), // Identity creator controller mockspecs @@ -115,7 +113,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -132,7 +129,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -151,7 +147,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); diff --git a/test/features/login/presentation/login_controller_test.dart b/test/features/login/presentation/login_controller_test.dart index 8e5517139..22cef8d89 100644 --- a/test/features/login/presentation/login_controller_test.dart +++ b/test/features/login/presentation/login_controller_test.dart @@ -3,7 +3,6 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; @@ -82,7 +81,6 @@ import 'login_controller_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), ]) @@ -117,7 +115,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -158,7 +155,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -181,7 +177,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); Get.testMode = true; diff --git a/test/features/mailbox_dashboard/presentation/controller/advanced_filter_controller_test.dart b/test/features/mailbox_dashboard/presentation/controller/advanced_filter_controller_test.dart index 8b687544b..2258728f6 100644 --- a/test/features/mailbox_dashboard/presentation/controller/advanced_filter_controller_test.dart +++ b/test/features/mailbox_dashboard/presentation/controller/advanced_filter_controller_test.dart @@ -2,7 +2,6 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; @@ -12,6 +11,7 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; +import 'package:tmail_ui_user/features/base/model/filter_filter.dart'; import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart'; import 'package:tmail_ui_user/features/login/data/network/interceptors/authorization_interceptors.dart'; @@ -24,7 +24,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_e import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart'; -import 'package:tmail_ui_user/features/base/model/filter_filter.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart'; @@ -57,7 +56,6 @@ const fallbackGenerators = { MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), // Advanced filter controller mock specs @@ -96,7 +94,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -114,7 +111,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -133,7 +129,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); diff --git a/test/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller_test.dart b/test/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller_test.dart index d73f37438..ad8ef821d 100644 --- a/test/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller_test.dart +++ b/test/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller_test.dart @@ -2,7 +2,6 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:flutter/widgets.dart' hide State; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; @@ -190,7 +189,6 @@ const fallbackGenerators = { MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -265,7 +263,6 @@ void main() { final imagePaths = MockImagePaths(); final responsiveUtils = MockResponsiveUtils(); final uuid = MockUuid(); - final applicationManager = MockApplicationManager(); final mockToastManager = MockToastManager(); final mockTwakeAppManager = MockTwakeAppManager(); @@ -341,7 +338,6 @@ void main() { Get.put(imagePaths); Get.put(responsiveUtils); Get.put(uuid); - Get.put(applicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); Get.put(getSessionInteractor); diff --git a/test/features/mailbox_dashboard/presentation/view/mailbox_dashboard_view_widget_test.dart b/test/features/mailbox_dashboard/presentation/view/mailbox_dashboard_view_widget_test.dart index d9f5d2bc9..e2fb34db7 100644 --- a/test/features/mailbox_dashboard/presentation/view/mailbox_dashboard_view_widget_test.dart +++ b/test/features/mailbox_dashboard/presentation/view/mailbox_dashboard_view_widget_test.dart @@ -2,7 +2,6 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart' hide SearchController, State; @@ -200,7 +199,6 @@ const fallbackGenerators = { MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -265,7 +263,6 @@ void main() { final imagePaths = ImagePaths(); final responsiveUtils = MockResponsiveUtils(); final uuid = MockUuid(); - final applicationManager = MockApplicationManager(); final getSessionInteractor = MockGetSessionInteractor(); final getAuthenticatedAccountInteractor = MockGetAuthenticatedAccountInteractor(); @@ -349,7 +346,6 @@ void main() { Get.put(imagePaths); Get.put(responsiveUtils); Get.put(uuid); - Get.put(applicationManager); Get.put(getSessionInteractor); Get.put(getAuthenticatedAccountInteractor); Get.put(updateAccountCacheInteractor); diff --git a/test/features/manage_account/presentation/profiles/identities/identities_controller_test.dart b/test/features/manage_account/presentation/profiles/identities/identities_controller_test.dart index 4c3451343..f8f778bf9 100644 --- a/test/features/manage_account/presentation/profiles/identities/identities_controller_test.dart +++ b/test/features/manage_account/presentation/profiles/identities/identities_controller_test.dart @@ -2,7 +2,6 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; @@ -65,7 +64,6 @@ const fallbackGenerators = { MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), @@ -111,7 +109,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -130,7 +127,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -151,7 +147,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); diff --git a/test/features/rule_filter_creator/presentation/rule_filter_creator_controller_test.dart b/test/features/rule_filter_creator/presentation/rule_filter_creator_controller_test.dart index 3155bcebe..171379a32 100644 --- a/test/features/rule_filter_creator/presentation/rule_filter_creator_controller_test.dart +++ b/test/features/rule_filter_creator/presentation/rule_filter_creator_controller_test.dart @@ -2,7 +2,6 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:dartz/dartz.dart' hide State; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart' hide State; @@ -66,7 +65,6 @@ import 'rule_filter_creator_controller_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), // Rule filter creator controller mock specs @@ -95,7 +93,6 @@ void main() { late ImagePaths imagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -114,7 +111,6 @@ void main() { imagePaths = ImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -133,7 +129,6 @@ void main() { Get.put(imagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); diff --git a/test/features/search/verify_before_time_in_search_email_filter_test.dart b/test/features/search/verify_before_time_in_search_email_filter_test.dart index d50bb3a5e..fe8da56ab 100644 --- a/test/features/search/verify_before_time_in_search_email_filter_test.dart +++ b/test/features/search/verify_before_time_in_search_email_filter_test.dart @@ -5,7 +5,6 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/utils/app_logger.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:dartz/dartz.dart' hide State; import 'package:flutter_test/flutter_test.dart'; import 'package:get/get.dart'; @@ -115,7 +114,6 @@ const fallbackGenerators = { MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), // Thread controller mock specs @@ -251,7 +249,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -269,7 +266,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -288,7 +284,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager); diff --git a/test/features/thread/presentation/controller/thread_controller_test.dart b/test/features/thread/presentation/controller/thread_controller_test.dart index 18f3ed540..62ae6318a 100644 --- a/test/features/thread/presentation/controller/thread_controller_test.dart +++ b/test/features/thread/presentation/controller/thread_controller_test.dart @@ -3,7 +3,6 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; -import 'package:core/utils/application_manager.dart'; import 'package:core/utils/platform_info.dart'; import 'package:dartz/dartz.dart' hide State; import 'package:flutter_test/flutter_test.dart'; @@ -75,7 +74,6 @@ const fallbackGenerators = { MockSpec(), MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), // Thread controller mock specs @@ -118,7 +116,6 @@ void main() { late MockImagePaths mockImagePaths; late MockResponsiveUtils mockResponsiveUtils; late MockUuid mockUuid; - late MockApplicationManager mockApplicationManager; late MockToastManager mockToastManager; late MockTwakeAppManager mockTwakeAppManager; @@ -136,7 +133,6 @@ void main() { mockImagePaths = MockImagePaths(); mockResponsiveUtils = MockResponsiveUtils(); mockUuid = MockUuid(); - mockApplicationManager = MockApplicationManager(); mockToastManager = MockToastManager(); mockTwakeAppManager = MockTwakeAppManager(); @@ -155,7 +151,6 @@ void main() { Get.put(mockImagePaths); Get.put(mockResponsiveUtils); Get.put(mockUuid); - Get.put(mockApplicationManager); Get.put(mockToastManager); Get.put(mockTwakeAppManager);