From 99a23f29755808a7c4777a9e4a0ade4e37266996 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Thu, 26 Sep 2024 13:53:50 -0300 Subject: [PATCH] WIP --- .../firebase_messaging_service.dart | 18 -- .../local_profile_component_widget.dart | 21 +- .../preferences_settings_model.dart | 2 +- lib/shared/utils/storage_util.dart | 218 +++++++++++++----- 4 files changed, 175 insertions(+), 84 deletions(-) diff --git a/lib/backend/notifications/firebase_messaging_service.dart b/lib/backend/notifications/firebase_messaging_service.dart index ff259a39..be23aad5 100644 --- a/lib/backend/notifications/firebase_messaging_service.dart +++ b/lib/backend/notifications/firebase_messaging_service.dart @@ -35,24 +35,6 @@ class FirebaseMessagingService { _firebaseMessaging.setAutoInitEnabled(false); _firebaseMessaging.pluginConstants; - - // FirebaseMessaging.onBackgroundMessage(handleMessage); - - // FirebaseMessaging.onMessage.listen((RemoteMessage message) { - // handleMessage(message); - // }); - - // FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) { - // log('A Message was opened: $message'); - // }); - - // FirebaseMessaging.instance - // .getInitialMessage() - // .then((RemoteMessage? message) { - // if (message != null) { - // log('A Message was opened: $message'); - // } - // }); } static Future getToken() async => 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 20d270b5..f5b709e7 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 @@ -68,26 +68,31 @@ class _LocalProfileComponentWidgetState // final errorMsg = response.jsonBody['error_msg']; if (error == false) { - final whatsapp = response.jsonBody['whatsapp'] ?? false; - final provisional = response.jsonBody['provisional'] ?? false; - final pets = response.jsonBody['pet'] ?? false; - final petAmountRegister = response.jsonBody['petAmountRegister'] ?? '0'; - final name = response.jsonBody['visitado']['VDO_NOME']; + 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().cliName = name; + StorageUtil().userName = name; safeSetState(() {}); return; + } else if (error == true) { + DialogUtil.warningDefault(context).whenComplete(() => processLocals()); + safeSetState(() {}); } - DialogUtil.warningDefault(context).whenComplete(() => processLocals()); - safeSetState(() {}); return; } catch (e) { + log('() => error: $e'); // Add this line to log the error DialogUtil.warningDefault(context).whenComplete(() => processLocals()); } } diff --git a/lib/pages/preferences_settings_page/preferences_settings_model.dart b/lib/pages/preferences_settings_page/preferences_settings_model.dart index 5f0254aa..b119be90 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_model.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_model.dart @@ -316,7 +316,7 @@ class PreferencesPageModel with ChangeNotifier { Future _toggleBoolInDb(String key) async { final currentValue = await _getBoolFromDb(key); final newValue = !currentValue; - await SQLiteStorageHelper().set(key, newValue.toString()); + await SQLiteStorageHelper().set(key, newValue.toString(), (v) {}); return newValue; } diff --git a/lib/shared/utils/storage_util.dart b/lib/shared/utils/storage_util.dart index e1054458..e1e6067c 100644 --- a/lib/shared/utils/storage_util.dart +++ b/lib/shared/utils/storage_util.dart @@ -35,21 +35,30 @@ class StorageUtil { final SQLiteStorageHelper _sqliteStorage = SQLiteStorageHelper(); final SecureStorageHelper _secureStorage = SecureStorageHelper(); - final SharedPreferencesStorageHelper _sharedPreferences = SharedPreferencesStorageHelper(); + final SharedPreferencesStorageHelper _sharedPreferences = + SharedPreferencesStorageHelper(); static Future set(StorageData data) async { try { + var currentValue = CacheUtil().get(data.key); + if (currentValue != null && currentValue == data.value) { + log('Value for key ${data.key} is already set to ${data.value}, skipping update.'); + return; + } + switch (data.type) { case StorageType.SecureStorage: - await SecureStorageHelper().set(data.key, data.value, (v){}); + await SecureStorageHelper().set(data.key, data.value, (v) {}); break; case StorageType.SharedPreferences: - await SharedPreferencesStorageHelper().set(data.key, data.value, (v){}); + await SharedPreferencesStorageHelper() + .set(data.key, data.value, (v) {}); break; case StorageType.SQLite3: - await SQLiteStorageHelper().set(data.key, data.value, (v){}); + await SQLiteStorageHelper().set(data.key, data.value, (v) {}); break; } + CacheUtil().set(data.key, data.value); } catch (e) { log('Error setting data: $e'); } @@ -117,7 +126,8 @@ class StorageUtil { Future initSharedPreferences() async { if (_sharedPreferences.prefs == null) { _sharedPreferences.prefs = await SharedPreferences.getInstance(); - _sharedPreferences.isFirstRun = _sharedPreferences.prefs?.getBool('first_run') ?? true; + _sharedPreferences.isFirstRun = + _sharedPreferences.prefs?.getBool('first_run') ?? true; } if (_sharedPreferences.isFirstRun) { _sharedPreferences.isFirstRun = false; @@ -158,133 +168,227 @@ class StorageUtil { bool get isFirstRun => _isFirstRun; set isFirstRun(bool value) { _isFirstRun = value; - _sharedPreferences.set('first_run', value, (v){}); + _sharedPreferences.set('first_run', value, (v) => _isFirstRun = v); } String? _deviceDescription; String get deviceDescription => _deviceDescription ?? ''; - set deviceDescription(String value) => _secureStorage.set('deviceDescription', value, (v) => _deviceDescription = v); + set deviceDescription(String value) { + _deviceDescription = value; + _secureStorage.set( + 'deviceDescription', value, (v) => _deviceDescription = v); + } BuildContext? _context; BuildContext? get context => _context; - set context(BuildContext? value) => _secureStorage.set('ff_context', value.toString(), (v) => _context = value); + set context(BuildContext? value) { + _context = value; + _secureStorage.set('ff_context', value.toString(), (v) => _context = value); + } bool? _haveLocal; bool? get haveLocal => _haveLocal; - set haveLocal(bool? value) => _secureStorage.set('ff_have_local', value ?? false, (v) => _haveLocal = value); + set haveLocal(bool? value) { + _haveLocal = value; + _secureStorage.set( + 'ff_have_local', value ?? false, (v) => _haveLocal = value); + } String? _fingerprintPass; String get fingerprintPass => _fingerprintPass ?? ''; - set fingerprintPass(String value) => _secureStorage.set('fingerprintPass', value, (v) => _fingerprintPass = v); + set fingerprintPass(String value) { + _fingerprintPass = value; + _secureStorage.set('fingerprintPass', value, (v) => _fingerprintPass = v); + } String? _accessPass; String get accessPass => _accessPass ?? ''; - set accessPass(String value) => _secureStorage.set('accessPass', value, (v) => _accessPass = v); + set accessPass(String value) { + _accessPass = value; + _secureStorage.set('accessPass', value, (v) => _accessPass = v); + } String? _panicPass; String get panicPass => _panicPass ?? ''; - set panicPass(String value) => _secureStorage.set('panicPass', value, (v) => _panicPass = v); + set panicPass(String value) { + _panicPass = value; + _secureStorage.set('panicPass', value, (v) => _panicPass = v); + } String? _tokenAPNS; String? get tokenAPNS => _tokenAPNS; - set tokenAPNS(String? value) => _secureStorage.set('ff_tokenAPNS', value ?? '', (v) => _tokenAPNS = v); + set tokenAPNS(String? value) { + _tokenAPNS = value; + _secureStorage.set('ff_tokenAPNS', value ?? '', (v) => _tokenAPNS = v); + } String? _email; String get email => _email ?? ''; - set email(String value) => _secureStorage.set('ff_email', value, (v) => _email = v); + set email(String value) { + _email = value; + _secureStorage.set('ff_email', value, (v) => _email = v); + } String? _passwd; String get passwd => _passwd ?? ''; - set passwd(String value) => _secureStorage.set('ff_passwd', value, (v) => _passwd = v); + set passwd(String value) { + _passwd = value; + _secureStorage.set('ff_passwd', value, (v) => _passwd = v); + } String? _deviceType; String get deviceType => _deviceType ?? ''; - set deviceType(String value) => _secureStorage.set('ff_deviceType', value, (v) => _deviceType = v); + set deviceType(String value) { + _deviceType = value; + _secureStorage.set('ff_deviceType', value, (v) => _deviceType = v); + } bool? _isLogged; bool get isLogged => _isLogged ?? false; - set isLogged(bool value) => _secureStorage.set('ff_isLogged', value, (v) => _isLogged = v); + set isLogged(bool value) { + _isLogged = value; + _secureStorage.set('ff_isLogged', value, (v) => _isLogged = v); + } String? _token; String get token => _token ?? ''; - set token(String value) => _secureStorage.set('ff_token', value, (v) => _token = v); + set token(String value) { + _token = value; + _secureStorage.set('ff_token', value, (v) => _token = v); + } - - final String _devUUID = ''; + String _devUUID = ''; String get devUUID => _devUUID; - set devUUID(String value) => _sqliteStorage.set('devUUID', value, (v){}); + set devUUID(String value) { + _devUUID = value; + _sqliteStorage.set('devUUID', value, (v) {}); + } - final String _userUUID = ''; + String _userUUID = ''; String get userUUID => _userUUID; - set userUUID(String value) => _sqliteStorage.set('userUUID', value, (v){}); + set userUUID(String value) { + _userUUID = value; + _sqliteStorage.set('userUUID', value, (v) {}); + } - final String _userDevUUID = ''; + String _userDevUUID = ''; String get userDevUUID => _userDevUUID; - set userDevUUID(String value) => _sqliteStorage.set('userDevUUID', value, (v){}); + set userDevUUID(String value) { + _userDevUUID = value; + _sqliteStorage.set('userDevUUID', value, (v) {}); + } - final String _status = ''; + String _status = ''; String get status => _status; - set status(String value) => _sqliteStorage.set('status', value, (v){}); + set status(String value) { + _status = value; + _sqliteStorage.set('status', value, (v) {}); + } - final String _userName = ''; + String _userName = ''; String get userName => _userName; - set userName(String value) => _sqliteStorage.set('userName', value, (v){}); + set userName(String value) { + _userName = value; + _sqliteStorage.set('userName', value, (v) {}); + } - final String _cliUUID = ''; + String _cliUUID = ''; String get cliUUID => _cliUUID; - set cliUUID(String value) => _sqliteStorage.set('cliUUID', value, (v){}); + set cliUUID(String value) { + _cliUUID = value; + _sqliteStorage.set('cliUUID', value, (v) {}); + } - final String _ownerUUID = ''; + String _ownerUUID = ''; String get ownerUUID => _ownerUUID; - set ownerUUID(String value) => _sqliteStorage.set('ownerUUID', value, (v){}); + set ownerUUID(String value) { + _ownerUUID = value; + _sqliteStorage.set('ownerUUID', value, (v) {}); + } - final String _cliName = ''; + String _cliName = ''; String get cliName => _cliName; - set cliName(String value) => _sqliteStorage.set('cliName', value, (v){}); + set cliName(String value) { + _cliName = value; + _sqliteStorage.set('cliName', value, (v) {}); + } - final String _petAmountRegister = ''; + String _petAmountRegister = ''; String get petAmountRegister => _petAmountRegister; - set petAmountRegister(String value) => _sqliteStorage.set('petAmountRegister', value, (v){}); + set petAmountRegister(String value) { + _petAmountRegister = value; + _sqliteStorage.set('petAmountRegister', value, (v) {}); + } - final bool _whatsapp = false; + bool _whatsapp = false; bool get whatsapp => _whatsapp; - set whatsapp(bool value) => _sqliteStorage.set('whatsapp', value, (v){}); + set whatsapp(bool value) { + _whatsapp = value; + _sqliteStorage.set('whatsapp', value, (v) {}); + } - final bool _provisional = false; + bool _provisional = false; bool get provisional => _provisional; - set provisional(bool value) => _sqliteStorage.set('provisional', value, (v){}); + set provisional(bool value) { + _provisional = value; + _sqliteStorage.set('provisional', value, (v) {}); + } - final bool _pets = false; + bool _pets = false; bool get pets => _pets; - set pets(bool value) => _sqliteStorage.set('pets', value, (v){}); + set pets(bool value) { + _pets = value; + _sqliteStorage.set('pets', value, (v) {}); + } - final bool _local = false; + bool _local = false; bool get local => _local; - set local(bool value) => _sqliteStorage.set('local', value, (v){}); + set local(bool value) { + _local = value; + _sqliteStorage.set('local', value, (v) {}); + } - final bool _notify = false; + bool _notify = false; bool get notify => _notify; - set notify(bool value) => _sqliteStorage.set('notify', value, (v){}); + set notify(bool value) { + _notify = value; + _sqliteStorage.set('notify', value, (v) {}); + } - final bool _fingerprint = false; + bool _fingerprint = false; bool get fingerprint => _fingerprint; - set fingerprint(bool value) => _sqliteStorage.set('fingerprint', value, (v){}); + set fingerprint(bool value) { + _fingerprint = value; + _sqliteStorage.set('fingerprint', value, (v) {}); + } - final bool _access = false; + bool _access = false; bool get access => _access; - set access(bool value) => _sqliteStorage.set('access', value, (v){}); + set access(bool value) { + _access = value; + _sqliteStorage.set('access', value, (v) {}); + } - final bool _panic = false; + bool _panic = false; bool get panic => _panic; - set panic(bool value) => _sqliteStorage.set('panic', value, (v){}); + set panic(bool value) { + _panic = value; + _sqliteStorage.set('panic', value, (v) {}); + } - final bool _person = false; + bool _person = false; bool get person => _person; - set person(bool value) => _sqliteStorage.set('person', value, (v){}); + set person(bool value) { + _person = value; + _sqliteStorage.set('person', value, (v) {}); + } - final bool _requestOSnotification = false; + bool _requestOSnotification = false; bool get requestOSnotification => _requestOSnotification; - set requestOSnotification(bool value) => _sqliteStorage.set('requestOSnotification', value, (v){}); + set requestOSnotification(bool value) { + _requestOSnotification = value; + _sqliteStorage.set('requestOSnotification', value, (v) {}); + } String get createdAt => '0000-00-00 00:00:00'; }