fix: unlink locals - select locals

This commit is contained in:
J. A. Messias 2024-12-06 14:42:08 -03:00
parent 4ca6f759d0
commit eae3792abe
8 changed files with 36 additions and 14 deletions

View File

@ -77,7 +77,8 @@ class LocalsRepositoryImpl implements LocalsRepository {
} }
@override @override
Future<void> unlinkLocal(BuildContext context) { Future<void> unlinkLocal(BuildContext context) async {
return remoteDataSource.detachLocal(context); await remoteDataSource.detachLocal(context);
await select(context);
} }
} }

View File

@ -90,6 +90,7 @@ class LocalUtil {
await StorageHelper().set(KeychainStorageKey.petAmount.value, await StorageHelper().set(KeychainStorageKey.petAmount.value,
jsonBody['petAmountRegister']?.toString().isEmpty ?? true ? '0' : jsonBody['petAmountRegister'].toString()); jsonBody['petAmountRegister']?.toString().isEmpty ?? true ? '0' : jsonBody['petAmountRegister'].toString());
await StorageHelper().set(KeychainStorageKey.userName.value, jsonBody['visitado']['VDO_NOME'] ?? ''); await StorageHelper().set(KeychainStorageKey.userName.value, jsonBody['visitado']['VDO_NOME'] ?? '');
await StorageHelper().set(KeychainStorageKey.userEmail.value, jsonBody['visitado']['VDO_EMAIL'] ?? '');
final bool isNewVersion = jsonBody['newVersion'] ?? false; final bool isNewVersion = jsonBody['newVersion'] ?? false;
await StorageHelper().set(KeychainStorageKey.isNewVersion.value, isNewVersion); await StorageHelper().set(KeychainStorageKey.isNewVersion.value, isNewVersion);

View File

@ -82,7 +82,6 @@ class LicenseLocalDataSourceImpl implements LicenseLocalDataSource {
@override @override
Future<void> clear() async { Future<void> clear() async {
await DatabaseStorage.database.delete(tableLicense); await DatabaseStorage.database.delete(tableLicense);
await DatabaseStorage.database.rawDelete(
'DELETE FROM sqlite_sequence WHERE name = "$tableLicense"');
} }
} }

View File

