From d980d36544e7dba00c3ffcccd89f48af0f46894a Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Tue, 8 Oct 2024 08:51:38 -0300 Subject: [PATCH 1/4] add forgot password screen --- android/app/build.gradle | 1 + android/app/proguard.txt | 15 + android/app/src/main/AndroidManifest.xml | 20 +- .../hub}/MainActivity.kt | 3 +- android/gradle.properties | 2 + android/proguard.txt | 15 + assets/fonts/SFPRODISPLAYBOLD.OTF | Bin 0 -> 334728 bytes assets/fonts/SFPRODISPLAYMEDIUM.OTF | Bin 0 -> 335512 bytes assets/fonts/SFPRODISPLAYREGULAR.OTF | Bin 0 -> 298944 bytes integration_test/app_test.dart | 256 ++++++- lib/backend/api_requests/api_calls.dart | 43 +- .../firebase_messaging_service.dart | 1 - .../notifications/notification_service.dart | 11 +- .../menu_button_item_widget.dart | 2 - .../custom_datepicker.dart | 3 +- .../shared_components_atoms/custom_input.dart | 3 +- .../custom_select.dart | 9 +- .../media_upload_button.dart | 5 +- .../submit_button.dart | 3 +- .../shared_components_atoms/tabview.dart | 1 + .../message_opt_modal/opt_modal_widget.dart | 1 - .../order_filter_modal_widget.dart | 2 +- .../throw_exception_widget.dart | 129 ++-- ..._arrow_linked_locals_component_widget.dart | 2 - .../local_profile_component_widget.dart | 158 +---- .../menu_component/menu_component_model.dart | 38 +- .../menu_component/menu_component_widget.dart | 3 +- .../message_well_component_widget.dart | 5 +- .../schedule_visit_detail_model.dart | 4 +- .../schedule_visit_detail_widget.dart | 24 +- ...p_arrow_linked_locals_component_model.dart | 4 +- ...cation_modal_template_component_model.dart | 1 - .../card_item_template_component_widget.dart | 1 - .../change_pass_widget.dart | 1 - .../details_component_widget.dart | 7 +- ...ot_password_template_component_widget.dart | 73 +- ...item_details_template_component_model.dart | 1 - .../provisional_schedule_template_model.dart | 1 - .../provisional_shcedule_template_widget.dart | 3 +- ...siter_vistor_template_component_model.dart | 1 - ...iter_vistor_template_component_widget.dart | 1 - .../sign_in_template_component_model.dart | 115 +-- .../sign_in_template_component_widget.dart | 671 +++++------------- .../sign_up_template_component_model.dart | 95 +-- .../sign_up_template_component_widget.dart | 67 +- .../view_visit_detail_model.dart | 3 +- ...search_modal_template_component_model.dart | 4 +- ...earch_modal_template_component_widget.dart | 2 - .../welcome_template_component_widget.dart | 126 ++-- lib/flutter_flow/internationalization.dart | 4 +- lib/flutter_flow/nav/nav.dart | 22 +- lib/main.dart | 65 +- .../acess_history_page_model.dart | 1 - .../acess_history_page_widget.dart | 1 + .../fast_pass_page/fast_pass_page_widget.dart | 5 - .../forgot_password_model.dart | 77 ++ .../forgot_password_screen.dart | 340 +++++++++ lib/pages/home_page/home_page_widget.dart | 3 - .../liberation_history_model.dart | 4 +- .../liberation_history_widget.dart | 2 - .../message_history_page_model.dart | 4 +- .../message_history_page_widget.dart | 1 - .../package_order_page.dart | 1 - lib/pages/pets_page/pets_history_screen.dart | 4 - lib/pages/pets_page/pets_page_model.dart | 4 +- lib/pages/pets_page/pets_page_widget.dart | 9 +- .../preferences_settings_model.dart | 128 +--- .../preferences_settings_widget.dart | 2 - .../qr_code_page/qr_code_page_model.dart | 2 +- .../qr_code_page/qr_code_page_widget.dart | 5 +- .../reception_page/reception_page_widget.dart | 35 +- .../reservation_page_widget.dart | 6 - .../schedule_complete_visit_page_widget.dart | 14 +- .../visit_history_page_widget.dart | 1 - .../sign_in_page/sign_in_page_widget.dart | 2 + .../sign_up_page/sign_up_page_widget.dart | 2 + .../welcome_page/welcome_page_widget.dart | 19 +- lib/shared/extensions/context_entensions.dart | 11 - lib/shared/helpers/secure_storage_helper.dart | 1 + .../authentication_service.dart | 197 +++++ .../localization/localization_service.dart | 243 +++++++ lib/shared/utils/device_util.dart | 9 +- lib/shared/utils/image_util.dart | 5 +- lib/shared/utils/share_util.dart | 1 - lib/shared/utils/snackbar_util.dart | 28 + lib/shared/utils/storage_util.dart | 1 + lib/shared/utils/validator_util.dart | 1 - pubspec.lock | 279 +------- pubspec.yaml | 9 +- 89 files changed, 1751 insertions(+), 1733 deletions(-) create mode 100644 android/app/proguard.txt rename android/app/src/main/kotlin/com/{example/my_project => freaccess/hub}/MainActivity.kt (64%) create mode 100644 android/proguard.txt create mode 100644 assets/fonts/SFPRODISPLAYBOLD.OTF create mode 100644 assets/fonts/SFPRODISPLAYMEDIUM.OTF create mode 100644 assets/fonts/SFPRODISPLAYREGULAR.OTF create mode 100644 lib/pages/forgot_password_page/forgot_password_model.dart create mode 100644 lib/pages/forgot_password_page/forgot_password_screen.dart delete mode 100644 lib/shared/extensions/context_entensions.dart create mode 100644 lib/shared/services/authentication/authentication_service.dart create mode 100644 lib/shared/services/localization/localization_service.dart create mode 100644 lib/shared/utils/snackbar_util.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 00885235..42faf3d4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -52,6 +52,7 @@ android { versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true + consumerProguardFiles 'proguard.txt' } compileOptions { diff --git a/android/app/proguard.txt b/android/app/proguard.txt new file mode 100644 index 00000000..8f70253a --- /dev/null +++ b/android/app/proguard.txt @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: 2016, microG Project Team +# SPDX-License-Identifier: CC0-1.0 + +# Keep AutoSafeParcelables +-keep public class * extends org.microg.safeparcel.AutoSafeParcelable { + @org.microg.safeparcel.SafeParcelable.Field *; + @org.microg.safeparcel.SafeParceled *; +} + +# Keep asInterface method cause it's accessed from SafeParcel +-keepattributes InnerClasses +-keepclassmembers interface * extends android.os.IInterface { + public static class *; +} +-keep public class * extends android.os.Binder { public static *; } \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index a04b84f9..6f0588c1 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -49,15 +49,29 @@ /> - + + + + + + + + + + + + + + + + - @@ -86,7 +100,7 @@ - + diff --git a/android/app/src/main/kotlin/com/example/my_project/MainActivity.kt b/android/app/src/main/kotlin/com/freaccess/hub/MainActivity.kt similarity index 64% rename from android/app/src/main/kotlin/com/example/my_project/MainActivity.kt rename to android/app/src/main/kotlin/com/freaccess/hub/MainActivity.kt index a2cb04a0..10a40dac 100644 --- a/android/app/src/main/kotlin/com/example/my_project/MainActivity.kt +++ b/android/app/src/main/kotlin/com/freaccess/hub/MainActivity.kt @@ -2,5 +2,4 @@ package com.freaccess.hub import io.flutter.embedding.android.FlutterFragmentActivity -class MainActivity: FlutterFragmentActivity() { -} \ No newline at end of file +class MainActivity: FlutterFragmentActivity() {} diff --git a/android/gradle.properties b/android/gradle.properties index ed508580..d1327d41 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,3 +1,5 @@ org.gradle.jvmargs=-Xmx4608m android.useAndroidX=true android.enableJetifier=true +android.enableR8=true +enableProguardInReleaseBuilds = true diff --git a/android/proguard.txt b/android/proguard.txt new file mode 100644 index 00000000..8f70253a --- /dev/null +++ b/android/proguard.txt @@ -0,0 +1,15 @@ +# SPDX-FileCopyrightText: 2016, microG Project Team +# SPDX-License-Identifier: CC0-1.0 + +# Keep AutoSafeParcelables +-keep public class * extends org.microg.safeparcel.AutoSafeParcelable { + @org.microg.safeparcel.SafeParcelable.Field *; + @org.microg.safeparcel.SafeParceled *; +} + +# Keep asInterface method cause it's accessed from SafeParcel +-keepattributes InnerClasses +-keepclassmembers interface * extends android.os.IInterface { + public static class *; +} +-keep public class * extends android.os.Binder { public static *; } \ No newline at end of file diff --git a/assets/fonts/SFPRODISPLAYBOLD.OTF b/assets/fonts/SFPRODISPLAYBOLD.OTF new file mode 100644 index 0000000000000000000000000000000000000000..025b25c27aae647e146418e2f8bc12260015382f GIT binary patch literal 334728 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|@`5Yvhx`oR^)3{8uiJsK{ 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 Z<^8lQx6-oQM$7UE@~^g&fAyfqe*n9Yy8i$G literal 0 HcmV?d00001 diff --git a/assets/fonts/SFPRODISPLAYREGULAR.OTF b/assets/fonts/SFPRODISPLAYREGULAR.OTF new file mode 100644 index 0000000000000000000000000000000000000000..09aaca9fcc08ccfd0666b128a23a3ba6066757a5 GIT binary patch literal 298944 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⩰e1tBA=ub1t;gHv*+Ev(c+EVRy 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 C@aFUY literal 0 HcmV?d00001 diff --git a/integration_test/app_test.dart b/integration_test/app_test.dart index bb1a3f8e..57c1d623 100644 --- a/integration_test/app_test.dart +++ b/integration_test/app_test.dart @@ -1,48 +1,248 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:hub/flutter_flow/random_data_util.dart'; import 'package:hub/main.dart'; +import 'package:hub/shared/utils/storage_util.dart'; import 'package:integration_test/integration_test.dart'; + +late WidgetTester widget; + void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); - group('Authentication Tests', () { - setUp(() async { - await initializeApp(); + group('Initialization', () { + setUpAll(() async => await initializeApp().then((_) => StorageUtil().isLogged = false)); + + testWidgets('Test Welcome', (WidgetTester tester) async { + widget = tester; + + await widget.pumpWidget(const App()); + await widget.pumpAndSettle(); + await _navigateToSignIn(); + await _navigateToSignUp(); + await widget.pumpAndSettle(); + await widget.pumpWidget(const App()); + await widget.pumpAndSettle(); + await _navigateToSignUp(); + await _navigateToSignIn(); + await widget.pumpAndSettle(); + + }); - testWidgets('Test MyApp', (WidgetTester tester) async { - await tester.pumpWidget(const App()); - await _navToSignIn(tester); - await _enterCredentialsAndSignIn(tester); - await _login(tester); - }); + group('Terms of Use', (){}); + }); + group('Authentication', () { + group('Sign in', () { + setUpAll(() async => + await initializeApp().then((_) => StorageUtil().isLogged = false)); + + testWidgets('Test Sign In', (WidgetTester tester) async { + widget = tester; + + await widget.pumpWidget(const App()); + await _navigateToSignIn(); + + await _auth({'emailTextFormField': 'erro@exemplo.com', 'passwordTextFormField': '12345678'}); + await _auth({'emailTextFormField': 'email_app@exemplo.com','passwordTextFormField': '12345678'}); + }); + }); + group('Sign up', () { + setUpAll(() async => + await initializeApp().then((_) => StorageUtil().isLogged = false)); + + + testWidgets('Test Sign Up', (WidgetTester tester) async { + widget = tester; + await tester.pumpWidget(const App()); + late String name; + late String email; + late String password; + late Map credentials; + + await _navigateToSignUp(); + + name = 'app'; + email = 'email_app@exemplo.com'; + password = '12345678'; + credentials = { + 'nameTextFormField': name, + 'emailTextFormField': email, + 'passwordTextFormField': password + }; + await _auth(credentials); + + + name = randomString(7, 7, true, true, true); + email = '$name@example.com'; + password = '12345678'; + credentials = { + 'nameTextFormField': name, + 'emailTextFormField': email, + 'passwordTextFormField': password + }; + await _navigateToSignUp(); + await _auth(credentials); + credentials = { + 'emailTextFormField': email, + 'passwordTextFormField': password + }; + await _auth(credentials); + + }); + }); + group('Sign Out', () { + // setUpAll(() async => + // await initializeApp().then((_) => StorageUtil().isLogged = false)); + }); + group('Forgot Password', () { + setUpAll(() async => await initializeApp().then((_) => StorageUtil().isLogged = false)); + + testWidgets('Test Forgot Password', (WidgetTester tester) async { + widget = tester; + late final String addr = randomString(5, 5, true, true, true); + late Map credentials; + + await tester.pumpWidget(const App()); + + await _navigateToSignIn(); + + await _recoveryPassword(); + credentials = {'recoveryTextFormField': '$addr@exemple.com'}; + await _send(credentials); + + await Future.delayed(const Duration(seconds: 2)); + + await _recoveryPassword(); + credentials = {'recoveryTextFormField': 'email_app@exemple.com'}; + await _send(credentials); + + + }); + }); + + }); + + + + group('Localization', (){ + + }); + group('Networking', (){ + + }); + group('Functionality', (){ + + }); + group('Usability', (){ + + }); + group('Performance', (){ + + }); + group('Security', (){ + + }); + group('Accessibility', (){ + + }); + group('Compatibility', (){ + + }); + group('Internationalization', (){ + + }); + + } -Future _navToSignIn(WidgetTester tester) async { - final navToSignIn = find.byKey(const Key('toggleSignInPage')); - if (navToSignIn.evaluate().isNotEmpty) { - await tester.tap(navToSignIn); - await tester.pumpAndSettle(); + + +Future _navigateBackUsingSystemGesture() async => + IntegrationTestWidgetsFlutterBinding.instance.keyboard.isLogicalKeyPressed(LogicalKeyboardKey.escape); + + +Future _navigateToSignUp() async { + await widget.pumpAndSettle(); + final Finder navToSignUp = find.byKey(const ValueKey('toggleSignUpPage')); + if (navToSignUp.evaluate().isNotEmpty) { + await widget.tap(navToSignUp); + await widget.pumpAndSettle(); } } -Future _enterCredentialsAndSignIn(WidgetTester tester) async { - final emailField = find.byKey(const ValueKey('emailField')); - await tester.enterText(emailField, 'test@example.com'); - await tester.pumpAndSettle(); - - final passwordField = find.byKey(const ValueKey('passwordField')); - await tester.enterText(passwordField, 'password123'); - await tester.pumpAndSettle(); +Future _navigateToSignIn() async { + await widget.pumpAndSettle(); + final Finder navToSignIn = find.byKey(const ValueKey('toggleSignInPage')); + expect(navToSignIn, findsOneWidget); + if (navToSignIn.evaluate().isNotEmpty) { + await widget.tap(navToSignIn); + await widget.pumpAndSettle(); + } } -Future _login(WidgetTester tester) async { - // Encontre o botão de login e clique nele - final signInButton = find.byKey(const Key('loginCallback')); - // expect(signInButton, findsOneWidget); - tester.press(signInButton); +Future _recoveryPassword() async { + await widget.pumpAndSettle(); + final Finder forgotPassword = find.byKey(const ValueKey('ForgotPassword')); + if (forgotPassword.evaluate().isNotEmpty) await widget.tap(forgotPassword); + await widget.ensureVisible(forgotPassword); + await widget.pumpAndSettle(); - await tester.pumpAndSettle(); } + + + +Future _auth(Map credentials) async { + await _enterCredentials(credentials); + await _submit('SubmitButtonWidget'); +} + +Future _send(Map credentials) async { + await _enterCredentials(credentials); + await _submit('SendButtonWidget'); +} + + + +Future _enterCredentials(Map credentials) async { + await widget.pumpAndSettle(); + + for (var entry in credentials.entries) { + final Finder field = find.byKey(ValueKey(entry.key)); + await widget.pumpAndSettle(); + expect(field, findsOneWidget); + await widget.enterText(field, entry.value); + await widget.pumpAndSettle(); + } + + await widget.pumpAndSettle(); +} + +Future _submit(String key) async { + await widget.pumpAndSettle(); + final Finder submitButton = find.byKey(ValueKey(key)); + await widget.pumpAndSettle(); + if (submitButton.evaluate().isNotEmpty) { + await widget.tap(submitButton); + await widget.pumpAndSettle(); + } + + + final Finder ThrowExceptionWidget = find.byKey(const ValueKey('ThrowExceptionWidget')); + await widget.pumpAndSettle(); + if (ThrowExceptionWidget.evaluate().isNotEmpty) { + await widget.ensureVisible(ThrowExceptionWidget); + await widget.tap(ThrowExceptionWidget); + await widget.pumpAndSettle(); + } else { + await _navigateBackUsingSystemGesture(); + } + + +} + + + diff --git a/lib/backend/api_requests/api_calls.dart b/lib/backend/api_requests/api_calls.dart index ab798326..64825cc9 100644 --- a/lib/backend/api_requests/api_calls.dart +++ b/lib/backend/api_requests/api_calls.dart @@ -3,8 +3,6 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:hub/backend/notifications/firebase_messaging_service.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/validator_util.dart'; @@ -24,6 +22,7 @@ class PhpGroup { static UpdToken updToken = UpdToken(); static RegisterCall registerCall = RegisterCall(); static ForgotPasswordCall forgotPasswordCall = ForgotPasswordCall(); + static ChangePasswordCall changePasswordCall = ChangePasswordCall(); static GetLocalsCall getLocalsCall = GetLocalsCall(); static PostScheduleVisitorCall postScheduleVisitorCall = PostScheduleVisitorCall(); @@ -660,11 +659,50 @@ class RegisterCall { } } + +class ChangePasswordCall { + Future call({ + required final String email, + required final String token, + required final String psswd, + }) async { + final String baseUrl = PhpGroup.getBaseUrl(); + final String devUUID = StorageUtil().devUUID; + final String userUUID = StorageUtil().userUUID; + final String cliID = StorageUtil().cliUUID; + + return ApiManager.instance.makeApiCall( + callName: 'changePassword', + apiUrl: '$baseUrl/alterarSenha.php', + callType: ApiCallType.POST, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + params: { + 'email': email, + 'token': token, + 'senha': psswd, + 'devUUID': devUUID, + 'userUUID': userUUID, + 'cliID': cliID, + }, + bodyType: BodyType.X_WWW_FORM_URL_ENCODED, + returnBody: true, + encodeBodyUtf8: false, + decodeUtf8: false, + cache: false, + isStreamingApi: false, + alwaysAllowBody: false, + ); + } +} + class ForgotPasswordCall { Future call({ final String? email, }) async { final String baseUrl = PhpGroup.getBaseUrl(); + const String version = 'FRE-ACCESS-HUB'; return ApiManager.instance.makeApiCall( callName: 'forgotPassword', @@ -675,6 +713,7 @@ class ForgotPasswordCall { }, params: { 'email': email, + 'appVersion': version, }, bodyType: BodyType.X_WWW_FORM_URL_ENCODED, returnBody: true, diff --git a/lib/backend/notifications/firebase_messaging_service.dart b/lib/backend/notifications/firebase_messaging_service.dart index be23aad5..dfe76047 100644 --- a/lib/backend/notifications/firebase_messaging_service.dart +++ b/lib/backend/notifications/firebase_messaging_service.dart @@ -2,7 +2,6 @@ import 'dart:developer'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; diff --git a/lib/backend/notifications/notification_service.dart b/lib/backend/notifications/notification_service.dart index 2b761b8c..8510eac6 100644 --- a/lib/backend/notifications/notification_service.dart +++ b/lib/backend/notifications/notification_service.dart @@ -1,26 +1,17 @@ -import 'dart:developer'; - import 'package:awesome_notifications/awesome_notifications.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/backend/api_requests/api_manager.dart'; -import 'package:hub/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart'; import 'package:hub/components/templates_components/details_component/details_component_widget.dart'; import 'package:hub/components/templates_components/message_notificaion_modal_template_component/message_notification_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; -import 'package:sqflite/sqflite.dart'; -Future onMessageReceived( - Map payload, String? extra, String? handleClick) async { +Future onMessageReceived(Map payload, String? extra, String? handleClick) async { final localId = jsonDecode(payload['local']!)['CLI_ID']; final cliUUID = StorageUtil().cliUUID; diff --git a/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart b/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart index 317a3bfa..c1954b20 100644 --- a/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart +++ b/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart @@ -2,11 +2,9 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/components/molecular_components/menu_item/menu_item.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; -import '../../../app_state.dart'; class MenuButtonWidget extends MenuEntry { const MenuButtonWidget({ diff --git a/lib/components/atomic_components/shared_components_atoms/custom_datepicker.dart b/lib/components/atomic_components/shared_components_atoms/custom_datepicker.dart index 596f50ce..cffebe05 100644 --- a/lib/components/atomic_components/shared_components_atoms/custom_datepicker.dart +++ b/lib/components/atomic_components/shared_components_atoms/custom_datepicker.dart @@ -1,10 +1,10 @@ -import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; +// ignore: must_be_immutable class CustomDatePickerUtil extends StatefulWidget { TextEditingController? controller; final FocusNode? focusNode; @@ -37,7 +37,6 @@ class CustomDatePickerUtil extends StatefulWidget { class _CustomDatePickerState extends State { DateTime? _selectedDate; - TimeOfDay? _selectedTime; @override void initState() { diff --git a/lib/components/atomic_components/shared_components_atoms/custom_input.dart b/lib/components/atomic_components/shared_components_atoms/custom_input.dart index 748448b9..765c2c7e 100644 --- a/lib/components/atomic_components/shared_components_atoms/custom_input.dart +++ b/lib/components/atomic_components/shared_components_atoms/custom_input.dart @@ -2,10 +2,9 @@ import 'package:easy_debounce/easy_debounce.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:hub/components/atomic_components/shared_components_atoms/tabview.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; -import 'package:hub/flutter_flow/flutter_flow_util.dart'; +// ignore: must_be_immutable class CustomInputUtil extends StatefulWidget { final TextEditingController? controller; final String? labelText; diff --git a/lib/components/atomic_components/shared_components_atoms/custom_select.dart b/lib/components/atomic_components/shared_components_atoms/custom_select.dart index 950d43de..d0822749 100644 --- a/lib/components/atomic_components/shared_components_atoms/custom_select.dart +++ b/lib/components/atomic_components/shared_components_atoms/custom_select.dart @@ -1,15 +1,12 @@ -import 'dart:developer'; -import 'dart:math'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:hub/components/organism_components/message_well_component/message_well_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_drop_down.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/form_field_controller.dart'; +// ignore: must_be_immutable class CustomSelect extends StatefulWidget { final List options; final List optionsLabel; @@ -61,9 +58,7 @@ class _CustomSelectState extends State { decoration: const BoxDecoration(), child: FlutterFlowDropDown( fillColor: FlutterFlowTheme.of(context).primaryBackground, - controller: widget.controller ??= - FormFieldController( - widget.dropDownValue ??= ''), + controller: widget.controller, options: widget.options, optionLabels: widget.optionsLabel, onChanged: widget.changed, diff --git a/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart b/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart index 3dda5950..2377b458 100644 --- a/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart +++ b/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart @@ -1,14 +1,11 @@ -import 'dart:developer'; -import 'dart:typed_data'; - import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/upload_data.dart'; -import 'package:hub/flutter_flow/uploaded_file.dart'; +// ignore: must_be_immutable class MediaUploadButtonUtil extends StatefulWidget { final Function(FFUploadedFile) onUploadComplete; bool isUploading; diff --git a/lib/components/atomic_components/shared_components_atoms/submit_button.dart b/lib/components/atomic_components/shared_components_atoms/submit_button.dart index 08180f3d..4c1667fa 100644 --- a/lib/components/atomic_components/shared_components_atoms/submit_button.dart +++ b/lib/components/atomic_components/shared_components_atoms/submit_button.dart @@ -2,9 +2,8 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; -import 'package:json_path/fun_sdk.dart'; +// ignore: must_be_immutable class SubmitButtonUtil extends StatelessWidget { final String labelText; Future Function()? onPressed; diff --git a/lib/components/atomic_components/shared_components_atoms/tabview.dart b/lib/components/atomic_components/shared_components_atoms/tabview.dart index 6ec30597..3798d6d8 100644 --- a/lib/components/atomic_components/shared_components_atoms/tabview.dart +++ b/lib/components/atomic_components/shared_components_atoms/tabview.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; +// ignore: must_be_immutable class TabViewUtil extends StatelessWidget { final BuildContext context; final dynamic model; diff --git a/lib/components/molecular_components/message_opt_modal/opt_modal_widget.dart b/lib/components/molecular_components/message_opt_modal/opt_modal_widget.dart index fe501dc9..01ee6ea1 100644 --- a/lib/components/molecular_components/message_opt_modal/opt_modal_widget.dart +++ b/lib/components/molecular_components/message_opt_modal/opt_modal_widget.dart @@ -175,7 +175,6 @@ class _OptModalWidgetState extends State { @override Widget build(BuildContext context) { double screenWidth = MediaQuery.of(context).size.width; - double screenHeight = MediaQuery.of(context).size.height; return Center( child: Container( diff --git a/lib/components/molecular_components/order_filter_modal/order_filter_modal_widget.dart b/lib/components/molecular_components/order_filter_modal/order_filter_modal_widget.dart index ce905389..368ad6b9 100644 --- a/lib/components/molecular_components/order_filter_modal/order_filter_modal_widget.dart +++ b/lib/components/molecular_components/order_filter_modal/order_filter_modal_widget.dart @@ -4,6 +4,7 @@ import 'package:hub/components/molecular_components/order_filter_modal/order_fil import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; +// ignore: unused_import import 'package:hub/shared/helpers/secure_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; @@ -178,7 +179,6 @@ class _OrderFilterModalWidgetState extends State { @override Widget build(BuildContext context) { double screenWidth = MediaQuery.of(context).size.width; - double screenHeight = MediaQuery.of(context).size.height; return Center( child: Container( diff --git a/lib/components/molecular_components/throw_exception/throw_exception_widget.dart b/lib/components/molecular_components/throw_exception/throw_exception_widget.dart index 324be78c..07008012 100644 --- a/lib/components/molecular_components/throw_exception/throw_exception_widget.dart +++ b/lib/components/molecular_components/throw_exception/throw_exception_widget.dart @@ -11,6 +11,7 @@ import 'throw_exception_model.dart'; export 'throw_exception_model.dart'; +// ignore: must_be_immutable class ThrowExceptionWidget extends StatefulWidget { ThrowExceptionWidget( {super.key, required this.msg, this.type = EnumThrowException.error}); @@ -100,77 +101,63 @@ class _ThrowExceptionWidgetState extends State @override Widget build(BuildContext context) { - return Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 10.0, 0.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - context.pop(); - }, - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Stack( - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Icon( - _getIconByType(context), - color: _getColorByType(context), - size: 150.0, - ), - ), - ], - ).animateOnPageLoad(animationsMap['stackOnPageLoadAnimation']!), - Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Text( - _getTitleByType(context), - style: FlutterFlowTheme.of(context).bodyMedium.override( - fontFamily: - FlutterFlowTheme.of(context).bodyMediumFamily, - fontSize: 20.0, - letterSpacing: 0.0, - fontWeight: FontWeight.bold, - useGoogleFonts: GoogleFonts.asMap().containsKey( - FlutterFlowTheme.of(context).bodyMediumFamily), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 0.0, 10.0, 0.0, 0.0), - child: Text( - valueOrDefault( - widget.msg, - 'Message Not Found', - ), - style: FlutterFlowTheme.of(context).bodyMedium.override( - fontFamily: - FlutterFlowTheme.of(context).bodyMediumFamily, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts.asMap().containsKey( - FlutterFlowTheme.of(context) - .bodyMediumFamily), - ), - ), - ), - ].addToStart(const SizedBox(height: 20.0)), + return InkWell( + key: const ValueKey('ThrowExceptionWidget'), + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + context.pop(); + }, + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Stack( + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Icon( + _getIconByType(context), + color: _getColorByType(context), + size: 150.0, ), - ], - ), + ), + ], + ).animateOnPageLoad(animationsMap['stackOnPageLoadAnimation']!), + const SizedBox(height: 20.0), + Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + _getTitleByType(context), + style: FlutterFlowTheme.of(context).bodyMedium.override( + fontFamily: FlutterFlowTheme.of(context).bodyMediumFamily, + fontSize: 20.0, + letterSpacing: 0.0, + fontWeight: FontWeight.bold, + useGoogleFonts: GoogleFonts.asMap().containsKey(FlutterFlowTheme.of(context).bodyMediumFamily), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0), + child: Text( + valueOrDefault(widget.msg, 'Message Not Found'), + style: FlutterFlowTheme.of(context).bodyMedium.override( + fontFamily: FlutterFlowTheme.of(context).bodyMediumFamily, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts.asMap().containsKey(FlutterFlowTheme.of(context).bodyMediumFamily), + ), + ), + ), + ], ), - ), - ], - ); - } + ], + ), + ), + ); +} } diff --git a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart index 6c498e52..d3c4fb23 100644 --- a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart +++ b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart @@ -3,11 +3,9 @@ import 'package:hub/components/organism_components/bottom_arrow_linked_locals_co import 'package:hub/components/templates_components/card_item_template_component/card_item_template_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; -import 'package:provider/provider.dart'; import '/backend/api_requests/api_calls.dart'; import '/flutter_flow/flutter_flow_theme.dart'; diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart index 02a1377a..3471b1af 100644 --- a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart +++ b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart @@ -1,18 +1,11 @@ -import 'dart:developer'; - import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; -import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/utils/dialog_util.dart'; -import 'package:hub/shared/utils/log_util.dart'; -import 'package:hub/shared/utils/storage_util.dart'; import '/flutter_flow/custom_functions.dart' as functions; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; +import '../../../shared/services/localization/localization_service.dart'; import 'local_profile_component_model.dart'; export 'local_profile_component_model.dart'; @@ -41,9 +34,10 @@ class _LocalProfileComponentWidgetState _model = createModel(context, () => LocalProfileComponentModel()); _model.setOnUpdate(onUpdate: () => setState(() {})); _model.setStateCallback = () => safeSetState(() {}); - + // WidgetsBinding.instance - .addPostFrameCallback((_) async => await processLocals()); + .addPostFrameCallback((_) async => await LocalizationService.processLocals(context).then((value) => value == true ? onUpdate() : null)); + } @override @@ -53,152 +47,14 @@ class _LocalProfileComponentWidgetState super.dispose(); } - Future processData() async { - try { - final GetDadosCall callback = PhpGroup.getDadosCall; - - var response = await callback.call(); - - final error = response.jsonBody['error']; - - if (error == false) { - final bool whatsapp = response.jsonBody['whatsapp'] ?? false; - final bool provisional = response.jsonBody['provisional'] ?? false; - final bool pets = response.jsonBody['pet'] ?? false; - final String petAmountRegister = - response.jsonBody['petAmountRegister'].toString().isEmpty - ? '0' - : response.jsonBody['petAmountRegister'].toString(); - final String name = response.jsonBody['visitado']['VDO_NOME']; - - StorageUtil().whatsapp = whatsapp; - StorageUtil().provisional = provisional; - StorageUtil().pets = pets; - StorageUtil().petAmountRegister = petAmountRegister; - StorageUtil().userName = name; - - safeSetState(() {}); - return; - } else if (error == true) { - log('() => error: $error'); - DialogUtil.warningDefault(context).whenComplete(() => processLocals()); - safeSetState(() {}); - } - - return; - } catch (e, s) { - log('() => error: $e', stackTrace: s); - DialogUtil.warningDefault(context).whenComplete(() => processLocals()); - } - } - - Future processLocals() async { - try { - final GetLocalsCall callback = PhpGroup.getLocalsCall; - - final ApiCallResponse response = await callback.call(); - - final List locals = response.jsonBody['locais'].toList() ?? []; - - for (var local in locals) { - final String status = local['CLU_STATUS']; - log('() => CLU_STATUS: $status'); - } - - final bool isActive = response.jsonBody['locais'] - .where((local) => local['CLU_STATUS'] == 'A') - .toList() - .isNotEmpty; - final bool isInactived = response.jsonBody['locais'] - .where((local) => - local['CLU_STATUS'] != 'B' && local['CLU_STATUS'] != 'A') - .toList() - .isNotEmpty; - final bool isUnique = locals.length == 1; - final bool isBlocked = locals[0]['CLU_STATUS'] == 'B'; - final bool isEnabled = isUnique && isActive; - - final bool isDisabled = isUnique && isBlocked; - final bool isUnselected = StorageUtil().cliUUID.isEmpty && - StorageUtil().cliName.isEmpty & StorageUtil().ownerUUID.isEmpty; - final bool isSelected = - StorageUtil().cliUUID.isNotEmpty && StorageUtil().cliName.isNotEmpty; - final bool isUnavailable = isInactived && isUnselected && isUnique; - - if (!mounted) return; - - if (isDisabled) { - if (mounted) context.go('/welcomePage'); - } else if (isUnavailable) { - log('() => isUnavailable'); - try { - StorageUtil().cliName = locals[0]['CLI_NOME']; - StorageUtil().cliUUID = locals[0]['CLI_ID']; - StorageUtil().ownerUUID = locals[0]['CLU_OWNER_ID']; - var response = await PhpGroup.resopndeVinculo.call(tarefa: 'A'); - if (response.jsonBody['error'] == true) { - StorageUtil().cliUUID = ''; - StorageUtil().cliName = ''; - StorageUtil().ownerUUID = ''; - } - if (response.jsonBody['error'] == false) await processData(); - } catch (e, s) { - DialogUtil.errorDefault(context); - LogUtil.requestAPIFailed( - 'responderVinculo.php', '', 'Responder Vínculo', e, s); - } - } else if (isEnabled) { - log('() => isEnabled'); - StorageUtil().cliName = locals[0]['CLI_NOME']; - StorageUtil().cliUUID = locals[0]['CLI_ID']; - StorageUtil().ownerUUID = locals[0]['CLU_OWNER_ID']; - - await processData(); - } else if (isUnselected) { - log('() => isUnselected'); - await showModalSelectLocal(); - } else if (isSelected) { - log('() => isSelected'); - await processData(); - } else { - log('() => else'); - await showModalSelectLocal(); - } - } catch (e) { - log('() => catch: $e'); - if (mounted) await showModalSelectLocal(); - } - } - - Future showModalSelectLocal() async { - await showModalBottomSheet( - isScrollControlled: true, - backgroundColor: Colors.transparent, - enableDrag: false, - isDismissible: false, - showDragHandle: false, - useSafeArea: true, - context: context, - builder: (context) => PopScope( - canPop: false, - child: Padding( - padding: MediaQuery.viewInsetsOf(context), - child: const BottomArrowLinkedLocalsComponentWidget(), - ), - ), - ).then((_) async { - onUpdate(); - }); - - await processData(); - } - void onUpdate() { safeSetState(() { _model.getData(); }); } + + @override Widget build(BuildContext context) { return Container( @@ -230,7 +86,7 @@ class _LocalProfileComponentWidgetState hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { - showModalSelectLocal(); + await LocalizationService.selectLocal(context).then((value) => value == true ? onUpdate() : null); }, child: ClipRRect( borderRadius: BorderRadius.circular(200.0), diff --git a/lib/components/organism_components/menu_component/menu_component_model.dart b/lib/components/organism_components/menu_component/menu_component_model.dart index e7578d45..e6f7c1cb 100644 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -1,12 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/shared/extensions/dialog_extensions.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; +import 'package:hub/shared/services/authentication/authentication_service.dart'; import 'package:hub/shared/utils/storage_util.dart'; -import 'package:sqflite/sqflite.dart'; import '/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart'; import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart'; @@ -244,29 +241,20 @@ class MenuComponentModel extends FlutterFlowModel { }); } - Future signOut(BuildContext context) async { + Future Logout(BuildContext context) async { + final String title = FFLocalizations.of(context).getVariableText( + ptText: 'Sair', + enText: 'Logout', + ); + final String content = FFLocalizations.of(context).getVariableText( + ptText: 'Tem certeza que deseja sair?', + enText: 'Are you sure you want to logout?', + ); showAlertDialog( context, - 'Logout', - FFLocalizations.of(context).getVariableText( - enText: 'Are you sure you want to logout?', - ptText: 'Tem certeza', - ), () async { - PhpGroup.unregisterDevice.call(); - StorageUtil.purge(); - - context.go( - '/welcomePage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - await SQLiteStorageHelper().purge(); - }); + title, + content, + () async => await AuthenticationService.signOut(context)); } Future openPreferencesSettings(BuildContext context) async { diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart index 032ca758..cd940d59 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -3,7 +3,6 @@ import 'package:hub/backend/schema/enums/enums.dart'; import 'package:hub/components/atomic_components/menu_button_item/menu_button_item_widget.dart'; import 'package:hub/components/atomic_components/menu_card_item/menu_card_item.dart'; import 'package:hub/components/molecular_components/menu_item/menu_item.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart'; import '/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart'; @@ -555,7 +554,7 @@ class _MenuComponentWidgetState extends State { MenuCardItem( icon: Icons.logout, action: () async { - await _model.signOut(context); + await _model.Logout(context); setState(() {}); }, title: FFLocalizations.of(context).getVariableText( diff --git a/lib/components/organism_components/message_well_component/message_well_component_widget.dart b/lib/components/organism_components/message_well_component/message_well_component_widget.dart index 40005da6..ad05326e 100644 --- a/lib/components/organism_components/message_well_component/message_well_component_widget.dart +++ b/lib/components/organism_components/message_well_component/message_well_component_widget.dart @@ -1,14 +1,11 @@ import 'dart:async'; import 'dart:collection'; -import 'dart:developer'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:provider/provider.dart'; import 'package:rxdart/rxdart.dart'; @@ -178,7 +175,7 @@ class _MessageWellComponentWidgetState } Widget _buildMessageItem(BuildContext context, dynamic message, int index) { - final theme = FlutterFlowTheme.of(context); + FlutterFlowTheme.of(context); String formatMessageOrigin(String messageOrigin) { final words = messageOrigin.split(' '); final formattedWords = words.map((word) { diff --git a/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart b/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart index f594143b..672f7c4d 100644 --- a/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart +++ b/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart @@ -1,9 +1,9 @@ -import 'package:hub/backend/api_requests/api_manager.dart'; - import 'package:flutter/material.dart'; +import 'package:hub/backend/api_requests/api_manager.dart'; import 'package:hub/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; +// ignore: unused_import import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:intl/intl.dart'; diff --git a/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart b/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart index 19bbfa3a..f64303fb 100644 --- a/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart +++ b/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart @@ -2,13 +2,13 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/components/molecular_components/throw_exception/throw_exception_widget.dart'; import 'package:hub/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart'; import 'package:hub/flutter_flow/custom_functions.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; +import 'package:hub/shared/utils/dialog_util.dart'; class ScheduleVisitDetailWidget extends StatefulWidget { const ScheduleVisitDetailWidget({ @@ -799,22 +799,12 @@ class _ScheduleVisitDetailWidgetState extends State { false) { context.pop(); } else { - await showModalBottomSheet( - isScrollControlled: true, - backgroundColor: Colors.transparent, - enableDrag: false, - context: context, - builder: (context) { - return Padding( - padding: MediaQuery.viewInsetsOf(context), - child: ThrowExceptionWidget( - msg: PhpGroup.postScheduleVisitCall.errorMsg( - (_model.postScheduleVisit?.jsonBody ?? ''), - )!, - ), - ); - }, - ).then((value) => safeSetState(() {})); + final String? msg = PhpGroup.postScheduleVisitCall.errorMsg( + (_model.postScheduleVisit?.jsonBody ?? ''), + ); + await DialogUtil.error(context, msg!).then((value) => safeSetState(() {})); + + } setState(() {}); diff --git a/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart b/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart index 231bdfb6..58eb0783 100644 --- a/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart +++ b/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart @@ -1,8 +1,6 @@ +import 'package:flutter/material.dart'; import 'package:hub/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; - -import 'package:flutter/material.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; class UpArrowLinkedLocalsComponentModel diff --git a/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart b/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart index 6622fb27..3d747604 100644 --- a/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart +++ b/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import '/backend/api_requests/api_calls.dart'; diff --git a/lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart b/lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart index 0c36f135..f306eff7 100644 --- a/lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart +++ b/lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart @@ -3,7 +3,6 @@ import 'dart:collection'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:provider/provider.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; diff --git a/lib/components/templates_components/change_passs_qr_code_pass_key_template_component/change_pass_widget.dart b/lib/components/templates_components/change_passs_qr_code_pass_key_template_component/change_pass_widget.dart index b709cc5b..fb2c4b57 100644 --- a/lib/components/templates_components/change_passs_qr_code_pass_key_template_component/change_pass_widget.dart +++ b/lib/components/templates_components/change_passs_qr_code_pass_key_template_component/change_pass_widget.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import '/flutter_flow/flutter_flow_theme.dart'; diff --git a/lib/components/templates_components/details_component/details_component_widget.dart b/lib/components/templates_components/details_component/details_component_widget.dart index ee959e7f..fbfef1cb 100644 --- a/lib/components/templates_components/details_component/details_component_widget.dart +++ b/lib/components/templates_components/details_component/details_component_widget.dart @@ -1,15 +1,12 @@ import 'dart:collection'; -import 'dart:developer'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/components/templates_components/details_component/details_component_model.dart'; -import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; -import 'package:provider/provider.dart'; + class DetailsComponentWidget extends StatefulWidget { const DetailsComponentWidget({ @@ -35,7 +32,7 @@ class _DetailsComponentWidgetState extends State { late DetailsComponentModel _model; LinkedHashMap get labelsLinkedHashMap => - LinkedHashMap.from(widget.labelsHashMap ?? {}); + LinkedHashMap.from(widget.labelsHashMap); List> get statusLinkedHashMap => widget.statusHashMap diff --git a/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart b/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart index 88a2f4b8..70f2ede6 100644 --- a/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart +++ b/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart @@ -1,17 +1,16 @@ -import 'package:hub/flutter_flow/nav/nav.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 '/backend/api_requests/api_calls.dart'; -import '/flutter_flow/flutter_flow_theme.dart'; -import '/flutter_flow/flutter_flow_util.dart'; -import '/flutter_flow/flutter_flow_widgets.dart'; import 'package:easy_debounce/easy_debounce.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; +import 'package:hub/flutter_flow/nav/nav.dart'; +import 'package:hub/shared/services/authentication/authentication_service.dart'; +import 'package:hub/shared/utils/validator_util.dart'; + +import '/flutter_flow/flutter_flow_theme.dart'; +import '/flutter_flow/flutter_flow_util.dart'; +import '/flutter_flow/flutter_flow_widgets.dart'; import 'forgot_password_template_component_model.dart'; + export 'forgot_password_template_component_model.dart'; // @@ -74,7 +73,6 @@ class _ForgotPasswordTemplateComponentWidgetState mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ - // This row exists for when the "app bar" is hidden on desktop, having a way back for the user can work well. if (responsiveVisibility( context: context, phone: false, @@ -84,6 +82,7 @@ class _ForgotPasswordTemplateComponentWidgetState padding: const EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 8.0), child: InkWell( + key: const ValueKey('BackButton'), splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, @@ -104,19 +103,16 @@ class _ForgotPasswordTemplateComponentWidgetState ), ), Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 12.0, 0.0, 0.0, 0.0), + padding: const EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0), child: Text( '', - style: - FlutterFlowTheme.of(context).bodyMedium.override( + style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Plus Jakarta Sans', color: const Color(0xFF15161E), fontSize: 14.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Plus Jakarta Sans'), + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), ), ), @@ -128,9 +124,7 @@ class _ForgotPasswordTemplateComponentWidgetState padding: const EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0), child: Text( - FFLocalizations.of(context).getText( - 'xxm3ajsy' /* ESQUECEU SUA SENHA? */, - ), + FFLocalizations.of(context).getText('xxm3ajsy' /* ESQUECEU SUA SENHA? */), style: FlutterFlowTheme.of(context).headlineMedium.override( fontFamily: 'Outfit', color: FlutterFlowTheme.of(context).primaryText, @@ -145,9 +139,7 @@ class _ForgotPasswordTemplateComponentWidgetState padding: const EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 16.0, 4.0), child: Text( - FFLocalizations.of(context).getText( - 'wu2f7yzo' /* Não se preucupe nós vamos te a... */, - ), + FFLocalizations.of(context).getText('wu2f7yzo' /* Não se preucupe nós vamos te a... */), style: FlutterFlowTheme.of(context).labelMedium.override( fontFamily: 'Plus Jakarta Sans', color: FlutterFlowTheme.of(context).primaryText, @@ -168,6 +160,7 @@ class _ForgotPasswordTemplateComponentWidgetState child: SizedBox( width: double.infinity, child: TextFormField( + key: const ValueKey('recoveryTextFormField'), controller: _model.emailAddressTextController, focusNode: _model.emailAddressFocusNode, onChanged: (_) => EasyDebounce.debounce( @@ -180,11 +173,8 @@ class _ForgotPasswordTemplateComponentWidgetState obscureText: false, decoration: InputDecoration( isDense: true, - labelText: FFLocalizations.of(context).getText( - 'mtz8l7ft' /* E-mail */, - ), - labelStyle: - FlutterFlowTheme.of(context).labelMedium.override( + labelText: FFLocalizations.of(context).getText('mtz8l7ft' /* E-mail */), + labelStyle: FlutterFlowTheme.of(context).labelMedium.override( fontFamily: 'Plus Jakarta Sans', color: FlutterFlowTheme.of(context).primary, fontSize: 14.0, @@ -253,39 +243,14 @@ class _ForgotPasswordTemplateComponentWidgetState padding: const EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 0.0), child: FFButtonWidget( + key: const ValueKey('SendButtonWidget'), onPressed: (_model.emailAddressTextController.text == '' || !ValidatorUtil.isValidEmail( _model.emailAddressTextController.text)) ? null - : () async { - try { - _model.req = await PhpGroup.forgotPasswordCall.call( - email: _model.emailAddressTextController.text, - ); + : () async => AuthenticationService.forgotPassword(context, _model.emailAddressTextController.text), - if (_model.req?.jsonBody['error'] == false) { - await DialogUtil.success( - context, - FFLocalizations.of(context).getVariableText( - enText: "Send E-mail Successful!", - ptText: "E-mail Enviado com Sucesso!")); - context.pop(); - } else { - await DialogUtil.error( - context, _model.req?.jsonBody['error_msg']); - } - setState(() {}); - } catch (error, stack) { - LogUtil.requestAPIFailed( - "iforgot.php", - _model.emailAddressTextController.text, - "Recuperar Senha", - error, - stack); - await DialogUtil.errorDefault(context); - } - }, text: FFLocalizations.of(context).getText( '74rnd5bu' /* Enviar */, ), diff --git a/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart b/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart index 63ce5b0e..db1f6d26 100644 --- a/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart +++ b/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:hub/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; class LiberationHistoryItemDetailsTemplateComponentModel diff --git a/lib/components/templates_components/provisional_schedule_template/provisional_schedule_template_model.dart b/lib/components/templates_components/provisional_schedule_template/provisional_schedule_template_model.dart index 97b7b058..e9a7606c 100644 --- a/lib/components/templates_components/provisional_schedule_template/provisional_schedule_template_model.dart +++ b/lib/components/templates_components/provisional_schedule_template/provisional_schedule_template_model.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:hub/backend/api_requests/api_manager.dart'; import 'package:hub/components/templates_components/provisional_schedule_template/provisional_shcedule_template_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; class ScheduleProvisionalVisitPageModel diff --git a/lib/components/templates_components/provisional_schedule_template/provisional_shcedule_template_widget.dart b/lib/components/templates_components/provisional_schedule_template/provisional_shcedule_template_widget.dart index ad763b85..d5af8a30 100644 --- a/lib/components/templates_components/provisional_schedule_template/provisional_shcedule_template_widget.dart +++ b/lib/components/templates_components/provisional_schedule_template/provisional_shcedule_template_widget.dart @@ -529,8 +529,7 @@ class _ScheduleProvisionalVisitPageWidgetState initialDate: getCurrentTimestamp, firstDate: - (getCurrentTimestamp ?? - DateTime(1900)), + (getCurrentTimestamp), lastDate: DateTime(2050), builder: (context, child) { return wrapInMaterialDatePickerTheme( diff --git a/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart b/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart index 2bde3236..0d45259f 100644 --- a/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart +++ b/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/validator_util.dart'; diff --git a/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart b/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart index cc58b32e..efb7adf1 100644 --- a/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart +++ b/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart @@ -5,7 +5,6 @@ import 'package:google_fonts/google_fonts.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/image_util.dart'; import 'package:hub/shared/utils/validator_util.dart'; -import 'package:provider/provider.dart'; import 'package:rxdart/rxdart.dart'; import '/backend/api_requests/api_calls.dart'; diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart index 8d2d1561..21b10011 100644 --- a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart +++ b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart @@ -1,32 +1,19 @@ -import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/flutter_flow/random_data_util.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; -import 'package:hub/shared/utils/device_util.dart'; -import 'package:hub/shared/utils/dialog_util.dart'; -import 'package:hub/shared/utils/log_util.dart'; -import 'package:hub/shared/utils/storage_util.dart'; +import 'package:flutter/material.dart'; import '/flutter_flow/flutter_flow_util.dart'; import 'sign_in_template_component_widget.dart' show SignInTemplateComponentWidget; -import 'package:flutter/material.dart'; class SignInTemplateComponentModel extends FlutterFlowModel { - /// State fields for stateful widgets in this component. final formKey = GlobalKey(); final unfocusNode = FocusNode(); - // State field(s) for emailAddress widget. FocusNode? emailAddressFocusNode; TextEditingController? emailAddressTextController; String? Function(BuildContext, String?)? emailAddressTextControllerValidator; - SignInTemplateComponentModel(); - String? _emailAddressTextControllerValidator( - BuildContext context, String? val) { + String? _emailAddressTextControllerValidator(BuildContext context, String? val) { if (val == null || val.isEmpty) { return FFLocalizations.of(context).getText( 'xhnawzcb' /* Campo é necessário */, @@ -40,8 +27,6 @@ class SignInTemplateComponentModel } return null; } - - // State field(s) for password widget. FocusNode? passwordFocusNode; TextEditingController? passwordTextController; late bool passwordVisibility; @@ -56,106 +41,10 @@ class SignInTemplateComponentModel return null; } - Future checkLocals({ - String? cliUUID, - required BuildContext context, - required FlutterFlowModel model, - }) async { - final GetLocalsCall callback = PhpGroup.getLocalsCall; - final response = await callback.call(); - if (response.jsonBody['error']) { - DialogUtil.errorDefault(context); - return false; - } - List locals = response.jsonBody['locais'] ?? []; - if (locals.isEmpty) { - return false; - } else { - return true; - } - } - Future signInLoginAction( - BuildContext context, - FlutterFlowModel model, { - String? emailAdress, - String? password, - }) async { - try { - final ApiCallResponse? response; - final LoginCall callback = PhpGroup.loginCall; - StorageUtil().deviceDescription = randomString( - 10, - 10, - true, - false, - false, - ); - - final String? devUUID; - final String userUUID; - final String status; - final String userDevUUID; - final String userName; - final String email; - final String passwd; - - email = emailAdress!; - passwd = password!; - - devUUID = await DeviceUtil.getDevUUID(); - - if ((email != '') && (passwd != '')) { - StorageUtil().email = email; - StorageUtil().passwd = passwd; - StorageUtil().devUUID = devUUID!; - response = await callback.call(); - - if (response.jsonBody['error'] == false) { - userUUID = response.jsonBody['uid']; - status = response.jsonBody['user']['status']; - userDevUUID = response.jsonBody['user']['dev_id']; - userName = response.jsonBody['user']['name']; - - StorageUtil().userUUID = userUUID; - StorageUtil().userDevUUID = userDevUUID; - StorageUtil().status = status; - StorageUtil().userName = userName; - - await checkLocals(context: context, model: model).then((value) { - StorageUtil().haveLocal = value; - StorageUtil().isLogged = true; - toggleApp(context); - }); - } else { - if (response.jsonBody['error'] == null) { - DialogUtil.errorDefault(context); - } else { - DialogUtil.error( - context, response.jsonBody['error_msg'].toString()); - } - } - } - - return; - } catch (e, s) { - DialogUtil.errorDefault(context); - LogUtil.requestAPIFailed( - 'login.php', emailAdress.toString(), "Login", e, s); - } - } - - Future toggleApp(BuildContext context) async { - final haveLocal = StorageUtil().haveLocal; - if (haveLocal == true) { - context.go('/homePage'); - } else if (haveLocal == false) { - context.go('/receptionPage'); - } - } @override void initState(BuildContext context) { diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart index b9e0dc69..9bd0b5e1 100644 --- a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart +++ b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart @@ -13,6 +13,7 @@ import '/flutter_flow/flutter_flow_animations.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_widgets.dart'; +import '../../../shared/services/authentication/authentication_service.dart'; import 'sign_in_template_component_model.dart'; export 'sign_in_template_component_model.dart'; @@ -99,15 +100,8 @@ class _SignInTemplateComponentWidgetState } bool _isFormInvalid() { - if (_model.emailAddressTextController.text == '' || - _model.passwordTextController.text == '') { - return true; - } - - if (!ValidatorUtil.isValidEmail(_model.emailAddressTextController.text)) { - return true; - } - + if (_model.emailAddressTextController.text == '' || _model.passwordTextController.text == '') return true; + if (!ValidatorUtil.isValidEmail(_model.emailAddressTextController.text)) return true; return false; } @@ -131,14 +125,11 @@ class _SignInTemplateComponentWidgetState mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 0.0, 35.0, 0.0, 35.0), + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 35.0, 0.0, 35.0), child: Container( width: 548.0, height: 112.0, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(16.0), - ), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(16.0)), alignment: const AlignmentDirectional(0.0, 0.0), child: Padding( padding: const EdgeInsets.all(20.0), @@ -148,31 +139,24 @@ class _SignInTemplateComponentWidgetState children: [ Expanded( child: Align( - alignment: - const AlignmentDirectional(0.0, 1.0), + alignment: const AlignmentDirectional(0.0, 1.0), child: Padding( padding: const EdgeInsets.all(3.0), child: Text( - FFLocalizations.of(context) - .getVariableText( - ptText: - 'VAMOS LÁ! ENTRE COM A SUA CONTA', - enText: - 'LET\'S GO! SIGN IN WITH YOUR ACCOUNT', + FFLocalizations.of(context).getVariableText( + ptText: 'VAMOS LÁ! ENTRE COM A SUA CONTA', + enText: 'LET\'S GO! SIGN IN WITH YOUR ACCOUNT', ), textAlign: TextAlign.start, style: FlutterFlowTheme.of(context) .displaySmall .override( fontFamily: 'Plus Jakarta Sans', - color: FlutterFlowTheme.of(context) - .primaryText, + color: FlutterFlowTheme.of(context).primaryText, fontSize: 24.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey( - 'Plus Jakarta Sans'), + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), ), ), @@ -189,8 +173,7 @@ class _SignInTemplateComponentWidgetState decoration: const BoxDecoration(), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), - child: const AtomImageSvgTheme( - filename: 'login', width: 600, height: 155), + child: const AtomImageSvgTheme(filename: 'login', width: 600, height: 155), ), ), Column( @@ -199,16 +182,12 @@ class _SignInTemplateComponentWidgetState Align( alignment: const AlignmentDirectional(0.0, 0.0), child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 34.0, 0.0, 34.0, 0.0), + padding: const EdgeInsetsDirectional.fromSTEB(34.0, 0.0, 34.0, 0.0), child: Container( width: double.infinity, - constraints: const BoxConstraints( - maxWidth: 570.0, - ), + constraints: const BoxConstraints(maxWidth: 570.0,), decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, + color: FlutterFlowTheme.of(context).primaryBackground, borderRadius: BorderRadius.circular(12.0), shape: BoxShape.rectangle, ), @@ -218,8 +197,7 @@ class _SignInTemplateComponentWidgetState padding: const EdgeInsets.all(32.0), child: Column( mainAxisSize: MainAxisSize.max, - crossAxisAlignment: - CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ Form( key: _model.formKey, @@ -237,7 +215,7 @@ class _SignInTemplateComponentWidgetState width: double.infinity, child: TextFormField( key: const ValueKey( - 'emailField'), + 'emailTextFormField'), controller: _model .emailAddressTextController, focusNode: _model @@ -378,324 +356,159 @@ class _SignInTemplateComponentWidgetState ), ), Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, 0.0, 0.0, 16.0), + padding: const EdgeInsetsDirectional .fromSTEB(0.0, 0.0, 0.0, 16.0), child: SizedBox( width: double.infinity, child: TextFormField( - key: const ValueKey( - 'passwordField'), - controller: _model - .passwordTextController, - cursorColor: - FlutterFlowTheme.of( - context) - .primary, - focusNode: - _model.passwordFocusNode, - onChanged: (_) => - EasyDebounce.debounce( + key: const ValueKey('passwordTextFormField'), + controller: _model.passwordTextController, + cursorColor: FlutterFlowTheme.of(context).primary, + focusNode: _model.passwordFocusNode, + onChanged: (_) => EasyDebounce.debounce( '_model.passwordTextController', - const Duration( - milliseconds: 500), - () => setState(() {}), + const Duration(milliseconds: 500), + () => setState(() {}) ), autofocus: true, - autofillHints: const [ - AutofillHints.password - ], - textInputAction: - TextInputAction.send, - obscureText: !_model - .passwordVisibility, + autofillHints: const [AutofillHints.password], + textInputAction: TextInputAction.send, + obscureText: !_model.passwordVisibility, decoration: InputDecoration( isDense: true, - labelText: - FFLocalizations.of( - context) - .getText( - '2x19ce8k' /* Senha */, - ), - labelStyle: FlutterFlowTheme - .of(context) + labelText: FFLocalizations.of(context).getText('2x19ce8k' /* Senha */), + labelStyle: FlutterFlowTheme.of(context) .labelLarge .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme - .of(context) - .primaryText, + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).primaryText, fontSize: 16.0, letterSpacing: 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - enabledBorder: - OutlineInputBorder( + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans')), + enabledBorder: OutlineInputBorder( borderSide: BorderSide( - color: - FlutterFlowTheme.of( - context) - .customColor1, - width: 0.25, - ), - borderRadius: - BorderRadius.circular( - 12.0), + color: FlutterFlowTheme.of(context).customColor1, + width: 0.25), + borderRadius: BorderRadius.circular(12.0), ), - focusedBorder: - OutlineInputBorder( - borderSide: - const BorderSide( - color: - Color(0xFF1AAB5F), - width: 0.25, - ), - borderRadius: - BorderRadius.circular( - 12.0), + focusedBorder: OutlineInputBorder( + borderSide: const BorderSide( + color:Color(0xFF1AAB5F), + width: 0.25), + borderRadius: BorderRadius.circular(12.0)), + errorBorder: OutlineInputBorder( + borderSide: const BorderSide( + color: Color(0xFFFF5963), + width: 0.25), + borderRadius: BorderRadius.circular(12.0), ), - errorBorder: - OutlineInputBorder( - borderSide: - const BorderSide( - color: - Color(0xFFFF5963), - width: 0.25, - ), - borderRadius: - BorderRadius.circular( - 12.0), - ), - focusedErrorBorder: - OutlineInputBorder( - borderSide: - const BorderSide( - color: - Color(0xFFFF5963), - width: 0.25, - ), - borderRadius: - BorderRadius.circular( - 12.0), + focusedErrorBorder: OutlineInputBorder( + borderSide: const BorderSide( + color: Color(0xFFFF5963), + width: 0.25), + borderRadius: BorderRadius.circular(12.0), ), filled: true, - fillColor: - FlutterFlowTheme.of( - context) - .primaryBackground, + fillColor: FlutterFlowTheme.of(context).primaryBackground, suffixIcon: InkWell( - onTap: () => setState( - () => _model - .passwordVisibility = - !_model - .passwordVisibility, - ), - focusNode: FocusNode( - skipTraversal: true), + onTap: () => setState(() => _model.passwordVisibility = !_model.passwordVisibility), + focusNode: FocusNode(skipTraversal: true), child: Icon( - _model.passwordVisibility - ? Icons - .visibility_outlined - : Icons - .visibility_off_outlined, - color: - FlutterFlowTheme.of( - context) - .accent1, - size: 24.0, - ), + _model.passwordVisibility ? Icons.visibility_outlined : Icons.visibility_off_outlined, + color:FlutterFlowTheme.of(context).accent1, + size: 24.0), ), ), - style: FlutterFlowTheme.of( - context) + style: FlutterFlowTheme.of(context) .bodyLarge .override( - fontFamily: - 'Plus Jakarta Sans', - color: - FlutterFlowTheme.of( - context) - .primaryText, + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).primaryText, fontSize: 16.0, letterSpacing: 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), - validator: _model - .passwordTextControllerValidator - .asValidator(context), + validator: _model.passwordTextControllerValidator.asValidator(context), ), ), ), ], ), ), + + Builder( builder: (context) { - if (MediaQuery.sizeOf(context).width < - kBreakpointSmall - ? true - : false) { + if (MediaQuery.sizeOf(context).width < kBreakpointSmall ? true : false) { return Column( mainAxisSize: MainAxisSize.max, children: [ Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, 0.0, 0.0, 16.0), + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( + key: const ValueKey('SubmitButtonWidget'), onPressed: _isFormInvalid() ? null : () async { - await _model - .signInLoginAction( - context, - _model, - emailAdress: _model - .emailAddressTextController - .text, - password: _model - .passwordTextController - .text, + await AuthenticationService.signIn(context, _model, + emailAdress: _model.emailAddressTextController.text, + password: _model.passwordTextController.text, ); setState(() {}); }, - text: FFLocalizations.of( - context) - .getText( - 'k44tm7wo' /* Entrar */, - ), + text: FFLocalizations.of(context).getText('k44tm7wo' /* Entrar */), options: FFButtonOptions( width: double.infinity, height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - color: - FlutterFlowTheme.of( - context) - .primary, - textStyle: - FlutterFlowTheme.of( - context) - .titleSmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .info, + padding: const EdgeInsetsDirectional.fromSTEB(0.0,0.0, 0.0, 0.0), + iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0,0.0, 0.0, 0.0), + color: FlutterFlowTheme.of(context).primary, + textStyle: FlutterFlowTheme.of(context).titleSmall.override( + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).info, fontSize: 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans')), elevation: 3.0, - borderSide: - const BorderSide( - color: - Colors.transparent, - width: 1.0, - ), - borderRadius: - BorderRadius.circular( - 12.0), - disabledColor: - FlutterFlowTheme.of( - context) - .customColor5, - disabledTextColor: - Colors.white, + borderSide: const BorderSide( + color: Colors.transparent, + width: 1.0), + borderRadius: BorderRadius.circular(12.0), + disabledColor: FlutterFlowTheme.of(context).customColor5, + disabledTextColor: Colors.white, ), showLoadingIndicator: false, ), ), Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, 0.0, 0.0, 16.0), + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( - onPressed: () async { - await widget - .toggleSignUpPage - ?.call(); - }, - text: FFLocalizations.of( - context) - .getText( - '14u7ipws' /* Cadastrar */, + key: const ValueKey('toggleSignUpPage'), + onPressed: () async => await widget.toggleSignUpPage?.call(), + text: FFLocalizations.of(context).getText('14u7ipws' /* Cadastrar */, ), options: FFButtonOptions( width: double.infinity, height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - color: - FlutterFlowTheme.of( - context) - .customColor1, + padding: const EdgeInsetsDirectional.fromSTEB(0.0,0.0, 0.0, 0.0), + iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), + color: FlutterFlowTheme.of(context).customColor1, textStyle: - FlutterFlowTheme.of( - context) + FlutterFlowTheme.of(context) .titleSmall .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .secondaryText, + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).secondaryText, fontSize: 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), elevation: 3.0, - borderSide: - const BorderSide( - color: - Colors.transparent, - width: 1.0, - ), - borderRadius: - BorderRadius.circular( - 12.0), + borderSide: const BorderSide(color: Colors.transparent, width: 1.0), + borderRadius: BorderRadius.circular(12.0), ), showLoadingIndicator: false, ), @@ -705,109 +518,59 @@ class _SignInTemplateComponentWidgetState } else { return Row( mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceEvenly, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Expanded( child: Padding( padding: const EdgeInsetsDirectional - .fromSTEB(0.0, 0.0, - 0.0, 16.0), + .fromSTEB(0.0, 0.0,0.0, 16.0), child: FFButtonWidget( - key: const ValueKey< - String>( - 'loginCallback'), - onPressed: - _isFormInvalid() - ? null - : () async { + key: const ValueKey('SubmitButtonWidget'), + onPressed: _isFormInvalid() ? null : () async { try { - await _model - .signInLoginAction( + await AuthenticationService.signIn( context, _model, - emailAdress: _model - .emailAddressTextController - .text, - password: _model - .passwordTextController - .text, + emailAdress: _model.emailAddressTextController.text, + password: _model.passwordTextController.text, ); - setState( - () {}); + setState(() {}); } catch (e, s) { - await DialogUtil - .errorDefault( - context); + await DialogUtil.errorDefault(context); LogUtil.requestAPIFailed( 'login.php', - _model - .emailAddressTextController - .text, + _model.emailAddressTextController.text, "Login", - e, - s); + e, s); } }, - text: FFLocalizations.of( - context) - .getText( - '1x926nsn' /* Entrar */, - ), + text: FFLocalizations.of(context).getText('1x926nsn'), options: FFButtonOptions( width: double.infinity, height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - color: - FlutterFlowTheme.of( - context) - .accent1, - textStyle: - FlutterFlowTheme.of( - context) + padding: const EdgeInsetsDirectional.fromSTEB(0.0,0.0, 0.0, 0.0), + iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), + color: FlutterFlowTheme.of(context).accent1, + textStyle: FlutterFlowTheme.of(context) .titleSmall .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .info, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).info, + fontSize: 16.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), elevation: 3.0, - borderSide: - const BorderSide( - color: Colors - .transparent, + borderSide: const BorderSide( + color: Colors.transparent, width: 1.0, ), - borderRadius: - BorderRadius - .circular(12.0), - disabledColor: - const Color( - 0xE81AAB5F), + borderRadius: BorderRadius.circular(12.0), + disabledColor: const Color(0xE81AAB5F), ), - showLoadingIndicator: - true, + showLoadingIndicator: true, ), ), ), @@ -818,79 +581,45 @@ class _SignInTemplateComponentWidgetState .fromSTEB(0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( - onPressed: () async { - await widget - .toggleSignUpPage - ?.call(); - }, - text: FFLocalizations.of( - context) - .getText( - 'jwvd4ai1' /* Cadastrar */, - ), + key: const ValueKey('toggleSignUpPage'), + onPressed: () async => await widget.toggleSignUpPage?.call(), + text: FFLocalizations.of(context).getText('jwvd4ai1' /* Cadastrar */), options: FFButtonOptions( width: double.infinity, height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB(0.0, - 0.0, 0.0, 0.0), - color: - FlutterFlowTheme.of( - context) - .customColor1, + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), + iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), + color: FlutterFlowTheme.of(context).customColor1, textStyle: - FlutterFlowTheme.of( - context) + FlutterFlowTheme + .of(context) .titleSmall .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .secondaryText, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).secondaryText, + fontSize: 16.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), elevation: 3.0, - borderSide: - const BorderSide( - color: Colors - .transparent, - width: 1.0, - ), - borderRadius: - BorderRadius - .circular(12.0), + borderSide: const BorderSide(color: Colors.transparent,width: 1.0,), + borderRadius: BorderRadius.circular(12.0), ), - showLoadingIndicator: - false, + showLoadingIndicator: false, ), ), ), - ].divide( - const SizedBox(width: 7.0)), - ); + ].divide(const SizedBox(width: 7.0))); } }, ), + + Padding( - padding: const EdgeInsetsDirectional - .fromSTEB(0.0, 12.0, 0.0, 12.0), + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 12.0, 0.0, 12.0), child: InkWell( + key: const ValueKey('ForgotPassword'), splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, @@ -898,100 +627,42 @@ class _SignInTemplateComponentWidgetState onTap: () async { await showModalBottomSheet( isScrollControlled: true, - backgroundColor: - Colors.transparent, + backgroundColor: Colors.transparent, context: context, builder: (context) { return Padding( - padding: - MediaQuery.viewInsetsOf( - context), - child: - const ForgotPasswordTemplateComponentWidget(), + padding: MediaQuery.viewInsetsOf(context), + child: const ForgotPasswordTemplateComponentWidget(), ); - }, - ).then( - (value) => safeSetState(() {})); - }, + }).then((value) => safeSetState(() {})); + }, child: RichText( - textScaler: MediaQuery.of(context) - .textScaler, + textScaler: MediaQuery.of(context).textScaler, text: TextSpan( children: [ TextSpan( - text: FFLocalizations.of( - context) - .getText( - '05dx91ku' /* Você esqueceu a sua senha? */, - ), - style: TextStyle( - color: FlutterFlowTheme.of( - context) - .primaryText, - ), + text: FFLocalizations.of(context).getText('05dx91ku' /* Você esqueceu a sua senha? */,), + style: TextStyle(color: FlutterFlowTheme.of(context).primaryText), ), TextSpan( - text: FFLocalizations.of( - context) - .getText( - 'p5c6d54y' /* Recupere aqui */, - ), - style: FlutterFlowTheme.of( - context) - .bodyMedium - .override( - fontFamily: - 'Plus Jakarta Sans', - color: - FlutterFlowTheme.of( - context) - .primary, + text: FFLocalizations.of(context).getText('p5c6d54y' /* Recupere aqui */), + style: FlutterFlowTheme.of(context).bodyMedium.override( + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).primary, fontSize: 14.0, letterSpacing: 0.0, - fontWeight: - FontWeight.normal, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), + fontWeight: FontWeight.normal, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), - mouseCursor: - SystemMouseCursors.click, - // recognizer: TapGestureRecognizer() - // ..onTap = () async { - // await showModalBottomSheet( - // isScrollControlled: true, - // backgroundColor: Colors.transparent, - // context: context, - // useRootNavigator: true, - // builder: (context) { - // return Padding( - // padding: MediaQuery.viewInsetsOf(context), - // child: const ForgotPasswordTemplateComponentWidget(), - // ); - // }, - // ).then((value) => - // safeSetState( - // () {})); - // }, + mouseCursor: SystemMouseCursors.click, ) ], - style: - FlutterFlowTheme.of(context) + style: FlutterFlowTheme.of(context) .bodyMedium .override( - fontFamily: - FlutterFlowTheme.of( - context) - .bodyMediumFamily, + fontFamily: FlutterFlowTheme.of(context).bodyMediumFamily, letterSpacing: 0.0, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - FlutterFlowTheme.of( - context) - .bodyMediumFamily), - ), + useGoogleFonts: GoogleFonts.asMap().containsKey(FlutterFlowTheme.of(context).bodyMediumFamily)), ), ), ), diff --git a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart index c4f839da..c07deb16 100644 --- a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart +++ b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart @@ -1,25 +1,17 @@ -import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/flutter_flow/random_data_util.dart'; -import 'package:hub/shared/utils/dialog_util.dart'; -import 'package:hub/shared/utils/log_util.dart'; +import 'package:flutter/material.dart'; import '/flutter_flow/flutter_flow_util.dart'; import 'sign_up_template_component_widget.dart' show SignUpTemplateComponentWidget; -import 'package:flutter/material.dart'; class SignUpTemplateComponentModel extends FlutterFlowModel { - /// State fields for stateful widgets in this component. final formKey = GlobalKey(); - // State field(s) for nameRegisterForm widget. FocusNode? nameRegisterFormFocusNode; TextEditingController? nameRegisterFormTextController; - String? Function(BuildContext, String?)? - nameRegisterFormTextControllerValidator; - String? _nameRegisterFormTextControllerValidator( - BuildContext context, String? val) { + String? Function(BuildContext, String?)? nameRegisterFormTextControllerValidator; + String? _nameRegisterFormTextControllerValidator(BuildContext context, String? val) { if (val == null || val.isEmpty) { return FFLocalizations.of(context).getText( '3bs10dfq' /* Campo é necessário */, @@ -29,13 +21,10 @@ class SignUpTemplateComponentModel return null; } - // State field(s) for emailRegisterForm widget. FocusNode? emailRegisterFormFocusNode; TextEditingController? emailRegisterFormTextController; - String? Function(BuildContext, String?)? - emailRegisterFormTextControllerValidator; - String? _emailRegisterFormTextControllerValidator( - BuildContext context, String? val) { + String? Function(BuildContext, String?)? emailRegisterFormTextControllerValidator; + String? _emailRegisterFormTextControllerValidator(BuildContext context, String? val) { if (val == null || val.isEmpty) { return FFLocalizations.of(context).getText( 'mlvw63yj' /* Campo é necessário */, @@ -50,14 +39,11 @@ class SignUpTemplateComponentModel return null; } - // State field(s) for passwordRegisterForm widget. FocusNode? passwordRegisterFormFocusNode; TextEditingController? passwordRegisterFormTextController; late bool passwordRegisterFormVisibility; - String? Function(BuildContext, String?)? - passwordRegisterFormTextControllerValidator; - String? _passwordRegisterFormTextControllerValidator( - BuildContext context, String? val) { + String? Function(BuildContext, String?)? passwordRegisterFormTextControllerValidator; + String? _passwordRegisterFormTextControllerValidator(BuildContext context, String? val) { if (val == null || val.isEmpty) { return FFLocalizations.of(context).getText( '6nn79lmh' /* Campo é necessário */, @@ -73,18 +59,14 @@ class SignUpTemplateComponentModel return null; } - // Stores action output result for [Action Block - signUpRegisterAction] action in SignUpButtonRegisterForm widget. - bool? signUp; + bool? register; @override void initState(BuildContext context) { - nameRegisterFormTextControllerValidator = - _nameRegisterFormTextControllerValidator; - emailRegisterFormTextControllerValidator = - _emailRegisterFormTextControllerValidator; + nameRegisterFormTextControllerValidator = _nameRegisterFormTextControllerValidator; + emailRegisterFormTextControllerValidator = _emailRegisterFormTextControllerValidator; passwordRegisterFormVisibility = false; - passwordRegisterFormTextControllerValidator = - _passwordRegisterFormTextControllerValidator; + passwordRegisterFormTextControllerValidator = _passwordRegisterFormTextControllerValidator; } @override @@ -99,61 +81,6 @@ class SignUpTemplateComponentModel passwordRegisterFormTextController?.dispose(); } - Future signUpRegisterAction( - BuildContext context, { - required String? name, - String? passwd, - required String? email, - String? device, - }) async { - try { - ApiCallResponse? response; - if ((email != null && email != '') && - (passwd != null && passwd != '' && passwd.length > 7) && - (name != null && name != '')) { - response = await PhpGroup.registerCall.call( - name: name, - password: passwd, - email: email, - token: randomString( - 36, - 36, - false, - false, - true, - ), - uuid: randomString( - 36, - 36, - false, - false, - true, - ), - tipo: device!, - descricao: randomString( - 36, - 36, - true, - false, - false, - ), - ); - if (response.jsonBody['error'] == false) { - return true; - } - DialogUtil.error(context, response.jsonBody['error_msg']); - return false; - } else { - DialogUtil.errorDefault(context); - return false; - } - } catch (e, s) { - DialogUtil.errorDefault(context); - LogUtil.requestAPIFailed( - 'registro.php', email.toString(), "Register", e, s); - return false; - } - } } diff --git a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart index 8dd9accf..14003cdb 100644 --- a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart +++ b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart @@ -4,35 +4,26 @@ import 'package:flutter_animate/flutter_animate.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/atom_image_svg_theme.dart'; import 'package:hub/shared/components/atoms/atom_terms_of_use.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/validator_util.dart'; -import 'package:provider/provider.dart'; import '/flutter_flow/flutter_flow_animations.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_widgets.dart'; +import '../../../shared/services/authentication/authentication_service.dart'; import 'sign_up_template_component_model.dart'; export 'sign_up_template_component_model.dart'; class SignUpTemplateComponentWidget extends StatefulWidget { - const SignUpTemplateComponentWidget({ - super.key, - required this.toggleSignInPage, - }); + const SignUpTemplateComponentWidget({super.key, required this.toggleSignInPage}); final Future Function()? toggleSignInPage; - - @override - State createState() => - _SignUpTemplateComponentWidgetState(); + @override State createState() => _SignUpTemplateComponentWidgetState(); } -class _SignUpTemplateComponentWidgetState - extends State with TickerProviderStateMixin { +class _SignUpTemplateComponentWidgetState extends State with TickerProviderStateMixin { late SignUpTemplateComponentModel _model; - final animationsMap = {}; @override @@ -246,6 +237,8 @@ class _SignUpTemplateComponentWidgetState child: SizedBox( width: double.infinity, child: TextFormField( + key: const ValueKey( + 'nameTextFormField'), controller: _model .nameRegisterFormTextController, focusNode: _model @@ -388,6 +381,8 @@ class _SignUpTemplateComponentWidgetState child: SizedBox( width: double.infinity, child: TextFormField( + key: const ValueKey( + 'emailTextFormField'), controller: _model .emailRegisterFormTextController, focusNode: _model @@ -532,6 +527,8 @@ class _SignUpTemplateComponentWidgetState child: SizedBox( width: double.infinity, child: TextFormField( + key: const ValueKey( + 'passwordTextFormField'), controller: _model .passwordRegisterFormTextController, focusNode: _model @@ -631,6 +628,7 @@ class _SignUpTemplateComponentWidgetState context) .primaryBackground, suffixIcon: InkWell( + key: const ValueKey('passwordVisibilitySuffixIcon'), onTap: () => setState( () => _model .passwordRegisterFormVisibility = @@ -685,41 +683,24 @@ class _SignUpTemplateComponentWidgetState padding: const EdgeInsetsDirectional .fromSTEB(0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( + key: const ValueKey('SubmitButtonWidget'), onPressed: isFormInvalid() ? null : () async { var shouldSetState = false; - _model.signUp = await _model - .signUpRegisterAction( - context, - name: _model - .nameRegisterFormTextController - .text, - passwd: _model - .passwordRegisterFormTextController - .text, - email: _model - .emailRegisterFormTextController - .text, - device: - StorageUtil() - .deviceType, + _model.register = await AuthenticationService.signUp(context, + email: _model.emailRegisterFormTextController.text, + name: _model.nameRegisterFormTextController.text, + passwd: _model.passwordRegisterFormTextController.text, + device: StorageUtil().deviceType, ); shouldSetState = true; - if (_model.signUp == true) { - await widget - .toggleSignInPage - ?.call(); - } else { - if (shouldSetState) { - setState(() {}); - } + if (_model.register == true) await widget.toggleSignInPage?.call(); + else { + if (shouldSetState) setState(() {}); return; } - - if (shouldSetState) { - setState(() {}); - } + if (shouldSetState) setState(() {}); }, text: FFLocalizations.of(context) .getText( @@ -774,14 +755,12 @@ class _SignUpTemplateComponentWidgetState padding: const EdgeInsetsDirectional .fromSTEB(0.0, 12.0, 0.0, 12.0), child: InkWell( + key: const ValueKey('toggleSignInPage'), splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, - onTap: () async { - await widget.toggleSignInPage - ?.call(); - }, + onTap: () async => await widget.toggleSignInPage?.call(), child: RichText( textScaler: MediaQuery.of(context) .textScaler, diff --git a/lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart b/lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart index 1188b53b..15e64040 100644 --- a/lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart +++ b/lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart @@ -1,10 +1,9 @@ -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; +import 'package:flutter/material.dart'; import 'package:hub/shared/utils/storage_util.dart'; import '/backend/api_requests/api_calls.dart'; import '/flutter_flow/flutter_flow_util.dart'; import 'view_visit_detail_widget.dart' show ViewVisitDetailWidget; -import 'package:flutter/material.dart'; class ViewVisitDetailModel extends FlutterFlowModel { late final String devUUID; diff --git a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart index d0695010..a8efa6c4 100644 --- a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart +++ b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart @@ -1,9 +1,7 @@ +import 'package:flutter/material.dart'; import 'package:hub/backend/api_requests/api_manager.dart'; import 'package:hub/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; - -import 'package:flutter/material.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; class VisitorSearchModalTemplateComponentModel diff --git a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart index 584b48fe..3978059b 100644 --- a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart +++ b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart @@ -12,7 +12,6 @@ import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:provider/provider.dart'; class VisitorSearchModalTemplateComponentWidget extends StatefulWidget { const VisitorSearchModalTemplateComponentWidget({ @@ -34,7 +33,6 @@ class _VisitorSearchModalTemplateComponentWidgetState with TickerProviderStateMixin { late VisitorSearchModalTemplateComponentModel _model; - @override safeSetState(VoidCallback callback) { super.setState(callback); _model.onUpdate(); diff --git a/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart b/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart index 21411d4f..5c0f0aa0 100644 --- a/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart +++ b/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart @@ -26,11 +26,8 @@ class WelcomeTemplateComponentWidget extends StatefulWidget { _WelcomeTemplateComponentWidgetState(); } -class _WelcomeTemplateComponentWidgetState - extends State - with TickerProviderStateMixin { +class _WelcomeTemplateComponentWidgetState extends State with TickerProviderStateMixin { late WelcomeTemplateComponentModel _model; - final animationsMap = {}; @override @@ -44,38 +41,39 @@ class _WelcomeTemplateComponentWidgetState super.initState(); _model = createModel(context, () => WelcomeTemplateComponentModel()); - animationsMap.addAll({ - 'containerOnPageLoadAnimation': AnimationInfo( - trigger: AnimationTrigger.onPageLoad, - effectsBuilder: () => [ - VisibilityEffect(duration: 1.ms), - FadeEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: 0.0, - end: 1.0, - ), - MoveEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(0.0, 140.0), - end: const Offset(0.0, 0.0), - ), - ScaleEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(0.9, 0.9), - end: const Offset(1.0, 1.0), - ), - TiltEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(-0.349, 0), - end: const Offset(0, 0), + animationsMap.addAll( + { + 'containerOnPageLoadAnimation': AnimationInfo( + trigger: AnimationTrigger.onPageLoad, + effectsBuilder: () => [ + VisibilityEffect(duration: 1.ms), + FadeEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: 0.0, + end: 1.0, + ), + MoveEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.0, 140.0), + end: const Offset(0.0, 0.0), + ), + ScaleEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.9, 0.9), + end: const Offset(1.0, 1.0), + ), + TiltEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(-0.349, 0), + end: const Offset(0, 0), ), ], ), @@ -85,7 +83,6 @@ class _WelcomeTemplateComponentWidgetState @override void dispose() { _model.maybeDispose(); - super.dispose(); } @@ -115,10 +112,7 @@ class _WelcomeTemplateComponentWidgetState child: Column( mainAxisSize: MainAxisSize.min, children: [ - Text( - FFLocalizations.of(context).getText( - 'dsc9tuc8' /* UMA EXPERIÊCIA COMPLETA */, - ), + Text( FFLocalizations.of(context).getText('dsc9tuc8' /* UMA EXPERIÊCIA COMPLETA */), textAlign: TextAlign.start, style: FlutterFlowTheme.of(context) .displaySmall @@ -128,28 +122,22 @@ class _WelcomeTemplateComponentWidgetState fontSize: 24.0, letterSpacing: 0.0, fontWeight: FontWeight.w600, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Plus Jakarta Sans'), + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), ), Align( alignment: const AlignmentDirectional(0.0, -1.0), - child: Text( - FFLocalizations.of(context).getText( - '5bgqn16z' /* COM CONFORTO ONDE VOCÊ ESTIVER... */, - ), + child: Text(FFLocalizations.of(context).getText('5bgqn16z' /* COM CONFORTO ONDE VOCÊ ESTIVER... */), textAlign: TextAlign.start, style: FlutterFlowTheme.of(context) .displaySmall .override( fontFamily: 'Plus Jakarta Sans', - color: FlutterFlowTheme.of(context) - .primaryText, + color: FlutterFlowTheme.of(context).primaryText, fontSize: 15.0, letterSpacing: 0.0, fontWeight: FontWeight.w600, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Plus Jakarta Sans'), + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), ), ), @@ -166,8 +154,7 @@ class _WelcomeTemplateComponentWidgetState decoration: const BoxDecoration(), child: ClipRRect( borderRadius: BorderRadius.circular(0.0), - child: const AtomImageSvgTheme( - filename: 'welcome', width: 600, height: double.infinity), + child: const AtomImageSvgTheme(filename: 'welcome', width: 600, height: double.infinity), ), ), Align( @@ -184,10 +171,7 @@ class _WelcomeTemplateComponentWidgetState BoxShadow( blurRadius: 0.0, color: Colors.transparent, - offset: Offset( - 0.0, - 0.0, - ), + offset: Offset(0.0,0.0), ) ], borderRadius: BorderRadius.circular(12.0), @@ -203,35 +187,23 @@ class _WelcomeTemplateComponentWidgetState children: [ Builder( builder: (context) { - if (MediaQuery.sizeOf(context).width < - kBreakpointSmall - ? true - : false) { + if (MediaQuery.sizeOf(context).width < kBreakpointSmall ? true : false) { return Column( mainAxisSize: MainAxisSize.max, children: [ Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 0.0, 0.0, 0.0, 16.0), + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( - key: const ValueKey( - 'toggleSignInPage'), + key: const ValueKey('toggleSignInPage'), onPressed: () async { await widget.toggleSignInPage?.call(); }, - text: - FFLocalizations.of(context).getText( - 'dynet730' /* Entrar */, - ), + text: FFLocalizations.of(context).getText( 'dynet730' /* Entrar */), options: FFButtonOptions( width: double.infinity, height: 44.0, - padding: const EdgeInsetsDirectional - .fromSTEB(0.0, 0.0, 0.0, 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB(0.0, 0.0, 0.0, 0.0), + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), + iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), color: FlutterFlowTheme.of(context) .primary, textStyle: FlutterFlowTheme.of( @@ -325,7 +297,10 @@ class _WelcomeTemplateComponentWidgetState padding: const EdgeInsetsDirectional .fromSTEB(0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( + key: const ValueKey('toggleSignInPage'), + onPressed: () async { + await widget.toggleSignInPage ?.call(); }, @@ -378,6 +353,7 @@ class _WelcomeTemplateComponentWidgetState padding: const EdgeInsetsDirectional .fromSTEB(0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( + key: const ValueKey('toggleSignUpPage'), onPressed: () async { await widget.toggleSignUpPage ?.call(); diff --git a/lib/flutter_flow/internationalization.dart b/lib/flutter_flow/internationalization.dart index fc8877a3..ffb64dcd 100644 --- a/lib/flutter_flow/internationalization.dart +++ b/lib/flutter_flow/internationalization.dart @@ -1321,8 +1321,8 @@ final kTranslationsMap = >>[ 'en': '', }, 'mqw2z9f3': { - 'pt': '', - 'en': '', + 'pt': 'INSIRA A NOVA SENHA', + 'en': 'ENTER NEW PASSWORD', }, // misc 'asjd2q3k2j4l21': { diff --git a/lib/flutter_flow/nav/nav.dart b/lib/flutter_flow/nav/nav.dart index 08f590b9..82f65f6b 100644 --- a/lib/flutter_flow/nav/nav.dart +++ b/lib/flutter_flow/nav/nav.dart @@ -5,13 +5,13 @@ import 'package:flutter/material.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/delivery_schedule_page/delivery_schedule_widget.dart'; import 'package:hub/pages/fast_pass_page/fast_pass_page_widget.dart'; +import 'package:hub/pages/forgot_password_page/forgot_password_screen.dart'; import 'package:hub/pages/message_history_page/message_history_page_widget.dart'; import 'package:hub/pages/package_order_page/package_order_page.dart'; import 'package:hub/pages/pets_page/pets_page_widget.dart'; import 'package:hub/pages/provisional_schedule_page/provisional_schedule_widget.dart'; import 'package:hub/pages/reception_page/reception_page_widget.dart'; import 'package:hub/pages/reservation_page/reservation_page_widget.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:provider/provider.dart'; @@ -90,14 +90,24 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) { : const ReceptionPageWidget() : const WelcomePageWidget(), ), + FFRoute( + name: 'forgotPassword', + path: '/forgotPassword', + builder: (context, params) { + late final String email = params.getParam('email', ParamType.String); + late final String token = params.getParam('token', ParamType.String); + + return ForgotPasswordScreen( + key: UniqueKey(), + email: email, + token: token, + ); + } + ), FFRoute( name: 'homePage', path: '/homePage', - builder: (context, params) { - return HomePageWidget( - key: UniqueKey(), - ); - }, + builder: (context, params) => HomePageWidget(key: UniqueKey()), ), FFRoute( name: 'receptionPage', diff --git a/lib/main.dart b/lib/main.dart index 009bf551..a8aa71e9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,8 @@ +import 'dart:async'; import 'dart:developer'; import 'dart:io'; +import 'package:app_links/app_links.dart'; import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; @@ -20,9 +22,11 @@ import 'package:responsive_framework/responsive_framework.dart'; final GlobalKey navigatorKey = GlobalKey(); void main() async { + await initializeApp(); runApp(const App()); FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage); + } Future initializeApp() async { @@ -109,11 +113,14 @@ class App extends StatefulWidget { } class _AppState extends State { + Locale? _locale = FFLocalizations.getStoredLocale(); ThemeMode _themeMode = FlutterFlowTheme.themeMode; late AppStateNotifier _appStateNotifier; late GoRouter _router; bool displaySplashImage = true; + late AppLinks _appLinks; + StreamSubscription? _linkSubscription; final ThemeData _darkTheme = ThemeData( brightness: Brightness.dark, @@ -131,7 +138,6 @@ class _AppState extends State { }), ), ); - final ThemeData _theme = ThemeData( brightness: Brightness.light, scrollbarTheme: ScrollbarThemeData( @@ -148,20 +154,16 @@ class _AppState extends State { }), ), ); - - final Iterable>? localizationsDelegates = - const [ - FFLocalizationsDelegate(), - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - ]; - + final Iterable>? localizationsDelegates = const [ + FFLocalizationsDelegate(), + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ]; final Iterable supportedLocales = const [ Locale('pt'), Locale('en'), ]; - Widget Function(BuildContext, Widget?)? builder = (context, widget) { const String HD4K = '4K'; const String ULTRAWIDE = 'ULTRAWIDE'; @@ -179,9 +181,9 @@ class _AppState extends State { ); }; - @override - void initState() { + @override void initState() { super.initState(); + initDeepLinks(); FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true); @@ -192,6 +194,38 @@ class _AppState extends State { _setupFirebaseMessaging(); } + @override void dispose() { + _linkSubscription?.cancel(); + super.dispose(); + } + + + Future initDeepLinks() async { + _appLinks = AppLinks(); + + // Handle links + _linkSubscription = _appLinks.uriLinkStream.listen((uri) { + debugPrint('onAppLink: $uri'); + openAppLink(uri); + }); + } + + void openAppLink(Uri uri) { + log('openAppLink'); + log(uri.toString()); + + final String email = uri.queryParameters['email'] ?? ''; + final String token = uri.queryParameters['token'] ?? ''; + + log('Email: $email'); + log('Token: $token'); + + // Use the extracted email and token as needed + // navigatorKey.currentState?.pushNamed('/forgotPassword', arguments: {'email': email, 'token': token}); + if (email.isNotEmpty && token.isNotEmpty) + StorageUtil().context?.push('/forgotPassword', extra: {'email': email, 'token': token}); + + } void _setupFirebaseMessaging() async { FirebaseMessaging messaging = FirebaseMessaging.instance; @@ -220,12 +254,10 @@ class _AppState extends State { } }); } - void setLocale(String language) { setState(() => _locale = createLocale(language)); FFLocalizations.storeLocale(language); } - void setThemeMode(ThemeMode mode) { setState(() { _themeMode = mode; @@ -233,9 +265,11 @@ class _AppState extends State { }); } + @override Widget build(BuildContext context) { return MaterialApp.router( + key: navigatorKey, title: 'FRE ACCESS HUB', builder: builder, localizationsDelegates: localizationsDelegates, @@ -247,4 +281,5 @@ class _AppState extends State { routerConfig: _router, ); } + } diff --git a/lib/pages/acess_history_page/acess_history_page_model.dart b/lib/pages/acess_history_page/acess_history_page_model.dart index 89ca0b9d..e32d744e 100644 --- a/lib/pages/acess_history_page/acess_history_page_model.dart +++ b/lib/pages/acess_history_page/acess_history_page_model.dart @@ -4,7 +4,6 @@ import 'package:hub/components/molecular_components/message_opt_modal/opt_modal_ import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/request_manager.dart'; import 'package:hub/pages/acess_history_page/acess_history_page_widget.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; class AcessHistoryPageModel extends FlutterFlowModel { diff --git a/lib/pages/acess_history_page/acess_history_page_widget.dart b/lib/pages/acess_history_page/acess_history_page_widget.dart index b9234979..9c612497 100644 --- a/lib/pages/acess_history_page/acess_history_page_widget.dart +++ b/lib/pages/acess_history_page/acess_history_page_widget.dart @@ -15,6 +15,7 @@ import 'package:hub/shared/utils/log_util.dart'; import 'package:rxdart/rxdart.dart'; @immutable +// ignore: must_be_immutable class AccessHistoryScreen extends StatefulWidget { late Map opt = { 'personType': '.*', diff --git a/lib/pages/fast_pass_page/fast_pass_page_widget.dart b/lib/pages/fast_pass_page/fast_pass_page_widget.dart index 03878c06..be53a767 100644 --- a/lib/pages/fast_pass_page/fast_pass_page_widget.dart +++ b/lib/pages/fast_pass_page/fast_pass_page_widget.dart @@ -3,11 +3,8 @@ import 'dart:io' show Platform; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; -import 'package:hub/app_state.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/webview_util.dart'; import 'package:url_launcher/url_launcher_string.dart'; @@ -21,7 +18,6 @@ class FastPassPageWidget extends StatefulWidget { } class _FastPassPageWidgetState extends State { - late InAppWebViewController _controllerIOS; late WebViewController _controllerAll; Future> initVariables() async { @@ -76,7 +72,6 @@ class _FastPassPageWidgetState extends State { javaScriptEnabled: true, ), onWebViewCreated: (controller) async { - _controllerIOS = controller; }, onLoadStop: (controller, url) async { await controller.evaluateJavascript( diff --git a/lib/pages/forgot_password_page/forgot_password_model.dart b/lib/pages/forgot_password_page/forgot_password_model.dart new file mode 100644 index 00000000..8d1e3572 --- /dev/null +++ b/lib/pages/forgot_password_page/forgot_password_model.dart @@ -0,0 +1,77 @@ +import 'package:flutter/material.dart'; + +import '../../shared/utils/validator_util.dart'; +import '/flutter_flow/flutter_flow_util.dart'; +import 'forgot_password_screen.dart'; + +class ForgotPasswordScreenModel extends FlutterFlowModel { + final formKey = GlobalKey(); + + FocusNode? passwordRegisterFormFocusNode; + TextEditingController? passwordRegisterFormTextController; + late bool passwordRegisterFormVisibility; + String? Function(BuildContext, String?)? passwordRegisterFormTextControllerValidator; + String? _passwordRegisterFormTextControllerValidator(BuildContext context, String? val) { + if (val == null || val.isEmpty) { + return FFLocalizations.of(context).getText( + '6nn79lmh' /* Campo é necessário */, + ); + } + return null; + } + + FocusNode? passwordConfirmFormFocusNode; + TextEditingController? passwordConfirmFormTextController; + late bool passwordConfirmFormVisibility; + String? Function(BuildContext, String?)? passwordConfirmFormTextControllerValidator; + String? _passwordConfirmFormTextControllerValidator(BuildContext context, String? val) { + if (val == null || val.isEmpty) { + return FFLocalizations.of(context).getVariableText( + ptText: 'Campo é necessário', + enText: 'Field is required', + ); + } + if (val != passwordRegisterFormTextController?.text) { + return FFLocalizations.of(context).getVariableText( + ptText: 'As senhas não coincidem', + enText: 'Passwords do not match', + ); + } + if (val.length < 8) { + return FFLocalizations.of(context).getText( + 'duq5gpp6' /* A senha deve ter pelo menos 8 ... */, + ); + } + return null; + } + + bool? register; + + + + + bool isFormInvalid() { + final password = passwordRegisterFormTextController?.text ?? ''; + final confirmPassword = passwordConfirmFormTextController?.text ?? ''; + return password.isEmpty || confirmPassword.isEmpty || password != confirmPassword + || !ValidatorUtil.isValidPassword(password) || !ValidatorUtil.isValidPassword(confirmPassword); + } + + + + @override void initState(BuildContext context) { + + + + passwordRegisterFormVisibility = false; + passwordRegisterFormTextControllerValidator = _passwordRegisterFormTextControllerValidator; + passwordConfirmFormVisibility = false; + passwordConfirmFormTextControllerValidator = _passwordConfirmFormTextControllerValidator; + } + @override void dispose() { + passwordRegisterFormFocusNode?.dispose(); + passwordRegisterFormTextController?.dispose(); + passwordConfirmFormFocusNode?.dispose(); + passwordConfirmFormTextController?.dispose(); + } +} diff --git a/lib/pages/forgot_password_page/forgot_password_screen.dart b/lib/pages/forgot_password_page/forgot_password_screen.dart new file mode 100644 index 00000000..ea6a9343 --- /dev/null +++ b/lib/pages/forgot_password_page/forgot_password_screen.dart @@ -0,0 +1,340 @@ + + +import 'package:easy_debounce/easy_debounce.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:hub/flutter_flow/nav/nav.dart'; + +import '../../components/atomic_components/shared_components_atoms/atom_image_svg_theme.dart'; +import '../../flutter_flow/flutter_flow_animations.dart'; +import '../../flutter_flow/flutter_flow_icon_button.dart'; +import '../../flutter_flow/flutter_flow_model.dart'; +import '../../flutter_flow/flutter_flow_theme.dart'; +import '../../flutter_flow/flutter_flow_widgets.dart'; +import '../../flutter_flow/internationalization.dart'; +import '../../shared/services/authentication/authentication_service.dart'; +import '../../shared/utils/validator_util.dart'; +import 'forgot_password_model.dart'; + +class ForgotPasswordScreen extends StatefulWidget { + const ForgotPasswordScreen({super.key, required this.email, required this.token}); + final String email; + final String token; + + @override State createState() => _ForgotPasswordScreenState(); +} + +class _ForgotPasswordScreenState extends State with TickerProviderStateMixin { + late ForgotPasswordScreenModel _model; + final animationsMap = {}; + + @override void setState(VoidCallback callback) { + super.setState(callback); + _model.onUpdate(); + } + @override void initState() { + super.initState(); + _model = createModel(context, () => ForgotPasswordScreenModel()); + + _model.passwordRegisterFormTextController ??= TextEditingController(); + _model.passwordRegisterFormFocusNode ??= FocusNode(); + _model.passwordRegisterFormFocusNode!.addListener(() => setState(() {})); + + _model.passwordConfirmFormTextController ??= TextEditingController(); + _model.passwordConfirmFormFocusNode ??= FocusNode(); + _model.passwordConfirmFormFocusNode!.addListener(() => setState(() {})); + + animationsMap.addAll({ + 'containerOnPageLoadAnimation': AnimationInfo( + trigger: AnimationTrigger.onPageLoad, + effectsBuilder: () => [ + VisibilityEffect(duration: 1.ms), + FadeEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: 0.0, + end: 1.0, + ), + MoveEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.0, 140.0), + end: const Offset(0.0, 0.0), + ), + ScaleEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.9, 0.9), + end: const Offset(1.0, 1.0), + ), + TiltEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(-0.349, 0), + end: const Offset(0, 0), + ), + ], + ), + }); + } + @override void dispose() { + _model.maybeDispose(); + + super.dispose(); + } + @override Widget build(BuildContext context) { + final MediaQueryData mediaQuery = MediaQuery.of(context); + return Scaffold( + appBar: buildAppBar(context), + body: buildBody(context), + ); + } + + AppBar buildAppBar(BuildContext context) { + return AppBar( + automaticallyImplyLeading: false, + forceMaterialTransparency: true, + leading: FlutterFlowIconButton( + borderColor: Colors.transparent, + borderRadius: 30.0, + borderWidth: 1.0, + buttonSize: 60.0, + icon: Icon( + Icons.keyboard_arrow_left, + color: FlutterFlowTheme.of(context).primaryText, + size: 30.0, + ), + onPressed: () async { + context.pop(); + }, + ), + title: Text( + FFLocalizations.of(context).getVariableText( + ptText: 'Recuperar Senha', + enText: 'Recover Password', + + ), + style: FlutterFlowTheme.of(context).headlineMedium.override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 15.0, + fontWeight: FontWeight.bold, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + actions: const [], + centerTitle: true, + elevation: 0.0, + ); + } + + Row buildBody(BuildContext context) { + late final String message = FFLocalizations.of(context).getVariableText( + ptText: 'Qual será a sua nova senha? Insira abaixo e confirme.', + enText: 'What will be your new password? Enter it below and confirm.', + ); + return Row( + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + flex: 6, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration(color: FlutterFlowTheme.of(context).primaryBackground), + alignment: const AlignmentDirectional(0.0, -1.0), + child: Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 291.0, + height: 167.0, + decoration: const BoxDecoration(), + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: const AtomImageSvgTheme(filename: 'register', width: 600, height: 155), + ), + ), + Padding( + padding: const EdgeInsets.all(34.0), + child: Material( + child: Container( + width: double.infinity, + constraints: const BoxConstraints(maxWidth: 570.0), + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + borderRadius: BorderRadius.circular(12.0), + ), + child: Padding( + padding: const EdgeInsets.all(32.0), + child: Column( + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB(20.0, 24.0, 0.0, 30.0), + child: Text( + message, + textAlign: TextAlign.start, + style: FlutterFlowTheme.of(context).bodyMedium.override( + fontFamily: FlutterFlowTheme.of(context).bodyMediumFamily, + fontWeight: FontWeight.bold, + useGoogleFonts: GoogleFonts.asMap().containsKey( + FlutterFlowTheme.of(context).bodyMediumFamily), + ), + ), + ), + ), + Form( + key: _model.formKey, + autovalidateMode: AutovalidateMode.onUserInteraction, + child: Column( + mainAxisSize: MainAxisSize.max, + children: [ + _buildPasswordField( + context, + controller: _model.passwordRegisterFormTextController, + focusNode: _model.passwordRegisterFormFocusNode, + visibility: _model.passwordRegisterFormVisibility, + onVisibilityToggle: () => setState(() => _model.passwordRegisterFormVisibility = !_model.passwordRegisterFormVisibility), + ), + _buildPasswordField( + context, + controller: _model.passwordConfirmFormTextController, + focusNode: _model.passwordConfirmFormFocusNode, + visibility: _model.passwordConfirmFormVisibility, + onVisibilityToggle: () => setState(() => _model.passwordConfirmFormVisibility = !_model.passwordConfirmFormVisibility), + ), + ], + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 16.0), + child: FFButtonWidget( + key: const ValueKey('SubmitButtonWidget'), + onPressed: _model.isFormInvalid() ? null : () async { + await AuthenticationService.changePassword(context, widget.email, _model.passwordRegisterFormTextController!.text, widget.token); + setState(() {}); + }, + text: FFLocalizations.of(context).getVariableText( + ptText: 'Enviar', + enText: 'Submit', + ), + options: FFButtonOptions( + width: double.infinity, + height: 44.0, + color: FlutterFlowTheme.of(context).accent1, + textStyle: FlutterFlowTheme.of(context).titleSmall.override( + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).secondaryText, + fontSize: 16.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans')), + elevation: 3.0, + borderSide: const BorderSide(color: Colors.transparent, width: 1.0), + borderRadius: BorderRadius.circular(12.0), + disabledColor: FlutterFlowTheme.of(context).customColor5, + disabledTextColor: Colors.white, + ), + showLoadingIndicator: true, + ), + ), + ], + ), + ), + ).animateOnPageLoad(animationsMap['containerOnPageLoadAnimation']!), + ), + ), + ], + ), + ), + ), + ), + ), + ], + ); + } + + + Widget _buildPasswordField(BuildContext context, {required TextEditingController? controller, required FocusNode? focusNode, required bool visibility, required VoidCallback onVisibilityToggle}){ + return Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 16.0), + child: SizedBox( + width: double.infinity, + child: TextFormField( + key: const ValueKey('passwordTextFormField'), + controller: controller, + focusNode: focusNode, + onChanged: (_) => EasyDebounce.debounce( + '_model.passwordRegisterFormTextController', + const Duration(milliseconds: 500), + () => setState(() {}), + ), + autofocus: false, + autofillHints: const [AutofillHints.password], + obscureText: !visibility, + decoration: InputDecoration( + isDense: true, + labelText: FFLocalizations.of(context).getText('0firji8'), + labelStyle: FlutterFlowTheme.of(context).labelLarge.override( + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 16.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: FlutterFlowTheme.of(context).customColor1, width: 0.25), + borderRadius: BorderRadius.circular(12.0), + ), + focusedBorder: OutlineInputBorder( + borderSide: const BorderSide(color: Color(0xFF1AAB5F), width: 0.25), + borderRadius: BorderRadius.circular(12.0), + ), + errorBorder: OutlineInputBorder( + borderSide: const BorderSide(color: Color(0xFFFF5963), width: 0.25), + borderRadius: BorderRadius.circular(12.0), + ), + focusedErrorBorder: OutlineInputBorder( + borderSide: const BorderSide(color: Color(0xFFFF5963), width: 0.25), + borderRadius: BorderRadius.circular(12.0), + ), + filled: true, + fillColor: FlutterFlowTheme.of(context).primaryBackground, + suffixIcon: InkWell( + key: const ValueKey('passwordVisibilitySuffixIcon'), + onTap: onVisibilityToggle, + focusNode: FocusNode(skipTraversal: true), + child: Icon( + visibility ? Icons.visibility_outlined : Icons.visibility_off_outlined, + color: FlutterFlowTheme.of(context).accent1, + size: 24.0, + ), + ), + ), + style: FlutterFlowTheme.of(context).bodyLarge.override( + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 16.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), + ), + validator: _model.passwordRegisterFormTextControllerValidator.asValidator(context), + ), + ), + ); + } + +} \ No newline at end of file diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index a045dfff..b144b185 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -1,4 +1,3 @@ -import 'dart:developer'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; @@ -11,8 +10,6 @@ import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/pages/home_page/home_page_model.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/widgets/drawer_widget/drawer_widget.dart'; diff --git a/lib/pages/liberation_history/liberation_history_model.dart b/lib/pages/liberation_history/liberation_history_model.dart index bc339f98..46d4fac5 100644 --- a/lib/pages/liberation_history/liberation_history_model.dart +++ b/lib/pages/liberation_history/liberation_history_model.dart @@ -1,10 +1,8 @@ +import 'package:flutter/material.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/request_manager.dart'; - -import 'package:flutter/material.dart'; import 'package:hub/pages/liberation_history/liberation_history_widget.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; class LiberationHistoryModel extends FlutterFlowModel { diff --git a/lib/pages/liberation_history/liberation_history_widget.dart b/lib/pages/liberation_history/liberation_history_widget.dart index 953a102f..6b15532f 100644 --- a/lib/pages/liberation_history/liberation_history_widget.dart +++ b/lib/pages/liberation_history/liberation_history_widget.dart @@ -1,4 +1,3 @@ -import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; @@ -14,7 +13,6 @@ import 'package:hub/pages/liberation_history/liberation_history_model.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 'package:provider/provider.dart'; class LiberationHistoryWidget extends StatefulWidget { const LiberationHistoryWidget({super.key}); diff --git a/lib/pages/message_history_page/message_history_page_model.dart b/lib/pages/message_history_page/message_history_page_model.dart index 66f17cc2..21471970 100644 --- a/lib/pages/message_history_page/message_history_page_model.dart +++ b/lib/pages/message_history_page/message_history_page_model.dart @@ -1,10 +1,8 @@ +import 'package:flutter/material.dart'; import 'package:hub/backend/api_requests/api_manager.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/request_manager.dart'; - -import 'package:flutter/material.dart'; import 'package:hub/pages/message_history_page/message_history_page_widget.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; class MessageHistoryPageModel diff --git a/lib/pages/message_history_page/message_history_page_widget.dart b/lib/pages/message_history_page/message_history_page_widget.dart index 8a149975..e7c83d82 100644 --- a/lib/pages/message_history_page/message_history_page_widget.dart +++ b/lib/pages/message_history_page/message_history_page_widget.dart @@ -8,7 +8,6 @@ import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/message_history_page/message_history_page_model.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/log_util.dart'; -import 'package:provider/provider.dart'; class MessageHistoryPageWidget extends StatefulWidget { const MessageHistoryPageWidget({super.key}); diff --git a/lib/pages/package_order_page/package_order_page.dart b/lib/pages/package_order_page/package_order_page.dart index 527ccbeb..f184983f 100644 --- a/lib/pages/package_order_page/package_order_page.dart +++ b/lib/pages/package_order_page/package_order_page.dart @@ -9,7 +9,6 @@ import 'package:hub/components/templates_components/details_component/details_co import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; diff --git a/lib/pages/pets_page/pets_history_screen.dart b/lib/pages/pets_page/pets_history_screen.dart index 34b7a39e..a1d9cdf0 100644 --- a/lib/pages/pets_page/pets_history_screen.dart +++ b/lib/pages/pets_page/pets_history_screen.dart @@ -3,14 +3,10 @@ import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/components/templates_components/card_item_template_component/card_item_template_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/pages/liberation_history/liberation_history_model.dart'; import 'package:hub/pages/pets_page/pets_page_model.dart'; -import 'package:hub/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; -import 'package:hub/shared/utils/validator_util.dart'; class PetsHistoryScreen extends StatefulWidget { const PetsHistoryScreen({super.key, required this.model}); diff --git a/lib/pages/pets_page/pets_page_model.dart b/lib/pages/pets_page/pets_page_model.dart index 9606c4ff..958c5f09 100644 --- a/lib/pages/pets_page/pets_page_model.dart +++ b/lib/pages/pets_page/pets_page_model.dart @@ -1,10 +1,10 @@ import 'dart:convert'; import 'dart:developer'; + import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/backend/api_requests/api_manager.dart'; import 'package:hub/components/templates_components/details_component/details_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; @@ -12,10 +12,8 @@ import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/form_field_controller.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/pets_page/pets_page_widget.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/image_util.dart'; -import 'package:hub/shared/utils/log_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/validator_util.dart'; diff --git a/lib/pages/pets_page/pets_page_widget.dart b/lib/pages/pets_page/pets_page_widget.dart index abaefcdf..c965d7ef 100644 --- a/lib/pages/pets_page/pets_page_widget.dart +++ b/lib/pages/pets_page/pets_page_widget.dart @@ -1,28 +1,21 @@ -import 'dart:convert'; import 'package:flutter/material.dart'; - import 'package:google_fonts/google_fonts.dart'; -import 'package:http/http.dart'; - import 'package:hub/components/atomic_components/shared_components_atoms/appbar.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/custom_input.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/custom_select.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/media_upload_button.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/submit_button.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/tabview.dart'; - import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/form_field_controller.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/pets_page/pets_history_screen.dart'; import 'package:hub/pages/pets_page/pets_page_model.dart'; - -import 'package:hub/shared/utils/image_util.dart'; -import 'package:hub/shared/utils/validator_util.dart'; import 'package:material_symbols_icons/symbols.dart'; +// ignore: must_be_immutable class PetsPageWidget extends StatefulWidget { dynamic pet; diff --git a/lib/pages/preferences_settings_page/preferences_settings_model.dart b/lib/pages/preferences_settings_page/preferences_settings_model.dart index 77563d07..49ea5212 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_model.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_model.dart @@ -1,15 +1,17 @@ -import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/components/templates_components/change_passs_qr_code_pass_key_template_component/change_pass_widget.dart'; -import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/shared/helpers/secure_storage_helper.dart'; import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; +import 'package:hub/shared/services/authentication/authentication_service.dart'; +import 'package:hub/shared/services/localization/localization_service.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:share_plus/share_plus.dart'; +import '../../shared/utils/snackbar_util.dart'; + class PreferencesPageModel with ChangeNotifier { final unfocusNode = FocusNode(); bool fingerprint = false; @@ -50,7 +52,7 @@ class PreferencesPageModel with ChangeNotifier { ptText: 'Notificação alterada com sucesso', ); context.pop(); - _showSnackBar(context, content); + SnackBarUtil.showSnackBar(context, content); notify = await _toggleBoolInDb('notify'); notifyListeners(); } catch (err) { @@ -59,7 +61,7 @@ class PreferencesPageModel with ChangeNotifier { ptText: 'Erro ao alterar notificação', ); context.pop(); - _showSnackBar(context, content, isError: true); + SnackBarUtil.showSnackBar(context, content, isError: true); } } @@ -82,20 +84,20 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Access pass changed successfully', ptText: 'Senha de acesso alterada com sucesso', ); - _showSnackBar(context, content); + SnackBarUtil.showSnackBar(context, content); } else { content = FFLocalizations.of(context).getVariableText( ptText: 'Erro ao alterar senha de acesso', enText: 'Error changing access pass', ); - _showSnackBar(context, content, isError: true); + SnackBarUtil.showSnackBar(context, content, isError: true); } }).catchError((e, s) { final String content = FFLocalizations.of(context).getVariableText( ptText: 'Erro ao alterar senha de acesso', enText: 'Error changing access pass', ); - _showSnackBar(context, content, isError: true); + SnackBarUtil.showSnackBar(context, content, isError: true); }).whenComplete(() => notifyListeners()); } @@ -118,20 +120,20 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Panic password changed successfully', ptText: 'Senha de pânico alterada com sucesso', ); - _showSnackBar(context, content); + SnackBarUtil.showSnackBar(context, content); } else { content = FFLocalizations.of(context).getVariableText( ptText: 'Erro ao alterar senha de pânico', enText: 'Error changing panic password', ); - _showSnackBar(context, content, isError: true); + SnackBarUtil.showSnackBar(context, content, isError: true); } }).catchError((e, s) { final String content = FFLocalizations.of(context).getVariableText( ptText: 'Erro ao alterar senha de pânico', enText: 'Error changing panic password', ); - _showSnackBar(context, content, isError: true); + SnackBarUtil.showSnackBar(context, content, isError: true); }).whenComplete(() => notifyListeners()); } @@ -151,7 +153,7 @@ class PreferencesPageModel with ChangeNotifier { fingerprint = await _toggleBoolInDb('fingerprint'); notifyListeners(); - _showSnackBar(context, content); + SnackBarUtil.showSnackBar(context, content); } fingerprint ? onChange(null) : _showPassKey(context, onChange); @@ -196,7 +198,7 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Error deleting account', ptText: 'Erro ao deletar conta', ); - _showSnackBar(context, content); + SnackBarUtil.showSnackBar(context, content); }); notifyListeners(); } catch (err) { @@ -205,7 +207,7 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Error deleting account', ptText: 'Erro ao deletar conta', ); - _showSnackBar(context, content, isError: true); + SnackBarUtil.showSnackBar(context, content, isError: true); } } @@ -221,20 +223,7 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Are you sure you want to logout?', ptText: 'Tem certeza que deseja sair?', ); - onConfirm() async { - StorageUtil.purge(); - - context.go( - '/welcomePage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - } + onConfirm() async => AuthenticationService.deleteAccount(context); showAlertDialog(context, title, content, onConfirm); } @@ -248,57 +237,12 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Are you sure you want to unlink your device?', ptText: 'Tem certeza que deseja desvincular seu dispositivo?', ); - onConfirm() async { - String content; - try { - content = FFLocalizations.of(context).getVariableText( - enText: 'Device unlinked successfully', - ptText: 'Dispositivo desvinculado com sucesso', - ); - - await PhpGroup.resopndeVinculo.call(tarefa: 'I').then((value) { - if (value.jsonBody['error'] == false) { - StorageUtil().cliName = ''; - StorageUtil().cliUUID = ''; - // StorageUtil().ownerUUID = ''; - - context.pop(); - - context.go( - '/homePage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - - _showSnackBar(context, content); - } - }).catchError((err, stack) { - context.pop(); - content = FFLocalizations.of(context).getVariableText( - enText: 'Error unlinking device', - ptText: 'Erro ao desvincular dispositivo', - ); - _showSnackBar(context, content, isError: true); - }); - } catch (err, stack) { - context.pop(); - log(err.toString(), stackTrace: stack); - content = FFLocalizations.of(context).getVariableText( - enText: 'Error unlinking device', - ptText: 'Erro ao desvincular dispositivo', - ); - _showSnackBar(context, content, isError: true); - } - } + onConfirm() async => LocalizationService.unlinkLocal(context); showAlertDialog(context, title, content, onConfirm); } + Future initVariables() async { fingerprint = await _getBoolFromDb('fingerprint'); person = await _getBoolFromDb('person'); @@ -321,38 +265,11 @@ class PreferencesPageModel with ChangeNotifier { return newValue; } - void _showAlertDialog(BuildContext context, String title, String content, - Function() onConfirm) { - showAlertDialog( - context, - 'Delete account', - 'Are you sure you want to delete your account?', - onConfirm(), - ); - } - void _showSnackBar(BuildContext context, String text, - {bool isError = false}) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text( - text, - style: TextStyle(color: FlutterFlowTheme.of(context).info), - ), - backgroundColor: isError - ? FlutterFlowTheme.of(context).error - : FlutterFlowTheme.of(context).success, - duration: const Duration(seconds: 3), - behavior: SnackBarBehavior.floating, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(30), - ), - ), - ); - } - void _showPassKey( - BuildContext context, void Function(String) onChange) async { + + + void _showPassKey(BuildContext context, void Function(String) onChange) async { await showModalBottomSheet( isScrollControlled: true, backgroundColor: Colors.transparent, @@ -373,7 +290,8 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Error changing key', ptText: 'Erro ao alterar senha', ); - _showSnackBar(context, content, isError: true); + SnackBarUtil.showSnackBar(context, content, isError: true); }).whenComplete(() => notifyListeners()); } + } diff --git a/lib/pages/preferences_settings_page/preferences_settings_widget.dart b/lib/pages/preferences_settings_page/preferences_settings_widget.dart index ebd23d55..761b9e45 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_widget.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_widget.dart @@ -3,10 +3,8 @@ import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/preferences_settings_page/preferences_settings_model.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:provider/provider.dart'; diff --git a/lib/pages/qr_code_page/qr_code_page_model.dart b/lib/pages/qr_code_page/qr_code_page_model.dart index 8edbff92..a69c39eb 100644 --- a/lib/pages/qr_code_page/qr_code_page_model.dart +++ b/lib/pages/qr_code_page/qr_code_page_model.dart @@ -1,9 +1,9 @@ import 'dart:async'; import 'dart:typed_data'; + import 'package:flutter/material.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/pages/qr_code_page/qr_code_page_widget.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:qr_flutter/qr_flutter.dart'; diff --git a/lib/pages/qr_code_page/qr_code_page_widget.dart b/lib/pages/qr_code_page/qr_code_page_widget.dart index f5ac5a24..32ae343c 100644 --- a/lib/pages/qr_code_page/qr_code_page_widget.dart +++ b/lib/pages/qr_code_page/qr_code_page_widget.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'package:barcode_widget/barcode_widget.dart'; -// import 'package:barcode_widget/barcode_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_animate/flutter_animate.dart'; @@ -15,12 +14,10 @@ import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/qr_code_page/qr_code_page_model.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; + import 'package:hub/shared/utils/biometric_util.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:percent_indicator/circular_percent_indicator.dart'; -// import 'package:percent_indicator/percent_indicator.dart'; import 'package:qr_flutter/qr_flutter.dart'; diff --git a/lib/pages/reception_page/reception_page_widget.dart b/lib/pages/reception_page/reception_page_widget.dart index 3d0a2700..5ab81e6d 100644 --- a/lib/pages/reception_page/reception_page_widget.dart +++ b/lib/pages/reception_page/reception_page_widget.dart @@ -1,19 +1,17 @@ import 'dart:developer'; import 'package:awesome_notifications/awesome_notifications.dart'; -import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/backend/notifications/firebase_messaging_service.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/atom_image_svg_theme.dart'; -import 'package:hub/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/reception_page/reception_page_model.dart'; -import 'package:hub/shared/utils/dialog_util.dart'; +import 'package:hub/shared/services/localization/localization_service.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:provider/provider.dart'; @@ -36,8 +34,7 @@ class _ReceptionPageWidgetState extends State }(); FirebaseMessagingService().updateDeviceToken(); - - processLocals(); + LocalizationService.checkLocals(context); } @override @@ -47,42 +44,16 @@ class _ReceptionPageWidgetState extends State super.dispose(); } - Future processLocals() async { - try { - final GetLocalsCall callback = PhpGroup.getLocalsCall; - var response = await callback.call(); - if (response.jsonBody['error'] == false) { - final List locals = response.jsonBody['locais'] ?? []; - final bool isEmpty = locals.isEmpty; - final bool isActive = locals - .where((local) => local['CLU_STATUS'] != 'B') - .toList() - .isNotEmpty; - final bool isEnable = !isEmpty && isActive; - if (isEnable) { - StorageUtil().haveLocal = true; - StorageUtil().isLogged = true; - await WidgetsBinding.instance.endOfFrame; - // dispose(); - StorageUtil().cliUUID = ''; - StorageUtil().ownerUUID = ''; - StorageUtil().context?.go('/homePage'); - } - } - } catch (e, s) { - log(e.toString(), stackTrace: s); - } - } @override void didChangeAppLifecycleState(AppLifecycleState state) { log('() => state: $state'); if (state == AppLifecycleState.resumed) { setState(() { - processLocals(); + LocalizationService.checkLocals(context); }); } } diff --git a/lib/pages/reservation_page/reservation_page_widget.dart b/lib/pages/reservation_page/reservation_page_widget.dart index aca8a20d..5c430325 100644 --- a/lib/pages/reservation_page/reservation_page_widget.dart +++ b/lib/pages/reservation_page/reservation_page_widget.dart @@ -3,14 +3,10 @@ import 'dart:io' show Platform; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; -import 'package:hub/app_state.dart'; import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/shared/helpers/secure_storage_helper.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/webview_util.dart'; -import 'package:sqflite/sqflite.dart'; import 'package:url_launcher/url_launcher_string.dart'; import 'package:webview_flutter/webview_flutter.dart'; @@ -22,7 +18,6 @@ class ReservationPageWidget extends StatefulWidget { } class _ReservationPageWidgetState extends State { - late InAppWebViewController _controllerIOS; late WebViewController _controllerAll; Future> initVariables() async { @@ -79,7 +74,6 @@ class _ReservationPageWidgetState extends State { javaScriptEnabled: true, ), onWebViewCreated: (controller) async { - _controllerIOS = controller; }, onLoadStop: (controller, url) async { await controller.evaluateJavascript( diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart index 7ecc9943..01789f5c 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart @@ -1,9 +1,7 @@ -import 'dart:developer'; import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/scheduler.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:google_fonts/google_fonts.dart'; @@ -23,7 +21,6 @@ import 'package:hub/pages/schedule_complete_visit_page/schedule_complete_visit_p import 'package:hub/pages/schedule_complete_visit_page/visit_history_page_widget.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/share_util.dart'; -import 'package:provider/provider.dart'; class ScheduleComplete extends StatefulWidget { const ScheduleComplete({super.key}); @@ -1501,17 +1498,16 @@ Widget scheduleVisit(BuildContext context, ScheduleCompleteVisitPageModel model, devDesc: model.textController3.text, idVisitante: model.visitorStrList, dtInicio: model - .convertDateFormat(model.textController1.text ?? ''), + .convertDateFormat(model.textController1.text), dtFim: model - .convertDateFormat(model.textController2.text ?? ''), + .convertDateFormat(model.textController2.text), unica: model.switchValue == true ? 'Sim' : 'Não', idMotivo: extractIdToStr(model.dropDownValue1!), idNAC: extractIdToStr(model.dropDownValue2!), obs: model.textController3.text, ) - .catchError((e) async { - await DialogUtil.errorDefault(context); - }).then((value) async { + .catchError((e) async => await DialogUtil.errorDefault(context)) + .then((value) async { if (PhpGroup.postScheduleVisitCall.error( (value.jsonBody ?? ''), ) == @@ -1604,7 +1600,7 @@ Widget scheduleVisit(BuildContext context, ScheduleCompleteVisitPageModel model, labelsHashMap: { 'Nome': model.visitorJsonList[0]['VTE_NOME'], 'Start': model.textController1.text, - 'End': model.textController2.text ?? '', + 'End': model.textController2.text, 'Reason': (RegExp(r'MOT_DESCRICAO:\s*([^,]+)') .firstMatch( model.dropDownValue1.toString()) diff --git a/lib/pages/schedule_complete_visit_page/visit_history_page_widget.dart b/lib/pages/schedule_complete_visit_page/visit_history_page_widget.dart index c90bd2f3..8dd2f534 100644 --- a/lib/pages/schedule_complete_visit_page/visit_history_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/visit_history_page_widget.dart @@ -5,7 +5,6 @@ import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart'; import 'package:hub/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart'; -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/mixins/status_mixin.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/log_util.dart'; diff --git a/lib/pages/sign_in_page/sign_in_page_widget.dart b/lib/pages/sign_in_page/sign_in_page_widget.dart index ecb7180d..a826572e 100644 --- a/lib/pages/sign_in_page/sign_in_page_widget.dart +++ b/lib/pages/sign_in_page/sign_in_page_widget.dart @@ -1,5 +1,6 @@ import 'package:hub/shared/mixins/switcher_mixin.dart'; +import '../../shared/utils/storage_util.dart'; import '/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; @@ -34,6 +35,7 @@ class _SignInPageWidgetState extends State { @override Widget build(BuildContext context) { + StorageUtil().context = context; return GestureDetector( onTap: () => _model.unfocusNode.canRequestFocus ? FocusScope.of(context).requestFocus(_model.unfocusNode) diff --git a/lib/pages/sign_up_page/sign_up_page_widget.dart b/lib/pages/sign_up_page/sign_up_page_widget.dart index 7402c828..bb786c31 100644 --- a/lib/pages/sign_up_page/sign_up_page_widget.dart +++ b/lib/pages/sign_up_page/sign_up_page_widget.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:hub/shared/mixins/switcher_mixin.dart'; +import '../../shared/utils/storage_util.dart'; import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; @@ -35,6 +36,7 @@ class _SignUpPageWidgetState extends State { @override Widget build(BuildContext context) { + StorageUtil().context = context; return GestureDetector( onTap: () => _model.unfocusNode.canRequestFocus ? FocusScope.of(context).requestFocus(_model.unfocusNode) diff --git a/lib/pages/welcome_page/welcome_page_widget.dart b/lib/pages/welcome_page/welcome_page_widget.dart index 8a4be699..544ef3a7 100644 --- a/lib/pages/welcome_page/welcome_page_widget.dart +++ b/lib/pages/welcome_page/welcome_page_widget.dart @@ -1,13 +1,17 @@ -import 'package:hub/shared/helpers/secure_storage_helper.dart'; +import 'dart:async'; +import 'dart:developer'; + +import 'package:app_links/app_links.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; import 'package:hub/shared/mixins/switcher_mixin.dart'; import 'package:hub/shared/utils/storage_util.dart'; import '/components/templates_components/welcome_template_component/welcome_template_component_widget.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/scheduler.dart'; import 'welcome_page_model.dart'; + export 'welcome_page_model.dart'; class WelcomePageWidget extends StatefulWidget with Switcher { @@ -22,8 +26,7 @@ class _WelcomePageWidgetState extends State { final scaffoldKey = GlobalKey(); - @override - void initState() { + @override void initState() { super.initState(); _model = createModel(context, () => WelcomePageModel()); @@ -42,15 +45,17 @@ class _WelcomePageWidgetState extends State { }); } - @override - void dispose() { + @override void dispose() { _model.dispose(); super.dispose(); } + + @override Widget build(BuildContext context) { + StorageUtil().context = context; return GestureDetector( onTap: () => _model.unfocusNode.canRequestFocus ? FocusScope.of(context).requestFocus(_model.unfocusNode) diff --git a/lib/shared/extensions/context_entensions.dart b/lib/shared/extensions/context_entensions.dart deleted file mode 100644 index 3a877a1c..00000000 --- a/lib/shared/extensions/context_entensions.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:hub/shared/utils/storage_util.dart'; - -export 'context_entensions.dart' show ContextExtensions; - -extension ContextExtensions on BuildContext { - void setStateStatic(VoidCallback callback) { - final element = findAncestorStateOfType>(); - element?.setState(callback); - } -} diff --git a/lib/shared/helpers/secure_storage_helper.dart b/lib/shared/helpers/secure_storage_helper.dart index 5992d1b7..9f87fae0 100644 --- a/lib/shared/helpers/secure_storage_helper.dart +++ b/lib/shared/helpers/secure_storage_helper.dart @@ -108,6 +108,7 @@ class SecureStorageHelper extends ChangeNotifier implements Storage { Future purge() async { log('SecureStorageHelper -> Purging secure storage'); await _secureStorage.deleteAll(); + CacheUtil.instance.clear(); } } diff --git a/lib/shared/services/authentication/authentication_service.dart b/lib/shared/services/authentication/authentication_service.dart new file mode 100644 index 00000000..565d2bbd --- /dev/null +++ b/lib/shared/services/authentication/authentication_service.dart @@ -0,0 +1,197 @@ + + +import 'package:flutter/material.dart'; +import 'package:hub/flutter_flow/nav/nav.dart'; + +import '../../../backend/api_requests/api_calls.dart'; +import '../../../flutter_flow/flutter_flow_util.dart'; +import '../../../flutter_flow/random_data_util.dart'; +import '../../utils/device_util.dart'; +import '../../utils/dialog_util.dart'; +import '../../utils/log_util.dart'; +import '../../utils/storage_util.dart'; + +class AuthenticationService { + + + + static Future login(BuildContext context) async { + final GetLocalsCall callback = PhpGroup.getLocalsCall; + + final response = await callback.call(); + + if (response.jsonBody['error']) { + DialogUtil.errorDefault(context); + return; + } + List locals = response.jsonBody['locais'] ?? []; + + if (locals.isEmpty) { + StorageUtil().haveLocal = false; + context.go('/receptionPage'); + } else { + StorageUtil().haveLocal = true; + context.go('/homePage'); + } + StorageUtil().isLogged = true; + + } + + static Future signIn(BuildContext context, FlutterFlowModel model, {String? emailAdress, String? password,}) async { + try { + final ApiCallResponse? response; + final LoginCall callback = PhpGroup.loginCall; + StorageUtil().deviceDescription = randomString( + 10, + 10, + true, + false, + false, + ); + + final String? devUUID; + final String userUUID; + final String status; + final String userDevUUID; + final String userName; + final String email; + final String passwd; + + email = emailAdress!; + passwd = password!; + devUUID = await DeviceUtil.getDevUUID(); + + if ((email != '') && (passwd != '')) { + StorageUtil().email = email; + StorageUtil().passwd = passwd; + StorageUtil().devUUID = devUUID!; + response = await callback.call(); + + if (response.jsonBody['error'] == false) { + userUUID = response.jsonBody['uid']; + status = response.jsonBody['user']['status']; + userDevUUID = response.jsonBody['user']['dev_id']; + userName = response.jsonBody['user']['name']; + + StorageUtil().userUUID = userUUID; + StorageUtil().userDevUUID = userDevUUID; + StorageUtil().status = status; + StorageUtil().userName = userName; + + await login(context); + } else { + if (response.jsonBody['error'] == null) { + DialogUtil.errorDefault(context); + } else { + DialogUtil.error( + context, response.jsonBody['error_msg'].toString()); + } + } + } + + return; + } catch (e, s) { + DialogUtil.errorDefault(context); + LogUtil.requestAPIFailed( + 'login.php', emailAdress.toString(), "Login", e, s); + } + } + + static Future signUp(BuildContext context, {required String? name, String? passwd, required String? email, String? device,}) async { + try { + ApiCallResponse? response; + if ((email != null && email != '') && (passwd != null && passwd != '' && passwd.length > 7) && (name != null && name != '')) { + response = await PhpGroup.registerCall.call( + name: name, + password: passwd, + email: email, + token: randomString(36, 36, false, false, true), + uuid: randomString(36, 36, false, false, true), + tipo: device!, + descricao: randomString(36, 36, true, false, false), + ); + + if (response.jsonBody['error'] == false) return true; + DialogUtil.error(context, response.jsonBody['error_msg']); + return false; + } else { + DialogUtil.errorDefault(context); + return false; + } + } catch (e, s) { + DialogUtil.errorDefault(context); + LogUtil.requestAPIFailed('registro.php', email.toString(), "Register", e, s); + return false; + } + } + + static Future signOut(BuildContext context) async { + await PhpGroup.unregisterDevice.call(); + await StorageUtil.purge(); + context.go( + '/welcomePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + static Future forgotPassword(BuildContext context, String email) async { + try { + final ApiCallResponse? response; + final ForgotPasswordCall callback = PhpGroup.forgotPasswordCall; + final String message = FFLocalizations.of(context).getVariableText( + enText: "Send E-mail Successful!", + ptText: "E-mail Enviado com Sucesso!"); + + response = await callback.call(email: email); + + if (response.jsonBody['error'] == false) { + DialogUtil.success(context, message); + } else { + DialogUtil.error(context, response.jsonBody['error_msg']); + } + } catch (e, s) { + DialogUtil.errorDefault(context); + LogUtil.requestAPIFailed( + 'forgotPassword.php', email, "Forgot Password", e, s); + } + } + + static Future changePassword(BuildContext context, String email, String password, String token) async { + final ApiCallResponse response = await PhpGroup.changePasswordCall.call(email: email, psswd: password, token: token); + + if (response.jsonBody['error'] == false) { + final String message = FFLocalizations.of(context).getVariableText( + enText: "Password changed successfully!", + ptText: "Senha alterada com sucesso!", + ); + DialogUtil.success(context, message); + context.go('/homePage'); + } else { + final String message = response.jsonBody['error_msg']; + DialogUtil.error(context, message); + } + + + } + + static Future deleteAccount(BuildContext context) async { + StorageUtil.purge(); + context.go( + '/welcomePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + +} \ No newline at end of file diff --git a/lib/shared/services/localization/localization_service.dart b/lib/shared/services/localization/localization_service.dart new file mode 100644 index 00000000..fdb9523e --- /dev/null +++ b/lib/shared/services/localization/localization_service.dart @@ -0,0 +1,243 @@ + +import 'dart:developer'; + +import 'package:flutter/material.dart'; +import 'package:hub/flutter_flow/nav/nav.dart'; +import 'package:hub/shared/utils/dialog_util.dart'; +import 'package:hub/shared/utils/storage_util.dart'; + +import '../../../backend/api_requests/api_calls.dart'; +import '../../../components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; +import '../../../flutter_flow/flutter_flow_util.dart'; +import '../../utils/log_util.dart'; +import '../../utils/snackbar_util.dart'; + +class LocalizationService { + + + + + static Future checkLocals(BuildContext context) async { + try { + final GetLocalsCall callback = PhpGroup.getLocalsCall; + + var response = await callback.call(); + + if (response.jsonBody['error'] == false) { + final List locals = response.jsonBody['locais'] ?? []; + final bool isEmpty = locals.isEmpty; + final bool isActive = locals + .where((local) => local['CLU_STATUS'] != 'B') + .toList() + .isNotEmpty; + final bool isEnable = !isEmpty && isActive; + + if (isEnable) { + StorageUtil().haveLocal = true; + StorageUtil().isLogged = true; + await WidgetsBinding.instance.endOfFrame; + StorageUtil().cliUUID = ''; + StorageUtil().ownerUUID = ''; + StorageUtil().context?.go('/homePage'); + } + } + } catch (e, s) { + log(e.toString(), stackTrace: s); + } + } + + static Future processLocals(BuildContext context) async{ + try { + final GetLocalsCall callback = PhpGroup.getLocalsCall; + + final ApiCallResponse response = await callback.call(); + + final List locals = response.jsonBody['locais'].toList() ?? []; + + for (var local in locals) { + final String status = local['CLU_STATUS']; + log('() => CLU_STATUS: $status'); + } + + final bool isActive = locals + .where((local) => local['CLU_STATUS'] == 'A') + .toList() + .isNotEmpty; + final bool isInactived = locals + .where((local) => local['CLI_ID'] != StorageUtil().cliUUID && local['CLU_STATUS'] == 'A').toList().isNotEmpty; + final bool isPending = locals + .where((local) => + local['CLU_STATUS'] != 'B' && local['CLU_STATUS'] != 'A') + .toList() + .isNotEmpty; + final bool isUnique = locals.length == 1; + final bool isBlocked = locals[0]['CLU_STATUS'] == 'B'; + final bool isEnabled = isUnique && isActive; + + final bool isDisabled = isUnique && isBlocked; + final bool isUnselected = StorageUtil().cliUUID.isEmpty && + StorageUtil().cliName.isEmpty & StorageUtil().ownerUUID.isEmpty; + final bool isSelected = + StorageUtil().cliUUID.isNotEmpty && StorageUtil().cliName.isNotEmpty && isInactived; + final bool isUnavailable = isPending && isUnselected && isUnique; + + + + + if (isDisabled) { + context.go('/welcomePage'); + return true; + } else if (isUnavailable) { + log('() => isUnavailable'); + try { + StorageUtil().cliUUID = locals[0]['CLI_ID']; + StorageUtil().ownerUUID = locals[0]['CLU_OWNER_ID']; + var response = await PhpGroup.resopndeVinculo.call(tarefa: 'A'); + if (response.jsonBody['error'] == true) { + StorageUtil().cliUUID = ''; + StorageUtil().cliName = ''; + StorageUtil().ownerUUID = ''; + return false; + } + if (response.jsonBody['error'] == false) return await processData(context).then( (value) => value); + } catch (e, s) { + DialogUtil.errorDefault(context); + LogUtil.requestAPIFailed( + 'responderVinculo.php', '', 'Responder Vínculo', e, s); + return false; + } + } else if (isEnabled) { + log('() => isEnabled'); + final dynamic local = locals[0]; + StorageUtil().cliName = local['CLI_NOME']; + StorageUtil().userName = local['USU_NOME']; + StorageUtil().cliUUID = local['CLI_ID']; + StorageUtil().ownerUUID = local['CLU_OWNER_ID']; + + return await processData(context); + + + } else if (isUnselected) { + log('() => isUnselected'); + return await selectLocal(context); + } else if (isSelected) { + log('() => isSelected'); + return await processData(context); + } else { + log('() => else'); + return await selectLocal(context); + } + } catch (e) { + log('() => catch: $e'); + return await selectLocal(context); + } + return false; + } + + static Future processData(BuildContext context) async { + + try { + final GetDadosCall callback = PhpGroup.getDadosCall; + + var response = await callback.call(); + + final error = response.jsonBody['error']; + + if (error == false) { + final bool whatsapp = response.jsonBody['whatsapp'] ?? false; + final bool provisional = response.jsonBody['provisional'] ?? false; + final bool pets = response.jsonBody['pet'] ?? false; + final String petAmountRegister = + response.jsonBody['petAmountRegister'].toString().isEmpty + ? '0' + : response.jsonBody['petAmountRegister'].toString(); + final String name = response.jsonBody['visitado']['VDO_NOME']; + StorageUtil().whatsapp = whatsapp; + StorageUtil().provisional = provisional; + StorageUtil().pets = pets; + StorageUtil().petAmountRegister = petAmountRegister; + StorageUtil().userName = name; + return true; + } else if (error == true) { + log('() => error: $error'); + DialogUtil.warningDefault(context).whenComplete(() => selectLocal(context)); + return false; + } + + return false; + } catch (e, s) { + log('() => error: $e', stackTrace: s); + DialogUtil.warningDefault(context).whenComplete(() => selectLocal(context)); + return false; + } + } + + static Future selectLocal(BuildContext context) async { + return await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + enableDrag: false, + isDismissible: false, + showDragHandle: false, + useSafeArea: true, + context: context, + builder: (context) => PopScope( + canPop: false, + child: Padding( + padding: MediaQuery.viewInsetsOf(context), + child: const BottomArrowLinkedLocalsComponentWidget(), + ), + ), + ).then((_) async => await processData(context)); + } + + static Future unlinkLocal(BuildContext context) async { + String content; + try { + content = FFLocalizations.of(context).getVariableText( + enText: 'Device unlinked successfully', + ptText: 'Dispositivo desvinculado com sucesso', + ); + + await PhpGroup.resopndeVinculo.call(tarefa: 'I').then((value) { + if (value.jsonBody['error'] == false) { + StorageUtil().cliName = ''; + StorageUtil().cliUUID = ''; + // StorageUtil().ownerUUID = ''; + + context.pop(); + + context.go( + '/homePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + + SnackBarUtil.showSnackBar(context, content); + } + }).catchError((err, stack) { + context.pop(); + content = FFLocalizations.of(context).getVariableText( + enText: 'Error unlinking device', + ptText: 'Erro ao desvincular dispositivo', + ); + SnackBarUtil.showSnackBar(context, content, isError: true); + }); + } catch (err, stack) { + context.pop(); + log(err.toString(), stackTrace: stack); + content = FFLocalizations.of(context).getVariableText( + enText: 'Error unlinking device', + ptText: 'Erro ao desvincular dispositivo', + ); + SnackBarUtil.showSnackBar(context, content, isError: true); + } + } + + +} \ No newline at end of file diff --git a/lib/shared/utils/device_util.dart b/lib/shared/utils/device_util.dart index 42519099..285e4fe2 100644 --- a/lib/shared/utils/device_util.dart +++ b/lib/shared/utils/device_util.dart @@ -1,11 +1,6 @@ -import '/backend/schema/structs/index.dart'; -import 'dart:developer'; -import '/backend/schema/enums/enums.dart'; -import '/flutter_flow/flutter_flow_theme.dart'; -import '/flutter_flow/flutter_flow_util.dart'; -import '/flutter_flow/custom_functions.dart'; // Imports custom functions -import 'package:flutter/material.dart'; + import 'dart:io'; + import 'package:device_info_plus/device_info_plus.dart'; class DeviceUtil { diff --git a/lib/shared/utils/image_util.dart b/lib/shared/utils/image_util.dart index fe728e0d..4c55c0dd 100644 --- a/lib/shared/utils/image_util.dart +++ b/lib/shared/utils/image_util.dart @@ -1,12 +1,11 @@ // Automatic FlutterFlow imports +import 'dart:convert'; import 'dart:io'; +import 'dart:typed_data'; import 'package:path_provider/path_provider.dart'; -import 'package:flutter/material.dart'; -import 'dart:convert'; -import 'dart:typed_data'; import '../../flutter_flow/uploaded_file.dart'; class ImageUtils { diff --git a/lib/shared/utils/share_util.dart b/lib/shared/utils/share_util.dart index 842c5102..31cc52ef 100644 --- a/lib/shared/utils/share_util.dart +++ b/lib/shared/utils/share_util.dart @@ -1,4 +1,3 @@ -import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/storage_util.dart'; import 'package:share_plus/share_plus.dart'; diff --git a/lib/shared/utils/snackbar_util.dart b/lib/shared/utils/snackbar_util.dart new file mode 100644 index 00000000..60618d7a --- /dev/null +++ b/lib/shared/utils/snackbar_util.dart @@ -0,0 +1,28 @@ +import 'package:flutter/material.dart'; + +import '../../flutter_flow/flutter_flow_theme.dart'; + +class SnackBarUtil { + + + static void showSnackBar(BuildContext context, String text, {bool isError = false}) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + text, + style: TextStyle(color: FlutterFlowTheme.of(context).info), + ), + backgroundColor: isError + ? FlutterFlowTheme.of(context).error + : FlutterFlowTheme.of(context).success, + duration: const Duration(seconds: 3), + behavior: SnackBarBehavior.floating, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + ), + ); + } + + +} \ No newline at end of file diff --git a/lib/shared/utils/storage_util.dart b/lib/shared/utils/storage_util.dart index ebe919b5..fc783391 100644 --- a/lib/shared/utils/storage_util.dart +++ b/lib/shared/utils/storage_util.dart @@ -131,6 +131,7 @@ class StorageUtil { isFirstRun = false; await _sharedPreferences.prefs?.setBool('milestone', false); _secureStorage.purge(); + _sqliteStorage.purge(); } } diff --git a/lib/shared/utils/validator_util.dart b/lib/shared/utils/validator_util.dart index 18424821..41fafcd7 100644 --- a/lib/shared/utils/validator_util.dart +++ b/lib/shared/utils/validator_util.dart @@ -1,4 +1,3 @@ -import 'dart:developer'; import 'package:intl/intl.dart'; diff --git a/pubspec.lock b/pubspec.lock index 886ddab0..2bebfb29 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,14 +1,6 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 - url: "https://pub.dev" - source: hosted - version: "72.0.0" _flutterfire_internals: dependency: transitive description: @@ -17,19 +9,38 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.37" - _macros: - dependency: transitive - description: dart - source: sdk - version: "0.3.2" - analyzer: - dependency: transitive + app_links: + dependency: "direct main" description: - name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + name: app_links + sha256: ad1a6d598e7e39b46a34f746f9a8b011ee147e4c275d407fa457e7a62f84dd99 url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.3.2" + app_links_linux: + dependency: transitive + description: + name: app_links_linux + sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81 + url: "https://pub.dev" + source: hosted + version: "1.0.3" + app_links_platform_interface: + dependency: transitive + description: + name: app_links_platform_interface + sha256: "05f5379577c513b534a29ddea68176a4d4802c46180ee8e2e966257158772a3f" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + app_links_web: + dependency: transitive + description: + name: app_links_web + sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555 + url: "https://pub.dev" + source: hosted + version: "1.0.4" app_tracking_transparency: dependency: "direct main" description: @@ -110,70 +121,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" - build: - dependency: transitive - description: - name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - build_config: - dependency: transitive - description: - name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 - url: "https://pub.dev" - source: hosted - version: "1.1.1" - build_daemon: - dependency: transitive - description: - name: build_daemon - sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - build_resolvers: - dependency: transitive - description: - name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" - url: "https://pub.dev" - source: hosted - version: "2.4.2" - build_runner: - dependency: "direct dev" - description: - name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" - url: "https://pub.dev" - source: hosted - version: "2.4.13" - build_runner_core: - dependency: transitive - description: - name: build_runner_core - sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 - url: "https://pub.dev" - source: hosted - version: "7.3.2" - built_collection: - dependency: transitive - description: - name: built_collection - sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" - url: "https://pub.dev" - source: hosted - version: "5.1.1" - built_value: - dependency: transitive - description: - name: built_value - sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb - url: "https://pub.dev" - source: hosted - version: "8.9.2" cached_network_image: dependency: "direct main" description: @@ -270,14 +217,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" - code_builder: - dependency: transitive - description: - name: code_builder - sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 - url: "https://pub.dev" - source: hosted - version: "4.10.0" collection: dependency: "direct main" description: @@ -302,14 +241,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" crop_your_image: dependency: "direct main" description: @@ -350,14 +281,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" - dart_style: - dependency: transitive - description: - name: dart_style - sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" - url: "https://pub.dev" - source: hosted - version: "2.3.7" dbus: dependency: transitive description: @@ -831,27 +754,11 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 - url: "https://pub.dev" - source: hosted - version: "4.0.0" fuchsia_remote_debug_protocol: dependency: transitive description: flutter source: sdk version: "0.0.0" - glob: - dependency: transitive - description: - name: glob - sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" - url: "https://pub.dev" - source: hosted - version: "2.1.2" go_router: dependency: "direct main" description: @@ -884,14 +791,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.11.1" - graphs: + gtk: dependency: transitive description: - name: graphs - sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + name: gtk + sha256: e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.1.0" http: dependency: "direct main" description: @@ -900,14 +807,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.1" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" http_parser: dependency: transitive description: @@ -1001,14 +900,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.19.0" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" iregexp: dependency: transitive description: @@ -1121,14 +1012,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" - macros: - dependency: transitive - description: - name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" - url: "https://pub.dev" - source: hosted - version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -1185,14 +1068,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" - mockito: - dependency: "direct dev" - description: - name: mockito - sha256: "6841eed20a7befac0ce07df8116c8b8233ed1f4486a7647c7fc5a02ae6163917" - url: "https://pub.dev" - source: hosted - version: "5.4.4" nested: dependency: transitive description: @@ -1217,14 +1092,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" page_transition: dependency: "direct main" description: @@ -1385,14 +1252,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" process: dependency: transitive description: @@ -1409,22 +1268,6 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.2" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - pubspec_parse: - dependency: transitive - description: - name: pubspec_parse - sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 - url: "https://pub.dev" - source: hosted - version: "1.3.0" qr: dependency: transitive description: @@ -1545,35 +1388,11 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.2" - shelf: - dependency: transitive - description: - name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 - url: "https://pub.dev" - source: hosted - version: "1.4.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" - url: "https://pub.dev" - source: hosted - version: "2.0.0" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" - source_gen: - dependency: transitive - description: - name: source_gen - sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" - url: "https://pub.dev" - source: hosted - version: "1.5.0" source_span: dependency: transitive description: @@ -1686,14 +1505,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.6.1" - timing: - dependency: transitive - description: - name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" - url: "https://pub.dev" - source: hosted - version: "1.0.1" typed_data: dependency: transitive description: @@ -1814,14 +1625,6 @@ packages: url: "https://pub.dev" source: hosted version: "14.2.5" - watcher: - dependency: transitive - description: - name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" - url: "https://pub.dev" - source: hosted - version: "1.1.0" web: dependency: transitive description: @@ -1830,22 +1633,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.1" - web_socket: - dependency: transitive - description: - name: web_socket - sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" - url: "https://pub.dev" - source: hosted - version: "0.1.6" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" - url: "https://pub.dev" - source: hosted - version: "3.0.1" webdriver: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index bd5d341e..1f196133 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,6 +21,7 @@ dependencies: webview_flutter: ^4.8.0 rxdart: ^0.27.7 collection: 1.18.0 + app_links: ^6.3.2 crop_your_image: 1.1.0 csv: 6.0.0 device_info_plus: 10.1.0 @@ -90,7 +91,6 @@ dependencies: # video_player_web: 2.3.1 material_symbols_icons: ^4.2784.0 fluttertoast: ^8.2.8 - cupertino_icons: ^1.0.0 flutter_bloc: ^8.1.6 flutter_riverpod: ^2.5.1 @@ -112,10 +112,10 @@ dev_dependencies: flutter_lints: 4.0.0 image: 4.2.0 lints: 4.0.0 +# build_runner: ^2.4.13 +# mockito: ^5.4.4 integration_test: sdk: flutter - build_runner: ^2.4.13 - mockito: ^5.4.4 flutter_test: sdk: flutter @@ -134,7 +134,6 @@ flutter_launcher_icons: flutter: - uses-material-design: true assets: @@ -161,4 +160,4 @@ fonts: - asset: assets/fonts/icons.ttf - family: Menu fonts: - - asset: assets/fonts/menu.ttf + - asset: assets/fonts/menu.ttf \ No newline at end of file From aff16af4a261bd646bda5ff238242bb32c18d8d7 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Tue, 8 Oct 2024 09:53:24 -0300 Subject: [PATCH 2/4] remove appVersion --- lib/backend/api_requests/api_calls.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/backend/api_requests/api_calls.dart b/lib/backend/api_requests/api_calls.dart index 64825cc9..0e86bf14 100644 --- a/lib/backend/api_requests/api_calls.dart +++ b/lib/backend/api_requests/api_calls.dart @@ -702,7 +702,7 @@ class ForgotPasswordCall { final String? email, }) async { final String baseUrl = PhpGroup.getBaseUrl(); - const String version = 'FRE-ACCESS-HUB'; + return ApiManager.instance.makeApiCall( callName: 'forgotPassword', @@ -713,7 +713,6 @@ class ForgotPasswordCall { }, params: { 'email': email, - 'appVersion': version, }, bodyType: BodyType.X_WWW_FORM_URL_ENCODED, returnBody: true, From fd85a0cfdf2b825f3bd8d15e462373ffd1f12bca Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Tue, 8 Oct 2024 13:58:02 -0300 Subject: [PATCH 3/4] fix deleteAccount --- .../preferences_settings_model.dart | 45 +---------------- .../authentication_service.dart | 49 ++++++++++++++----- 2 files changed, 40 insertions(+), 54 deletions(-) diff --git a/lib/pages/preferences_settings_page/preferences_settings_model.dart b/lib/pages/preferences_settings_page/preferences_settings_model.dart index 49ea5212..b04f9635 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_model.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_model.dart @@ -168,48 +168,7 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Are you sure you want to delete your account?', ptText: 'Tem certeza que deseja deletar sua conta?', ); - onConfirm() async { - String content; - try { - await PhpGroup.deleteAccount.call().then((value) { - if (value.jsonBody['error'] == false) { - content = FFLocalizations.of(context).getVariableText( - enText: 'Account deleted successfully', - ptText: 'Conta deletada com sucesso', - ); - - StorageUtil.purge(); - - context.pop(); - context.go( - '/welcomePage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - } - }).catchError((err) { - context.pop(); - content = FFLocalizations.of(context).getVariableText( - enText: 'Error deleting account', - ptText: 'Erro ao deletar conta', - ); - SnackBarUtil.showSnackBar(context, content); - }); - notifyListeners(); - } catch (err) { - context.pop(); - content = FFLocalizations.of(context).getVariableText( - enText: 'Error deleting account', - ptText: 'Erro ao deletar conta', - ); - SnackBarUtil.showSnackBar(context, content, isError: true); - } - } + onConfirm() async => AuthenticationService.deleteAccount(context); showAlertDialog(context, title, content, onConfirm); } @@ -223,7 +182,7 @@ class PreferencesPageModel with ChangeNotifier { enText: 'Are you sure you want to logout?', ptText: 'Tem certeza que deseja sair?', ); - onConfirm() async => AuthenticationService.deleteAccount(context); + onConfirm() async => AuthenticationService.signOut(context); showAlertDialog(context, title, content, onConfirm); } diff --git a/lib/shared/services/authentication/authentication_service.dart b/lib/shared/services/authentication/authentication_service.dart index 565d2bbd..ceb8ab31 100644 --- a/lib/shared/services/authentication/authentication_service.dart +++ b/lib/shared/services/authentication/authentication_service.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; +import 'package:hub/shared/utils/snackbar_util.dart'; import '../../../backend/api_requests/api_calls.dart'; import '../../../flutter_flow/flutter_flow_util.dart'; @@ -181,17 +182,43 @@ class AuthenticationService { } static Future deleteAccount(BuildContext context) async { - StorageUtil.purge(); - context.go( - '/welcomePage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); + String content; + try { + await PhpGroup.deleteAccount.call().then((value) { + if (value.jsonBody['error'] == false) { + content = FFLocalizations.of(context).getVariableText( + enText: 'Account deleted successfully', + ptText: 'Conta deletada com sucesso', + ); + StorageUtil.purge(); + context.pop(); + context.go( + '/welcomePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + }).catchError((err) { + context.pop(); + content = FFLocalizations.of(context).getVariableText( + enText: 'Error deleting account', + ptText: 'Erro ao deletar conta', + ); + SnackBarUtil.showSnackBar(context, content); + }); + } catch (err) { + context.pop(); + content = FFLocalizations.of(context).getVariableText( + enText: 'Error deleting account', + ptText: 'Erro ao deletar conta', + ); + SnackBarUtil.showSnackBar(context, content, isError: true); + } } } \ No newline at end of file From ea6c2226cb6de07364f5eae132e42e982b8434d2 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Tue, 8 Oct 2024 14:07:57 -0300 Subject: [PATCH 4/4] WIP: add iosController in fastpass --- .../fast_pass_page/fast_pass_page_widget.dart | 63 +++++++------------ 1 file changed, 22 insertions(+), 41 deletions(-) diff --git a/lib/pages/fast_pass_page/fast_pass_page_widget.dart b/lib/pages/fast_pass_page/fast_pass_page_widget.dart index be53a767..3f2b66fb 100644 --- a/lib/pages/fast_pass_page/fast_pass_page_widget.dart +++ b/lib/pages/fast_pass_page/fast_pass_page_widget.dart @@ -18,7 +18,8 @@ class FastPassPageWidget extends StatefulWidget { } class _FastPassPageWidgetState extends State { - late WebViewController _controllerAll; + late WebViewController _controllerAndroid; + late InAppWebViewController _controllerIOS; Future> initVariables() async { final email = StorageUtil().email; @@ -67,31 +68,19 @@ class _FastPassPageWidgetState extends State { return Platform.isIOS ? InAppWebView( initialUrlRequest: URLRequest(url: WebUri(url)), - initialSettings: InAppWebViewSettings( - allowsBackForwardNavigationGestures: true, - javaScriptEnabled: true, - ), - onWebViewCreated: (controller) async { - }, + initialSettings: InAppWebViewSettings(allowsBackForwardNavigationGestures: true, javaScriptEnabled: true,), + onWebViewCreated: (controller) async => _controllerIOS = controller, onLoadStop: (controller, url) async { - await controller.evaluateJavascript( - source: - "window.localStorage.setItem('fre-token', '\"$userUUID\"')"); - await controller.evaluateJavascript( - source: - "window.localStorage.setItem('fre-user-data', '$freUserData')"); - await controller.evaluateJavascript( - source: - "window.localStorage.setItem('enableBackButton', 'true')"); + await controller.evaluateJavascript(source: "window.localStorage.setItem('fre-token', '\"$userUUID\"')"); + await controller.evaluateJavascript(source: "window.localStorage.setItem('fre-user-data', '$freUserData')"); + await controller.evaluateJavascript(source: "window.localStorage.setItem('enableBackButton', 'true')"); }, onUpdateVisitedHistory: (controller, uri, isVisited) { - if (uri.toString().contains('/hub/home')) { - context.pop(); - } + if (uri.toString().contains('/hub/home')) context.pop(); }, ) : WebViewWidget( - controller: _controllerAll = WebViewController() + controller: _controllerAndroid = WebViewController() ..clearCache() ..clearLocalStorage() ..setJavaScriptMode(JavaScriptMode.unrestricted) @@ -100,43 +89,35 @@ class _FastPassPageWidgetState extends State { NavigationDelegate( onProgress: (int progress) {}, onPageStarted: (String url) { - final String token = - "localStorage.setItem('fre-token', '\"$userUUID\"');"; - final String data = - "localStorage.setItem('fre-user-data', '$freUserData');"; - const String backNavigation = - "localStorage.setItem('enableBackButton', 'true');"; + final String token = "localStorage.setItem('fre-token', '\"$userUUID\"');"; + final String data = "localStorage.setItem('fre-user-data', '$freUserData');"; + const String backNavigation = "localStorage.setItem('enableBackButton', 'true');"; - _controllerAll.runJavaScript(token); - _controllerAll.runJavaScript(data); - _controllerAll.runJavaScript(backNavigation); + _controllerAndroid.runJavaScript(token); + _controllerAndroid.runJavaScript(data); + _controllerAndroid.runJavaScript(backNavigation); }, onPageFinished: (String url) { bool isDarkMode = SchedulerBinding .instance .platformDispatcher - .platformBrightness == - Brightness.dark; + .platformBrightness == Brightness.dark; if (isDarkMode) { - _controllerAll.runJavaScript( - WebviewUtil.jsEnableDarkMode); + _controllerAndroid.runJavaScript(WebviewUtil.jsEnableDarkMode); } }, onNavigationRequest: (NavigationRequest request) { if (request.url.startsWith('http') || - request.url.startsWith( - 'https://api.whatsapp.com/send') || + request.url.startsWith('https://api.whatsapp.com/send') || request.url.startsWith('https://wa.me')) { - launchUrlString(request.url); - return NavigationDecision.prevent; - } + launchUrlString(request.url); + return NavigationDecision.prevent; + } return NavigationDecision.prevent; }, onUrlChange: (url) { - if (url.url.toString().contains('/hub/home')) { - context.pop(); - } + if (url.url.toString().contains('/hub/home')) context.pop(); }), ) ..loadRequest(Uri.parse(url)),