WIP
This commit is contained in:
parent
1f70e5db22
commit
c5112075e6
|
@ -3,7 +3,6 @@ abstract class BaseStorage {
|
|||
|
||||
Future<void> set<T>(String key, T value);
|
||||
|
||||
|
||||
Future<String?> get(String key);
|
||||
|
||||
Future<void> delete(String key);
|
||||
|
@ -94,6 +93,7 @@ enum KeychainStorageKey {
|
|||
panic,
|
||||
person,
|
||||
requestOSNotification,
|
||||
isNewVersion,
|
||||
}
|
||||
|
||||
extension KeychainStorageKeyExtension on KeychainStorageKey {
|
||||
|
@ -137,6 +137,68 @@ extension KeychainStorageKeyExtension on KeychainStorageKey {
|
|||
return 'fre_person';
|
||||
case KeychainStorageKey.requestOSNotification:
|
||||
return 'fre_requestOSnotification';
|
||||
case KeychainStorageKey.isNewVersion:
|
||||
return 'fre_isNewVersion';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum InactiveLicenseKey {
|
||||
residents,
|
||||
vehicles,
|
||||
openedVisits,
|
||||
}
|
||||
|
||||
enum ActiveLicenseKey {
|
||||
messages,
|
||||
liberations,
|
||||
reservations,
|
||||
access,
|
||||
orders,
|
||||
completeSchedule,
|
||||
providerSchedule,
|
||||
deliverySchedule,
|
||||
fastPass,
|
||||
}
|
||||
|
||||
extension InactiveLicenseKeyExtension on InactiveLicenseKey {
|
||||
String get value {
|
||||
switch (this) {
|
||||
case InactiveLicenseKey.residents:
|
||||
return 'FRE-HUB-RESIDENTS';
|
||||
case InactiveLicenseKey.vehicles:
|
||||
return 'FRE-HUB-VEHICLES';
|
||||
case InactiveLicenseKey.openedVisits:
|
||||
return 'FRE-HUB-OPENED-VISITS';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension ActiveLicenseKeyExtension on ActiveLicenseKey {
|
||||
String get value {
|
||||
switch (this) {
|
||||
case ActiveLicenseKey.messages:
|
||||
return 'FRE-HUB-MESSAGES';
|
||||
case ActiveLicenseKey.liberations:
|
||||
return 'FRE-HUB-LIBERATIONS';
|
||||
case ActiveLicenseKey.reservations:
|
||||
return 'FRE-HUB-RESERVATIONS';
|
||||
case ActiveLicenseKey.access:
|
||||
return 'FRE-HUB-ACCESS';
|
||||
case ActiveLicenseKey.orders:
|
||||
return 'FRE-HUB-ORDERS';
|
||||
case ActiveLicenseKey.completeSchedule:
|
||||
return 'FRE-HUB-COMPLETE-SCHEDULE';
|
||||
case ActiveLicenseKey.providerSchedule:
|
||||
return 'FRE-HUB-AGE-PROV-PRESTADOR';
|
||||
case ActiveLicenseKey.deliverySchedule:
|
||||
return 'FRE-HUB-AGE-PROV-DELIVERY';
|
||||
case ActiveLicenseKey.fastPass:
|
||||
return 'FRE-HUB-FASTPASS';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:hub/shared/services/keychain/keychain_database_delegate.dart';
|
||||
import 'package:hub/shared/services/keychain/keychain_service.dart';
|
||||
import 'package:hub/shared/services/license/license_database_delegate.dart';
|
||||
import 'package:hub/shared/helpers/keychain_storage.dart';
|
||||
import 'package:hub/shared/helpers/license_helper.dart';
|
||||
import 'package:hub/shared/services/license/license_service.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
import 'package:path/path.dart';
|
||||
import 'dart:developer';
|
||||
|
||||
class DatabaseStorage implements BaseStorage {
|
||||
class DatabaseStorage {
|
||||
static final String _dbName = 'database.db';
|
||||
static final int _dbVersion = 2;
|
||||
|
||||
|
@ -23,16 +21,6 @@ class DatabaseStorage implements BaseStorage {
|
|||
return _database!;
|
||||
}
|
||||
|
||||
static BaseStorage getInstanceByKey(String key) {
|
||||
if (KeychainStorageKey.values.map((e) => e.value).toList().contains(key)) {
|
||||
return KeychainDelegate.instance;
|
||||
}
|
||||
if (LicenseStorageKey.values.map((e) => e.value).toList().contains(key)) {
|
||||
return LicenseDelegate.instance;
|
||||
}
|
||||
throw Exception('Storage not found');
|
||||
}
|
||||
|
||||
Future<void> init() async {
|
||||
if (_database != null && _database!.isOpen) return;
|
||||
_database = await openDatabase(
|
||||
|
@ -61,25 +49,4 @@ class DatabaseStorage implements BaseStorage {
|
|||
|
||||
Future<void> _onDowngrade(Database database, int oldVersion, int newVersion) async {}
|
||||
|
||||
@override
|
||||
Future<void> clearAll() async {
|
||||
await _database?.delete(KeychainDelegate.tableKeychain);
|
||||
await _database?.delete(LicenseDelegate.tableLicense);
|
||||
return;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
return await getInstanceByKey(key).delete(key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String?> get(String key) async {
|
||||
return await getInstanceByKey(key).get(key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> set<T>(String key, T value) async {
|
||||
return await getInstanceByKey(key).set(key, value);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_helper.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
class KeychainDelegate implements BaseStorage {
|
|
@ -1,8 +1,7 @@
|
|||
import 'dart:convert';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_helper.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
class LicenseDelegate implements BaseStorage {
|
||||
|
@ -53,6 +52,22 @@ class LicenseDelegate implements BaseStorage {
|
|||
conflictAlgorithm: ConflictAlgorithm.replace);
|
||||
}
|
||||
|
||||
static Future<void> insertLicenseFoo(final List<String> key, final String display) async {
|
||||
for (var element in key) {
|
||||
DatabaseStorage.database.insert(
|
||||
LicenseDelegate.tableLicense,
|
||||
{
|
||||
'key': element,
|
||||
'display': display,
|
||||
'expirationDate': '',
|
||||
'startDate': '',
|
||||
'quantity': '',
|
||||
},
|
||||
conflictAlgorithm: ConflictAlgorithm.ignore,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
await DatabaseStorage.database.delete(tableLicense, where: 'key = ?', whereArgs: [key]);
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_helper.dart';
|
||||
import 'package:hub/shared/helpers/keychain_storage.dart';
|
||||
import 'package:hub/shared/helpers/secure_storage.dart';
|
||||
import 'package:hub/shared/helpers/shared_preferences_storage.dart';
|
||||
|
||||
|
@ -37,7 +38,7 @@ class StorageHelper {
|
|||
case Storage.sharedPreferences:
|
||||
return SharedPreferencesStorage.instance;
|
||||
default:
|
||||
return DatabaseStorage.instance;
|
||||
return KeychainDelegate.instance;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,7 +48,7 @@ class StorageHelper {
|
|||
} else if (SharedPreferencesKey.values.map((e) => e.value).toList().contains(key)) {
|
||||
return SharedPreferencesStorage.instance;
|
||||
} else {
|
||||
return DatabaseStorage.instance;
|
||||
return KeychainDelegate.instance;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,10 @@ import 'dart:developer';
|
|||
|
||||
import 'package:hub/backend/api_requests/api_calls.dart';
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_storage.dart';
|
||||
import 'dart:convert';
|
||||
import 'package:hub/shared/helpers/database_helper.dart';
|
||||
import 'package:hub/shared/helpers/license_helper.dart';
|
||||
|
||||
import 'package:hub/shared/helpers/storage_helper.dart';
|
||||
import 'package:hub/shared/services/license/license_database_delegate.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
class LicenseService {
|
||||
|
@ -17,20 +16,8 @@ class LicenseService {
|
|||
LicenseService._internal();
|
||||
|
||||
static Future<void> setupLicense(Database database) async {
|
||||
log('All modules are visible');
|
||||
for (var element in LicenseStorageKey.values.map((e) => e.value)) {
|
||||
await database.insert(
|
||||
LicenseDelegate.tableLicense,
|
||||
{
|
||||
'key': element,
|
||||
'display': 'VISIVEL',
|
||||
'expirationDate': '',
|
||||
'startDate': '',
|
||||
'quantity': '',
|
||||
},
|
||||
conflictAlgorithm: ConflictAlgorithm.ignore,
|
||||
);
|
||||
}
|
||||
await LicenseDelegate.insertLicenseFoo(InactiveLicenseKey.values.map((e) => e.value).toList(), 'INVISIVEL');
|
||||
await LicenseDelegate.insertLicenseFoo(ActiveLicenseKey.values.map((e) => e.value).toList(), 'VISIVEL');
|
||||
}
|
||||
|
||||
static Future<void> initLicenseService() async {
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'package:http/src/response.dart';
|
|||
import 'package:hub/backend/api_requests/api_manager.dart';
|
||||
import 'package:hub/flutter_flow/nav/nav.dart';
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:hub/shared/helpers/database_helper.dart';
|
||||
import 'package:hub/shared/helpers/storage_helper.dart';
|
||||
import 'package:hub/shared/services/license/license_service.dart';
|
||||
import 'package:hub/shared/utils/dialog_util.dart';
|
||||
|
@ -150,7 +151,11 @@ class LocalizationService {
|
|||
await DialogUtil.error(context, errorMsg).whenComplete(() => selectLocal(context, response));
|
||||
return false;
|
||||
} else {
|
||||
await _updateStorageUtil(response.jsonBody);
|
||||
final bool isNewVersion = await _updateStorageUtil(response.jsonBody);
|
||||
if (!isNewVersion) {
|
||||
await LicenseService.setupLicense(DatabaseStorage.database);
|
||||
return false;
|
||||
}
|
||||
return await LicenseService.fetchLicenses();
|
||||
}
|
||||
} catch (e, s) {
|
||||
|
@ -293,19 +298,20 @@ class LocalizationService {
|
|||
}
|
||||
}
|
||||
|
||||
static Future<void> _updateStorageUtil(Map<String, dynamic> jsonBody) async {
|
||||
static Future<bool> _updateStorageUtil(Map<String, dynamic> jsonBody) async {
|
||||
await StorageHelper().s(KeychainStorageKey.whatsapp.value, jsonBody['whatsapp'] != null && jsonBody['whatsapp']);
|
||||
await StorageHelper()
|
||||
.s(KeychainStorageKey.whatsapp.value, jsonBody['whatsapp'] != null && jsonBody['whatsapp'] ? 'true' : 'false');
|
||||
await StorageHelper().s(KeychainStorageKey.provisional.value,
|
||||
jsonBody['provisional'] != null && jsonBody['provisional'] ? 'true' : 'false');
|
||||
await StorageHelper()
|
||||
.s(KeychainStorageKey.pets.value, jsonBody['pet'] != null && jsonBody['pet'] ? 'true' : 'false');
|
||||
.s(KeychainStorageKey.provisional.value, jsonBody['provisional'] != null && jsonBody['provisional']);
|
||||
await StorageHelper().s(KeychainStorageKey.pets.value, jsonBody['pet'] != null && jsonBody['pet']);
|
||||
await StorageHelper().s(
|
||||
KeychainStorageKey.petAmount.value,
|
||||
jsonBody['petAmountRegister'] != null && jsonBody['petAmountRegister'].toString().isEmpty
|
||||
? '0'
|
||||
: jsonBody['petAmountRegister'].toString());
|
||||
await StorageHelper().s(KeychainStorageKey.userName.value, jsonBody['visitado']['VDO_NOME']);
|
||||
await StorageHelper()
|
||||
.s(KeychainStorageKey.isNewVersion.value, jsonBody['newVersion'] != null && jsonBody['newVersion']);
|
||||
return jsonBody['newVersion'] != null && jsonBody['newVersion'];
|
||||
}
|
||||
|
||||
static bool _isActive(List<dynamic> locals) {
|
||||
|
|
Loading…
Reference in New Issue