From 0933fb885cdfc8ce9d809512a0199949a0074b03 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Thu, 7 Nov 2024 13:37:53 -0300 Subject: [PATCH 1/2] WIP --- lib/main.dart | 2 +- .../localization/localization_service.dart | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 44796f49..56fea02f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -277,7 +277,7 @@ class _AppState extends State with WidgetsBindingObserver { @override void didChangeAppLifecycleState(AppLifecycleState state) async { - await LocalizationService.processLocals(context); + if(state == AppLifecycleState.resumed) await _initializeNotificationService(); } @override diff --git a/lib/shared/services/localization/localization_service.dart b/lib/shared/services/localization/localization_service.dart index 818a2338..7c974263 100644 --- a/lib/shared/services/localization/localization_service.dart +++ b/lib/shared/services/localization/localization_service.dart @@ -1,4 +1,4 @@ -// ignore_for_file: curly_braces_in_flow_control_structures +// ignore_for_file: curly_braces_in_flow_control_structures, use_build_context_synchronously, unrelated_type_equality_checks import 'dart:developer'; @@ -204,14 +204,6 @@ class LocalizationService { final bool isAuthenticated = userUUID.isNotEmpty && devUUID.isNotEmpty; final bool isDevLinked = !errorMsg.contains('Esse dispositivo nao pertence a esse usuario'); log('() => isLinked: $errorMsg'); - if (isAuthenticated && isDevLinked) await DialogUtil.error(context, errorMsg).whenComplete(() async => await selectLocal(context)); - if (isAuthenticated && !isDevLinked) { - errorMsg = FFLocalizations.of(context).getVariableText( - ptText: 'Não foi possível vincular o dispositivo, tente novamente', - enText: 'Unable to link device, try again', - ); - await DialogUtil.warning(context, errorMsg); - } if (!isAuthenticated) { errorMsg = FFLocalizations.of(context).getVariableText( ptText: 'Erro ao obter credenciais de autenticação', @@ -220,6 +212,15 @@ class LocalizationService { await DialogUtil.error(context, errorMsg); // await DialogUtil.error(context, errorMsg).whenComplete(() async => await AuthenticationService.signOut(context)); } + else if (isAuthenticated && !isDevLinked) { + errorMsg = FFLocalizations.of(context).getVariableText( + ptText: 'Não foi possível vincular o dispositivo, tente novamente', + enText: 'Unable to link device, try again', + ); + await DialogUtil.warning(context, errorMsg); + } + else if (isAuthenticated && isDevLinked) await DialogUtil.error(context, errorMsg).whenComplete(() async => await selectLocal(context)); + } static Future _handleUnavailable(BuildContext context, List locals) async { From aeb1a07f24a46ee11954b0a089c2b12ff64df03f Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Thu, 7 Nov 2024 14:21:52 -0300 Subject: [PATCH 2/2] milestone fd-940 --- lib/backend/api_requests/api_calls.dart | 19 ++++++++++++++----- .../authentication_service.dart | 7 ++----- .../localization/localization_service.dart | 10 ++++++++-- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/lib/backend/api_requests/api_calls.dart b/lib/backend/api_requests/api_calls.dart index 8e1529cf..eb44686e 100644 --- a/lib/backend/api_requests/api_calls.dart +++ b/lib/backend/api_requests/api_calls.dart @@ -1,10 +1,13 @@ import 'dart:async'; import 'dart:convert'; +import 'dart:developer'; import 'package:flutter/foundation.dart'; import 'package:hub/backend/notifications/firebase_messaging_service.dart'; import 'package:hub/shared/helpers/base_storage.dart'; import 'package:hub/shared/helpers/storage_helper.dart'; +import 'package:hub/shared/utils/dialog_util.dart'; +import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/validator_util.dart'; import '/flutter_flow/flutter_flow_util.dart'; @@ -665,7 +668,15 @@ class LoginCall { (await StorageHelper().get(SecureStorageKey.deviceType.value, Storage.SecureStorage)) ?? ''; final String description = (await StorageHelper().get(SecureStorageKey.deviceDescription.value, Storage.SecureStorage)) ?? ''; - final String token = await FirebaseMessagingService.getToken(); + late final String token; + try { + token = await FirebaseMessagingService.getToken(); + if(token == null || token.isEmpty) throw Exception('Token is empty'); } + catch (e, s) { + token = ''; + log('Error getting token', error: e, stackTrace: s); + LogUtil.requestAPIFailed('login.php', email, "Login", e, s); + } return ApiManager.instance.makeApiCall( callName: 'login', @@ -803,10 +814,8 @@ class GetLocalsCall { Future call() async { final String baseUrl = PhpGroup.getBaseUrl(); - final String devUUID = - (await StorageHelper().get(SQLiteStorageKey.devUUID.value, Storage.SQLiteStorage)) ?? ''; - final String userUUID = - (await StorageHelper().get(SQLiteStorageKey.userUUID.value, Storage.SQLiteStorage)) ?? ''; + final String devUUID = await StorageHelper().get(SQLiteStorageKey.devUUID.value, Storage.SQLiteStorage) ?? ''; + final String userUUID = await StorageHelper().get(SQLiteStorageKey.userUUID.value, Storage.SQLiteStorage) ?? ''; return ApiManager.instance.makeApiCall( callName: 'getLocals', diff --git a/lib/shared/services/authentication/authentication_service.dart b/lib/shared/services/authentication/authentication_service.dart index b867c200..b81eb6d2 100644 --- a/lib/shared/services/authentication/authentication_service.dart +++ b/lib/shared/services/authentication/authentication_service.dart @@ -44,8 +44,7 @@ class AuthenticationService { final ApiCallResponse? response; final LoginCall callback = PhpGroup.loginCall; String deviceDescription = randomString(10, 10, true, false, false); - await StorageHelper() - .set(SecureStorageKey.deviceDescription.value, deviceDescription, Storage.SecureStorage); + await StorageHelper().set(SecureStorageKey.deviceDescription.value, deviceDescription, Storage.SecureStorage); final String? devUUID; final String userUUID; @@ -85,9 +84,7 @@ class AuthenticationService { DialogUtil.error(context, response.jsonBody['error_msg'].toString()); } } - } - - return; + } return; } catch (e, s) { DialogUtil.errorDefault(context); LogUtil.requestAPIFailed('login.php', emailAdress.toString(), "Login", e, s); diff --git a/lib/shared/services/localization/localization_service.dart b/lib/shared/services/localization/localization_service.dart index 7c974263..df0df4c9 100644 --- a/lib/shared/services/localization/localization_service.dart +++ b/lib/shared/services/localization/localization_service.dart @@ -213,11 +213,17 @@ class LocalizationService { // await DialogUtil.error(context, errorMsg).whenComplete(() async => await AuthenticationService.signOut(context)); } else if (isAuthenticated && !isDevLinked) { + final String log = ''' + + devUUID: $devUUID + userUUID: $userUUID + + '''; errorMsg = FFLocalizations.of(context).getVariableText( - ptText: 'Não foi possível vincular o dispositivo, tente novamente', + ptText: 'Não foi possível vincular o dispositivo, tente novamente.', enText: 'Unable to link device, try again', ); - await DialogUtil.warning(context, errorMsg); + await DialogUtil.warning(context, errorMsg+log); } else if (isAuthenticated && isDevLinked) await DialogUtil.error(context, errorMsg).whenComplete(() async => await selectLocal(context));