WIP
This commit is contained in:
parent
4eca85a85d
commit
1f70e5db22
|
@ -15,8 +15,13 @@ class DatabaseStorage implements BaseStorage {
|
||||||
factory DatabaseStorage() => instance;
|
factory DatabaseStorage() => instance;
|
||||||
DatabaseStorage._internal();
|
DatabaseStorage._internal();
|
||||||
|
|
||||||
static late final Database _database;
|
static Database? _database;
|
||||||
static Database get database => _database;
|
static Database get database {
|
||||||
|
if (_database == null) {
|
||||||
|
throw Exception('Database has not been initialized. Call init() first.');
|
||||||
|
}
|
||||||
|
return _database!;
|
||||||
|
}
|
||||||
|
|
||||||
static BaseStorage getInstanceByKey(String key) {
|
static BaseStorage getInstanceByKey(String key) {
|
||||||
if (KeychainStorageKey.values.map((e) => e.value).toList().contains(key)) {
|
if (KeychainStorageKey.values.map((e) => e.value).toList().contains(key)) {
|
||||||
|
@ -29,6 +34,7 @@ class DatabaseStorage implements BaseStorage {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> init() async {
|
Future<void> init() async {
|
||||||
|
if (_database != null && _database!.isOpen) return;
|
||||||
_database = await openDatabase(
|
_database = await openDatabase(
|
||||||
join(await getDatabasesPath(), _dbName),
|
join(await getDatabasesPath(), _dbName),
|
||||||
version: _dbVersion,
|
version: _dbVersion,
|
||||||
|
@ -42,14 +48,14 @@ class DatabaseStorage implements BaseStorage {
|
||||||
log('Creating database...');
|
log('Creating database...');
|
||||||
await database.execute(KeychainDelegate.createTableQuery);
|
await database.execute(KeychainDelegate.createTableQuery);
|
||||||
await database.execute(LicenseDelegate.createTableQuery);
|
await database.execute(LicenseDelegate.createTableQuery);
|
||||||
await LicenseService.setupLicense();
|
await LicenseService.setupLicense(database);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _onUpgrade(Database database, int oldVersion, int newVersion) async {
|
Future<void> _onUpgrade(Database database, int oldVersion, int newVersion) async {
|
||||||
log('Upgrading database from version $oldVersion to $newVersion...');
|
log('Upgrading database from version $oldVersion to $newVersion...');
|
||||||
if (oldVersion < 2) {
|
if (oldVersion < 2) {
|
||||||
await database.execute(LicenseDelegate.createTableQuery);
|
await database.execute(LicenseDelegate.createTableQuery);
|
||||||
await LicenseService.setupLicense();
|
await LicenseService.setupLicense(database);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,8 +63,8 @@ class DatabaseStorage implements BaseStorage {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> clearAll() async {
|
Future<void> clearAll() async {
|
||||||
await _database.delete(KeychainDelegate.tableKeychain);
|
await _database?.delete(KeychainDelegate.tableKeychain);
|
||||||
await _database.delete(LicenseDelegate.tableLicense);
|
await _database?.delete(LicenseDelegate.tableLicense);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,10 @@ class LicenseService {
|
||||||
factory LicenseService() => _instance;
|
factory LicenseService() => _instance;
|
||||||
LicenseService._internal();
|
LicenseService._internal();
|
||||||
|
|
||||||
static Future<void> setupLicense() async {
|
static Future<void> setupLicense(Database database) async {
|
||||||
log('All modules are visible');
|
log('All modules are visible');
|
||||||
for (var element in LicenseStorageKey.values.map((e) => e.value)) {
|
for (var element in LicenseStorageKey.values.map((e) => e.value)) {
|
||||||
await DatabaseStorage.database.insert(
|
await database.insert(
|
||||||
LicenseDelegate.tableLicense,
|
LicenseDelegate.tableLicense,
|
||||||
{
|
{
|
||||||
'key': element,
|
'key': element,
|
||||||
|
@ -69,7 +69,7 @@ class LicenseService {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (responseBody == []) {
|
if (responseBody == []) {
|
||||||
await setupLicense();
|
await setupLicense(DatabaseStorage.database);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ class LicenseService {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
await setupLicense();
|
await setupLicense(DatabaseStorage.database);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue