From d82617c7e15e31e3a9796d543c9583e0526cb9a3 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Tue, 24 Sep 2024 11:12:36 -0300 Subject: [PATCH] WIP --- .../qr_code_page/qr_code_page_model.dart | 9 ++---- .../qr_code_page/qr_code_page_widget.dart | 9 +++--- .../reception_page/reception_page_model.dart | 5 ++- .../reception_page/reception_page_widget.dart | 8 +++-- .../register_visitor_page_widget.dart | 1 - .../reservation_page_widget.dart | 31 ++++++++----------- .../schedule_complete_visit_page_model.dart | 12 ++----- .../schedule_complete_visit_page_widget.dart | 2 -- lib/shared/helpers/secure_storage_helper.dart | 2 +- .../shared_preferences_storage_helper.dart | 4 +++ lib/shared/utils/biometric_util.dart | 6 ++-- lib/shared/utils/storage_util.dart | 19 ++++++++---- 12 files changed, 53 insertions(+), 55 deletions(-) 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 bff5e830..af6298d5 100644 --- a/lib/pages/qr_code_page/qr_code_page_model.dart +++ b/lib/pages/qr_code_page/qr_code_page_model.dart @@ -28,12 +28,9 @@ class QrCodePageModel extends FlutterFlowModel { } Future initVariable() async { - isFingerprint = await db - .get(key: 'fingerprint', field: 'value') - .then((value) => value.toString() == 'true'); - userDevUUID = await db - .get(key: 'userDevUUID', field: 'value') - .then((value) => value.toString()); + isFingerprint = + await db.get('fingerprint').then((value) => value.toString() == 'true'); + userDevUUID = await db.get('userDevUUID').then((value) => value.toString()); } @override 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 438f6e84..7b98bf8f 100644 --- a/lib/pages/qr_code_page/qr_code_page_widget.dart +++ b/lib/pages/qr_code_page/qr_code_page_widget.dart @@ -15,7 +15,9 @@ 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:percent_indicator/circular_percent_indicator.dart'; // import 'package:percent_indicator/percent_indicator.dart'; @@ -358,9 +360,8 @@ class _QrCodePageWidgetState extends State } Future _showBiometricsAuth(BuildContext context) async { - AppState() - .checkBiometrics() - .then((value) => AppState().authenticateBiometric().then((value) { + BiometricHelper.checkBiometrics() + .then((value) => BiometricHelper.authenticateBiometric().then((value) { safeSetState(() { if (animationsMap['barcodeOnActionTriggerAnimation'] != null) { animationsMap['barcodeOnActionTriggerAnimation']! @@ -371,7 +372,7 @@ class _QrCodePageWidgetState extends State .reverse(); } _model.isAccess = !_model.isAccess; - _model.key = AppState().fingerprintPass; + _model.key = SecureStorageHelper().fingerprintPass; }); })) .onError((error, StackTrace) { diff --git a/lib/pages/reception_page/reception_page_model.dart b/lib/pages/reception_page/reception_page_model.dart index ffac852c..89343a1c 100644 --- a/lib/pages/reception_page/reception_page_model.dart +++ b/lib/pages/reception_page/reception_page_model.dart @@ -7,9 +7,8 @@ import 'package:share_plus/share_plus.dart'; class ReceptionPageModel with ChangeNotifier { Future getIdenfifier(BuildContext context) async { final SQLiteStorageHelper db = SQLiteStorageHelper(); - final String userDevUUID = await db - .get(key: 'userDevUUID', field: 'value') - .then((value) => value.toString()); + final String userDevUUID = + await db.get('userDevUUID').then((value) => value.toString()); notifyListeners(); Share.share( diff --git a/lib/pages/reception_page/reception_page_widget.dart b/lib/pages/reception_page/reception_page_widget.dart index 19eef6ed..62132754 100644 --- a/lib/pages/reception_page/reception_page_widget.dart +++ b/lib/pages/reception_page/reception_page_widget.dart @@ -8,6 +8,9 @@ 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/helpers/secure_storage_helper.dart'; +import 'package:hub/shared/helpers/sqlite_storage_helper.dart'; +import 'package:hub/shared/utils/storage_util.dart'; import 'package:provider/provider.dart'; class ReceptionPageWidget extends StatefulWidget { @@ -26,7 +29,7 @@ class _ReceptionPageWidgetState extends State { @override Widget build(BuildContext context) { - AppState().context = context; + SecureStorageHelper().context = context; return ChangeNotifierProvider( create: (context) => ReceptionPageModel(), child: Scaffold( @@ -151,7 +154,8 @@ class _ReceptionPageWidgetState extends State { child: FFButtonWidget( onPressed: () async { PhpGroup.unregisterDevice(); - AppState().deleteAll(); + + StorageManager.purge(); setState(() {}); context.go( diff --git a/lib/pages/register_visitor_page/register_visitor_page_widget.dart b/lib/pages/register_visitor_page/register_visitor_page_widget.dart index 6b9ec906..e7a84c33 100644 --- a/lib/pages/register_visitor_page/register_visitor_page_widget.dart +++ b/lib/pages/register_visitor_page/register_visitor_page_widget.dart @@ -39,7 +39,6 @@ class _RegisterVisitorPageWidgetState extends State { @override Widget build(BuildContext context) { - context.watch(); return Scaffold( appBar: AppBar( backgroundColor: FlutterFlowTheme.of(context).primaryBackground, diff --git a/lib/pages/reservation_page/reservation_page_widget.dart b/lib/pages/reservation_page/reservation_page_widget.dart index 755f4e0f..e9e87ed6 100644 --- a/lib/pages/reservation_page/reservation_page_widget.dart +++ b/lib/pages/reservation_page/reservation_page_widget.dart @@ -4,6 +4,7 @@ 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/sqlite_storage_helper.dart'; import 'package:hub/shared/utils/webview_util.dart'; @@ -22,24 +23,14 @@ class _ReservationPageWidgetState extends State { late WebViewController _controllerAll; Future> initVariables() async { - final email = await db - .get(key: 'email', field: 'value') - .then((value) => value.toString()); - final name = await db - .get(key: 'userName', field: 'value') - .then((value) => value.toString()); - final userUUID = await db - .get(key: 'userUUID', field: 'value') - .then((value) => value.toString()); - final devUUID = await db - .get(key: 'devUUID', field: 'value') - .then((value) => value.toString()); + final email = await db.get('email').then((value) => value.toString()); + final name = await db.get('userName').then((value) => value.toString()); + final userUUID = await db.get('userUUID').then((value) => value.toString()); + final devUUID = await db.get('devUUID').then((value) => value.toString()); final createdAt = await db - .get(key: 'devUUID', field: 'createdAt') - .then((value) => value.toString()); - final clientId = await db - .get(key: 'cliUUID', field: 'value') + .getByField(key: 'devUUID', field: 'createdAt') .then((value) => value.toString()); + final clientId = await db.get('cliUUID').then((value) => value.toString()); final url = 'https://hub.freaccess.com.br/hub/reservation/$clientId'; @@ -71,8 +62,12 @@ class _ReservationPageWidgetState extends State { builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return Center(child: CircularProgressIndicator()); - } else if (snapshot.hasError) { - return Center(child: Text('Error: ${snapshot.error}')); + } else if (snapshot.hasError || + snapshot.hasData == false || + snapshot.data!.isEmpty) { + return Center( + child: Text(FFLocalizations.of(context).getVariableText( + enText: 'Unexpected error', ptText: 'Erro inesperado'))); } else if (snapshot.hasData) { final data = snapshot.data!; final url = data['url']!; diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart index 0e6c97e8..50ed979b 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart @@ -184,15 +184,9 @@ class ScheduleCompleteVisitPageModel } Future _initVariables() async { - devUUID = await db - .get(key: 'devUUID', field: 'value') - .then((value) => value.toString()); - cliUUID = await db - .get(key: 'cliUUID', field: 'value') - .then((value) => value.toString()); - userUUID = await db - .get(key: 'userUUID', field: 'value') - .then((value) => value.toString()); + devUUID = await db.get('devUUID').then((value) => value.toString()); + cliUUID = await db.get('cliUUID').then((value) => value.toString()); + userUUID = await db.get('userUUID').then((value) => value.toString()); } @override 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 4d036e82..65d624ba 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 @@ -109,8 +109,6 @@ class _ScheduleCompleteVisitPageWidgetState @override Widget build(BuildContext context) { - context.watch(); - return GestureDetector( onTap: () => _model.unfocusNode.canRequestFocus ? FocusScope.of(context).requestFocus(_model.unfocusNode) diff --git a/lib/shared/helpers/secure_storage_helper.dart b/lib/shared/helpers/secure_storage_helper.dart index 629b3f4e..c46ce274 100644 --- a/lib/shared/helpers/secure_storage_helper.dart +++ b/lib/shared/helpers/secure_storage_helper.dart @@ -113,7 +113,7 @@ class SecureStorageHelper extends ChangeNotifier implements Storage { await _secureStorage.write(key: key, value: value.toString()); } - void deleteAll() { + Future purge() async { _secureStorage.deleteAll(); } diff --git a/lib/shared/helpers/shared_preferences_storage_helper.dart b/lib/shared/helpers/shared_preferences_storage_helper.dart index 901f5ad9..99cacead 100644 --- a/lib/shared/helpers/shared_preferences_storage_helper.dart +++ b/lib/shared/helpers/shared_preferences_storage_helper.dart @@ -58,4 +58,8 @@ class SharedPreferencesStorageHelper implements Storage { // Log or handle the error } } + + Future purge() async { + await _prefs.clear(); + } } diff --git a/lib/shared/utils/biometric_util.dart b/lib/shared/utils/biometric_util.dart index e9b2c7f9..5a3faeb0 100644 --- a/lib/shared/utils/biometric_util.dart +++ b/lib/shared/utils/biometric_util.dart @@ -2,9 +2,9 @@ import 'package:flutter/material.dart'; import 'package:local_auth/local_auth.dart'; class BiometricHelper { - final LocalAuthentication auth = LocalAuthentication(); + static final LocalAuthentication auth = LocalAuthentication(); - Future checkBiometrics() async { + static Future checkBiometrics() async { try { return await auth.canCheckBiometrics; } catch (e) { @@ -13,7 +13,7 @@ class BiometricHelper { } } - Future authenticateBiometric() async { + static Future authenticateBiometric() async { try { return await auth.authenticate( localizedReason: 'Scan your fingerprint to authenticate', diff --git a/lib/shared/utils/storage_util.dart b/lib/shared/utils/storage_util.dart index ec55a336..dd08b5fe 100644 --- a/lib/shared/utils/storage_util.dart +++ b/lib/shared/utils/storage_util.dart @@ -20,12 +20,12 @@ class StorageData { enum StorageType { SecureStorage, SharedPreferences, SQLite3 } class StorageManager { - final SecureStorageHelper _secureStorage = SecureStorageHelper(); - final SharedPreferencesStorageHelper _sharedPreferences = + static final SecureStorageHelper _secureStorage = SecureStorageHelper(); + static final SharedPreferencesStorageHelper _sharedPreferences = SharedPreferencesStorageHelper(); - final SQLiteStorageHelper _sqliteStorage = SQLiteStorageHelper(); + static final SQLiteStorageHelper _sqliteStorage = SQLiteStorageHelper(); - Future set(StorageData data) async { + static Future set(StorageData data) async { switch (data.type) { case StorageType.SecureStorage: CacheUtil.set(data.key, data.value); @@ -40,7 +40,7 @@ class StorageManager { } } - Future get(StorageData data) async { + static Future get(StorageData data) async { var value = CacheUtil.get(data.key); if (value == null) { switch (data.type) { @@ -59,7 +59,7 @@ class StorageManager { return value; } - Future delete(StorageData data) async { + static Future delete(StorageData data) async { switch (data.type) { case StorageType.SecureStorage: CacheUtil.delete(data.key); @@ -73,6 +73,13 @@ class StorageManager { break; } } + + static Future purge() async { + // CacheUtil.purge(); + await _secureStorage.purge(); + await _sharedPreferences.purge(); + await _sqliteStorage.purge(); + } } class StorageUtil {}