From c3224155ab83de99140b5ace4771d85b9c75dc07 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 11 Jul 2023 17:11:20 +0700 Subject: [PATCH] TF-2008 Only display the toast message of losing network connection on the web (cherry picked from commit a9c945ba37cca89c4051a5a1efefe993a6fb3745) --- lib/features/base/base_controller.dart | 25 +++++++++++-------- .../presentation/composer_controller.dart | 2 +- .../mailbox_dashboard_controller.dart | 2 +- .../network_connection_controller.dart} | 22 ++++++++-------- .../sending_queue_controller.dart | 2 +- .../network_connection_bindings.dart | 2 +- .../exceptions/remote_exception_thrower.dart | 2 +- 7 files changed, 31 insertions(+), 26 deletions(-) rename lib/features/{network_status_handle/presentation/network_connnection_controller.dart => network_connection/presentation/network_connection_controller.dart} (89%) diff --git a/lib/features/base/base_controller.dart b/lib/features/base/base_controller.dart index a983f54a7..4c70790a2 100644 --- a/lib/features/base/base_controller.dart +++ b/lib/features/base/base_controller.dart @@ -7,6 +7,7 @@ import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/views/toast/tmail_toast.dart'; import 'package:core/utils/app_logger.dart'; import 'package:core/utils/fps_manager.dart'; +import 'package:core/utils/platform_info.dart'; import 'package:dartz/dartz.dart'; import 'package:fcm/model/firebase_capability.dart'; import 'package:flutter/material.dart'; @@ -121,17 +122,19 @@ abstract class BaseController extends GetxController logError('BaseController::_performFilterExceptionInError(): $error'); if (error is NoNetworkError || error is ConnectionTimeout || error is InternalServerError) { logError('BaseController::_performFilterExceptionInError(): NoNetworkError'); - if (currentOverlayContext != null && currentContext != null) { - _appToast.showToastMessage( - currentOverlayContext!, - AppLocalizations.of(currentContext!).no_internet_connection, - actionName: AppLocalizations.of(currentContext!).skip, - onActionClick: ToastView.dismiss, - leadingSVGIcon: _imagePaths.icNotConnection, - backgroundColor: AppColor.textFieldErrorBorderColor, - textColor: Colors.white, - infinityToast: true, - ); + if (PlatformInfo.isWeb) { + if (currentOverlayContext != null && currentContext != null) { + _appToast.showToastMessage( + currentOverlayContext!, + AppLocalizations.of(currentContext!).no_internet_connection, + actionName: AppLocalizations.of(currentContext!).skip, + onActionClick: ToastView.dismiss, + leadingSVGIcon: _imagePaths.icNotConnection, + backgroundColor: AppColor.textFieldErrorBorderColor, + textColor: Colors.white, + infinityToast: true, + ); + } } return error; } else if (error is BadCredentialsException) { diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 6caf9924e..b51f2a70c 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -58,7 +58,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/extensions/identity_extension.dart'; -import 'package:tmail_ui_user/features/network_status_handle/presentation/network_connnection_controller.dart'; +import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/extensions/sending_email_extension.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_action_type.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_arguments.dart'; diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index c15f2e0a4..e1b29772d 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -83,7 +83,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/extensions/da import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart'; -import 'package:tmail_ui_user/features/network_status_handle/presentation/network_connnection_controller.dart'; +import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart'; import 'package:tmail_ui_user/features/offline_mode/config/work_manager_constants.dart'; import 'package:tmail_ui_user/features/offline_mode/controller/work_manager_controller.dart'; import 'package:tmail_ui_user/features/offline_mode/work_manager/one_time_work_request.dart'; diff --git a/lib/features/network_status_handle/presentation/network_connnection_controller.dart b/lib/features/network_connection/presentation/network_connection_controller.dart similarity index 89% rename from lib/features/network_status_handle/presentation/network_connnection_controller.dart rename to lib/features/network_connection/presentation/network_connection_controller.dart index 047f0a236..490464029 100644 --- a/lib/features/network_status_handle/presentation/network_connnection_controller.dart +++ b/lib/features/network_connection/presentation/network_connection_controller.dart @@ -44,11 +44,7 @@ class NetworkConnectionController extends BaseController { final currentConnectionResult = await _connectivity.checkConnectivity(); log('NetworkConnectionController::onReady():_getCurrentNetworkConnectionState: $currentConnectionResult'); _setNetworkConnectivityState(currentConnectionResult); - if (_isEnableShowToastDisconnection && !isNetworkConnectionAvailable()) { - _showToastLostConnection(); - } else { - ToastView.dismiss(); - } + _handleNetworkConnectionState(); } void _listenNetworkConnectionChanged() { @@ -56,11 +52,7 @@ class NetworkConnectionController extends BaseController { (result) { log('NetworkConnectionController::_listenNetworkConnectionChanged():onConnectivityChanged: $result'); _setNetworkConnectivityState(result); - if (_isEnableShowToastDisconnection && !isNetworkConnectionAvailable()) { - _showToastLostConnection(); - } else { - ToastView.dismiss(); - } + _handleNetworkConnectionState(); }, onError: (error, stackTrace) { logError('NetworkConnectionController::_listenNetworkConnectionChanged():error: $error'); @@ -77,6 +69,16 @@ class NetworkConnectionController extends BaseController { return connectivityResult.value != ConnectivityResult.none; } + void _handleNetworkConnectionState() { + if (PlatformInfo.isWeb) { + if (_isEnableShowToastDisconnection && !isNetworkConnectionAvailable()) { + _showToastLostConnection(); + } else { + ToastView.dismiss(); + } + } + } + void _showToastLostConnection() { if (currentContext != null && currentOverlayContext != null) { _appToast.showToastMessage( diff --git a/lib/features/sending_queue/presentation/sending_queue_controller.dart b/lib/features/sending_queue/presentation/sending_queue_controller.dart index fa9230245..a5a6642c5 100644 --- a/lib/features/sending_queue/presentation/sending_queue_controller.dart +++ b/lib/features/sending_queue/presentation/sending_queue_controller.dart @@ -19,7 +19,7 @@ import 'package:tmail_ui_user/features/caching/utils/cache_utils.dart'; import 'package:tmail_ui_user/features/email/domain/state/delete_sending_email_state.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; -import 'package:tmail_ui_user/features/network_status_handle/presentation/network_connnection_controller.dart'; +import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart'; import 'package:tmail_ui_user/features/offline_mode/controller/work_manager_controller.dart'; import 'package:tmail_ui_user/features/offline_mode/model/sending_state.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/extensions/list_sending_email_extension.dart'; diff --git a/lib/main/bindings/network_connection/network_connection_bindings.dart b/lib/main/bindings/network_connection/network_connection_bindings.dart index 14db154a9..3bb2be3a7 100644 --- a/lib/main/bindings/network_connection/network_connection_bindings.dart +++ b/lib/main/bindings/network_connection/network_connection_bindings.dart @@ -1,7 +1,7 @@ import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/base_bindings.dart'; -import 'package:tmail_ui_user/features/network_status_handle/presentation/network_connnection_controller.dart'; +import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart'; class NetWorkConnectionBindings extends BaseBindings { diff --git a/lib/main/exceptions/remote_exception_thrower.dart b/lib/main/exceptions/remote_exception_thrower.dart index 0e5f54550..db8bb01ae 100644 --- a/lib/main/exceptions/remote_exception_thrower.dart +++ b/lib/main/exceptions/remote_exception_thrower.dart @@ -6,7 +6,7 @@ import 'package:get/get_connect/http/src/status/http_status.dart'; import 'package:jmap_dart_client/jmap/core/error/method/error_method_response.dart'; import 'package:jmap_dart_client/jmap/core/error/method/exception/error_method_response_exception.dart'; import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart'; -import 'package:tmail_ui_user/features/network_status_handle/presentation/network_connnection_controller.dart'; +import 'package:tmail_ui_user/features/network_connection/presentation/network_connection_controller.dart'; import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart';