feat: Set pragmas on desktop as well

This commit is contained in:
Krille Fear 2021-11-18 11:18:55 +01:00
parent 9ce6743948
commit 1f01950e92
2 changed files with 32 additions and 26 deletions

View File

@ -28,7 +28,6 @@ class FlutterFluffyBoxDatabase extends FluffyBoxDatabase {
static Future<FluffyBoxDatabase> databaseBuilder(Client client) async { static Future<FluffyBoxDatabase> databaseBuilder(Client client) async {
Logs().d('Open FluffyBox...'); Logs().d('Open FluffyBox...');
String? password; String? password;
if (!kIsWeb && (Platform.isAndroid || Platform.isIOS)) {
try { try {
const secureStorage = FlutterSecureStorage(); const secureStorage = FlutterSecureStorage();
final containsEncryptionKey = final containsEncryptionKey =
@ -47,7 +46,6 @@ class FlutterFluffyBoxDatabase extends FluffyBoxDatabase {
} on MissingPluginException catch (_) { } on MissingPluginException catch (_) {
Logs().i('FluffyBox encryption is not supported on this platform'); Logs().i('FluffyBox encryption is not supported on this platform');
} }
}
final db = FluffyBoxDatabase( final db = FluffyBoxDatabase(
'fluffybox_${client.clientName.replaceAll(' ', '_').toLowerCase()}', 'fluffybox_${client.clientName.replaceAll(' ', '_').toLowerCase()}',
@ -58,6 +56,13 @@ class FlutterFluffyBoxDatabase extends FluffyBoxDatabase {
return db; return db;
} }
static Future<void> _onConfigure(sqflite.Database db) async {
await db.execute('PRAGMA page_size = 8192');
await db.execute('PRAGMA cache_size = 16384');
await db.execute('PRAGMA temp_store = MEMORY');
await db.execute('PRAGMA journal_mode = WAL');
}
static Future<sqflite.Database> _openSqlDatabase( static Future<sqflite.Database> _openSqlDatabase(
Client client, Client client,
String? password, String? password,
@ -68,16 +73,17 @@ class FlutterFluffyBoxDatabase extends FluffyBoxDatabase {
final db = await sqflite.openDatabase( final db = await sqflite.openDatabase(
path, path,
password: password, password: password,
onConfigure: (db) async { onConfigure: _onConfigure,
await db.execute('PRAGMA page_size = 8192');
await db.execute('PRAGMA cache_size = 16384');
await db.execute('PRAGMA temp_store = MEMORY');
await db.rawQuery('PRAGMA journal_mode = WAL');
},
); );
return db; return db;
} }
final db = await ffi.databaseFactoryFfi.openDatabase(path); final db = await ffi.databaseFactoryFfi.openDatabase(
path,
options: sqflite.SqlCipherOpenDatabaseOptions(
password: password,
onConfigure: _onConfigure,
),
);
return db; return db;
} catch (_) { } catch (_) {
File(path).delete(); File(path).delete();

View File

@ -782,7 +782,7 @@ packages:
description: description:
path: "." path: "."
ref: "krille/idb" ref: "krille/idb"
resolved-ref: "362652e6a43339ade2fb37ba02b730b7c99bf8ad" resolved-ref: "48f75edae963c7f7d29b0749c60292c8a59b6d5b"
url: "https://gitlab.com/famedly/company/frontend/famedlysdk.git" url: "https://gitlab.com/famedly/company/frontend/famedlysdk.git"
source: git source: git
version: "0.7.0-nullsafety.6" version: "0.7.0-nullsafety.6"