From 0d785a688a3cb158cd39f6c5c02def14018b3271 Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 5 Aug 2022 11:53:52 +0700 Subject: [PATCH] TF-783 Register listen onConnectivityChanged in login --- .../login/presentation/login_controller.dart | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/features/login/presentation/login_controller.dart b/lib/features/login/presentation/login_controller.dart index 2c32b0c80..201d9c1eb 100644 --- a/lib/features/login/presentation/login_controller.dart +++ b/lib/features/login/presentation/login_controller.dart @@ -1,9 +1,13 @@ +import 'dart:async'; + +import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:core/core.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; +import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; import 'package:tmail_ui_user/features/login/domain/state/authenticate_oidc_on_browser_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/authentication_user_state.dart'; @@ -26,7 +30,7 @@ import 'package:tmail_ui_user/main/routes/app_routes.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; import 'package:tmail_ui_user/main/utils/app_config.dart'; -class LoginController extends GetxController { +class LoginController extends BaseController { final AuthenticationInteractor _authenticationInteractor; final DynamicUrlInterceptors _dynamicUrlInterceptors; @@ -38,8 +42,12 @@ class LoginController extends GetxController { final GetAuthenticationInfoInteractor _getAuthenticationInfoInteractor; final GetStoredOidcConfigurationInteractor _getStoredOidcConfigurationInteractor; + final Connectivity _connectivity = Get.find(); + final TextEditingController urlInputController = TextEditingController(); + late StreamSubscription _connectivityStreamSubscription; + LoginController( this._authenticationInteractor, this._dynamicUrlInterceptors, @@ -78,6 +86,12 @@ class LoginController extends GetxController { ? Password(password.trim()) : null; + @override + void onInit() { + _registerNetworkConnectivityState(); + super.onInit(); + } + @override void onReady() { if (BuildUtils.isWeb) { @@ -317,9 +331,24 @@ class LoginController extends GetxController { setUrlText(urlInputController.text); } + void _registerNetworkConnectivityState() async { + setNetworkConnectivityState(await _connectivity.checkConnectivity()); + _connectivityStreamSubscription = _connectivity.onConnectivityChanged.listen((ConnectivityResult result) { + log('LoginController::_registerNetworkConnectivityState(): ConnectivityResult: ${result.name}'); + setNetworkConnectivityState(result); + }); + } + @override void onClose() { urlInputController.clear(); + _connectivityStreamSubscription.cancel(); super.onClose(); } + + @override + void onDone() {} + + @override + void onError(error) {} } \ No newline at end of file