diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index eadf2cb21..185753e49 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -61,24 +61,25 @@ class LoginController extends State { // TODO: implement initState super.initState(); loadingSignIn = true; - pangeaController.checkHomeServerAction().then((value) { - setState(() { - loadingSignIn = false; - }); + pangeaController.checkHomeServerAction().then((client) { + if (mounted) { + setState(() { + loadingSignIn = false; + this.client = client; + }); + } }).catchError((e) { final String err = e.toString(); - setState(() { - loadingSignIn = false; - passwordError = err.toLocalizedString(context); - }); + if (mounted) { + setState(() { + loadingSignIn = false; + passwordError = err.toLocalizedString(context); + }); + } }); usernameController.addListener(() => setState(() {})); passwordController.addListener(() => setState(() {})); - - Matrix.of(context).getLoginClient().then((client) { - if (mounted) setState(() => this.client = client); - }); } @override diff --git a/lib/pangea/common/controllers/pangea_controller.dart b/lib/pangea/common/controllers/pangea_controller.dart index 2f3194917..fd01ea217 100644 --- a/lib/pangea/common/controllers/pangea_controller.dart +++ b/lib/pangea/common/controllers/pangea_controller.dart @@ -142,11 +142,11 @@ class PangeaController { await Future.wait(futures); } - Future checkHomeServerAction() async { + Future checkHomeServerAction() async { final client = await matrixState.getLoginClient(); if (client.homeserver != null) { await Future.delayed(Duration.zero); - return; + return client; } final String homeServer = @@ -163,8 +163,7 @@ class PangeaController { matrixState.loginRegistrationSupported = e.requireAdditionalAuthentication; } - - // setState(() => error = (e).toLocalizedString(context)); + return client; } /// check user information if not found then redirect to Date of birth page