@ -34,7 +34,6 @@ class DatabaseStorage {
onDowngrade: _onDowngrade, onDowngrade: _onDowngrade,
onOpen: _onOpen, onOpen: _onOpen,
onConfigure: _onConfigure, onConfigure: _onConfigure,
singleInstance: true,
); );
await LicenseRepositoryImpl().updateLicense(); await LicenseRepositoryImpl().updateLicense();
isInitialized = true; isInitialized = true;
@ -62,7 +61,7 @@ class DatabaseStorage {
} }
Future<void> _onDowngrade(Database database, int oldVersion, int newVersion) async { Future<void> _onDowngrade(Database database, int oldVersion, int newVersion) async {
print('Downgrading database from version $oldVersion to $newVersion...'); print('Downgrading database from version $oldVersion to $newVersion...');
if (oldVersion >= 2 && newVersion < 2) { if (oldVersion >= 2 && newVersion < 2) {
await _dropTables(database); await _dropTables(database);
} }
@ -70,9 +69,9 @@ class DatabaseStorage {
Future<void> _executePragmas(Database database) async { Future<void> _executePragmas(Database database) async {
// await database.execute('PRAGMA journal_mode = WAL;'); // await database.execute('PRAGMA journal_mode = WAL;');
await database.execute('PRAGMA synchronous = NORMAL;'); // await database.execute('PRAGMA synchronous = NORMAL;');
await database.execute('PRAGMA temp_store = MEMORY;'); // await database.execute('PRAGMA temp_store = MEMORY;');
await database.execute('PRAGMA foreign_keys = ON;'); // await database.execute('PRAGMA foreign_keys = ON;');
} }
Future<void> _createTables(Database database, int version) async { Future<void> _createTables(Database database, int version) async {

View File

@ -79,6 +79,7 @@ enum KeychainStorageKey {
userDevUUID, userDevUUID,
status, status,
userName, userName,
userEmail,
clientUUID, clientUUID,
ownerName, ownerName,
ownerUUID, ownerUUID,
@ -100,6 +101,8 @@ enum KeychainStorageKey {
extension KeychainStorageKeyExtension on KeychainStorageKey { extension KeychainStorageKeyExtension on KeychainStorageKey {
String get value { String get value {
switch (this) { switch (this) {
case KeychainStorageKey.userEmail:
return 'fre_userEmail';
case KeychainStorageKey.devUUID: case KeychainStorageKey.devUUID:
return 'fre_devUUID'; return 'fre_devUUID';
case KeychainStorageKey.userUUID: case KeychainStorageKey.userUUID:

View File

@ -59,8 +59,7 @@ class KeychainHelper implements BaseStorage {
Future<void> clearAll() async { Future<void> clearAll() async {
try { try {
await DatabaseStorage.database.delete(tableKeychain); await DatabaseStorage.database.delete(tableKeychain);
await DatabaseStorage.database.rawDelete(
'DELETE FROM sqlite_sequence WHERE name = "$tableKeychain"');
} catch (e, s) { } catch (e, s) {
log('() => clearAll keychain: $e', stackTrace: s); log('() => clearAll keychain: $e', stackTrace: s);

View File

@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:hub/shared/helpers/storage/base_storage.dart'; import 'package:hub/shared/helpers/storage/base_storage.dart';
@ -23,7 +25,12 @@ class SecureStorage implements BaseStorage {
@override @override
Future<void> set<T>(String key, T value) async { Future<void> set<T>(String key, T value) async {
await _secureStorage.write(key: key, value: value.toString()); log('Setting value: $value');
try {
await _secureStorage.write(key: key, value: value.toString());
} catch (e, s) {
log('Error setting value: $e', stackTrace: s);
}
} }
@override @override
@ -33,6 +40,15 @@ class SecureStorage implements BaseStorage {
@override @override
Future<void> clearAll() async { Future<void> clearAll() async {
await _secureStorage.deleteAll(); log('Clearing SecureStorage');
try{
await _secureStorage.deleteAll(
aOptions: AndroidOptions(),
iOptions: IOSOptions(),
);
} catch (e, s) {
log('Error clearing all: $e', stackTrace: s);
}
} }
} }

View File

@ -1,6 +1,7 @@
import 'dart:developer'; import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hub/features/home/presentation/pages/home_page.dart'; import 'package:hub/features/home/presentation/pages/home_page.dart';
import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:hub/shared/components/molecules/modules/data/repositories/license_repository_impl.dart'; import 'package:hub/shared/components/molecules/modules/data/repositories/license_repository_impl.dart';
@ -14,6 +15,8 @@ import '../../../backend/api_requests/api_calls.dart';
import '../../../flutter_flow/flutter_flow_util.dart'; import '../../../flutter_flow/flutter_flow_util.dart';
import '../../../flutter_flow/random_data_util.dart'; import '../../../flutter_flow/random_data_util.dart';
import '../../components/molecules/locals/data/index.dart'; import '../../components/molecules/locals/data/index.dart';
import '../../components/molecules/locals/index.dart';
import '../../components/molecules/menu/index.dart';
import '../../utils/device_util.dart'; import '../../utils/device_util.dart';
import '../../utils/dialog_util.dart'; import '../../utils/dialog_util.dart';
import '../../utils/log_util.dart'; import '../../utils/log_util.dart';
@ -152,6 +155,7 @@ class AuthenticationService {
await LicenseRepositoryImpl().cleanLicense(); await LicenseRepositoryImpl().cleanLicense();
DatabaseStorage.isInitialized = false; DatabaseStorage.isInitialized = false;
await StorageHelper().init(); await StorageHelper().init();
context.go('/welcomePage', extra: extra); context.go('/welcomePage', extra: extra);
} }