commit
8635f01edb
|
@ -1,5 +1,3 @@
|
|||
// @dart=2.9
|
||||
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
|
@ -54,15 +52,16 @@ class CollectionsDB {
|
|||
|
||||
static final CollectionsDB instance = CollectionsDB._privateConstructor();
|
||||
|
||||
static Future<Database> _dbFuture;
|
||||
static Future<Database>? _dbFuture;
|
||||
|
||||
Future<Database> get database async {
|
||||
_dbFuture ??= _initDatabase();
|
||||
return _dbFuture;
|
||||
return _dbFuture!;
|
||||
}
|
||||
|
||||
Future<Database> _initDatabase() async {
|
||||
final Directory documentsDirectory = await getApplicationDocumentsDirectory();
|
||||
final Directory documentsDirectory =
|
||||
await getApplicationDocumentsDirectory();
|
||||
final String path = join(documentsDirectory.path, _databaseName);
|
||||
return await openDatabaseWithMigration(path, dbConfig);
|
||||
}
|
||||
|
@ -180,20 +179,6 @@ class CollectionsDB {
|
|||
return collections;
|
||||
}
|
||||
|
||||
Future<int> getLastCollectionUpdationTime() async {
|
||||
final db = await instance.database;
|
||||
final rows = await db.query(
|
||||
table,
|
||||
orderBy: '$columnUpdationTime DESC',
|
||||
limit: 1,
|
||||
);
|
||||
if (rows.isNotEmpty) {
|
||||
return int.parse(rows[0][columnUpdationTime]);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Future<int> deleteCollection(int collectionID) async {
|
||||
final db = await instance.database;
|
||||
return db.delete(
|
||||
|
@ -206,7 +191,7 @@ class CollectionsDB {
|
|||
Map<String, dynamic> _getRowForCollection(Collection collection) {
|
||||
final row = <String, dynamic>{};
|
||||
row[columnID] = collection.id;
|
||||
row[columnOwner] = collection.owner.toJson();
|
||||
row[columnOwner] = collection.owner!.toJson();
|
||||
row[columnEncryptedKey] = collection.encryptedKey;
|
||||
row[columnKeyDecryptionNonce] = collection.keyDecryptionNonce;
|
||||
row[columnName] = collection.name;
|
||||
|
@ -217,16 +202,16 @@ class CollectionsDB {
|
|||
row[columnPathDecryptionNonce] = collection.attributes.pathDecryptionNonce;
|
||||
row[columnVersion] = collection.attributes.version;
|
||||
row[columnSharees] =
|
||||
json.encode(collection.sharees?.map((x) => x?.toMap())?.toList());
|
||||
json.encode(collection.sharees?.map((x) => x?.toMap()).toList());
|
||||
row[columnPublicURLs] =
|
||||
json.encode(collection.publicURLs?.map((x) => x?.toMap())?.toList());
|
||||
json.encode(collection.publicURLs?.map((x) => x?.toMap()).toList());
|
||||
row[columnUpdationTime] = collection.updationTime;
|
||||
if (collection.isDeleted ?? false) {
|
||||
if (collection.isDeleted) {
|
||||
row[columnIsDeleted] = _sqlBoolTrue;
|
||||
} else {
|
||||
row[columnIsDeleted] = _sqlBoolFalse;
|
||||
}
|
||||
row[columnMMdVersion] = collection.mMdVersion ?? 0;
|
||||
row[columnMMdVersion] = collection.mMdVersion;
|
||||
row[columnMMdEncodedJson] = collection.mMdEncodedJson ?? '{}';
|
||||
return row;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// @dart=2.9
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
@ -56,12 +54,12 @@ class FileUpdationDB {
|
|||
static final FileUpdationDB instance = FileUpdationDB._privateConstructor();
|
||||
|
||||
// only have a single app-wide reference to the database
|
||||
static Future<Database> _dbFuture;
|
||||
static Future<Database>? _dbFuture;
|
||||
|
||||
Future<Database> get database async {
|
||||
// lazily instantiate the db the first time it is accessed
|
||||
_dbFuture ??= _initDatabase();
|
||||
return _dbFuture;
|
||||
return _dbFuture!;
|
||||
}
|
||||
|
||||
// this opens the database (and creates it if it doesn't exist)
|
||||
|
@ -129,7 +127,7 @@ class FileUpdationDB {
|
|||
);
|
||||
}
|
||||
|
||||
Future<List<String>> getLocalIDsForPotentialReUpload(
|
||||
Future<List<String?>> getLocalIDsForPotentialReUpload(
|
||||
int limit,
|
||||
String reason,
|
||||
) async {
|
||||
|
@ -140,14 +138,14 @@ class FileUpdationDB {
|
|||
limit: limit,
|
||||
where: whereClause,
|
||||
);
|
||||
final result = <String>[];
|
||||
final result = <String?>[];
|
||||
for (final row in rows) {
|
||||
result.add(row[columnLocalID]);
|
||||
result.add(row[columnLocalID] as String?);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Map<String, dynamic> _getRowForReUploadTable(String localID, String reason) {
|
||||
Map<String, dynamic> _getRowForReUploadTable(String? localID, String reason) {
|
||||
assert(localID != null);
|
||||
final row = <String, dynamic>{};
|
||||
row[columnLocalID] = localID;
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// @dart=2.9
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
|
@ -20,15 +18,16 @@ class PublicKeysDB {
|
|||
PublicKeysDB._privateConstructor();
|
||||
static final PublicKeysDB instance = PublicKeysDB._privateConstructor();
|
||||
|
||||
static Future<Database> _dbFuture;
|
||||
static Future<Database>? _dbFuture;
|
||||
|
||||
Future<Database> get database async {
|
||||
_dbFuture ??= _initDatabase();
|
||||
return _dbFuture;
|
||||
return _dbFuture!;
|
||||
}
|
||||
|
||||
Future<Database> _initDatabase() async {
|
||||
final Directory documentsDirectory = await getApplicationDocumentsDirectory();
|
||||
final Directory documentsDirectory =
|
||||
await getApplicationDocumentsDirectory();
|
||||
final String path = join(documentsDirectory.path, _databaseName);
|
||||
return await openDatabase(
|
||||
path,
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// @dart=2.9
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
|
@ -19,14 +17,15 @@ class UploadLocksDB {
|
|||
UploadLocksDB._privateConstructor();
|
||||
static final UploadLocksDB instance = UploadLocksDB._privateConstructor();
|
||||
|
||||
static Future<Database> _dbFuture;
|
||||
static Future<Database>? _dbFuture;
|
||||
Future<Database> get database async {
|
||||
_dbFuture ??= _initDatabase();
|
||||
return _dbFuture;
|
||||
return _dbFuture!;
|
||||
}
|
||||
|
||||
Future<Database> _initDatabase() async {
|
||||
final Directory documentsDirectory = await getApplicationDocumentsDirectory();
|
||||
final Directory documentsDirectory =
|
||||
await getApplicationDocumentsDirectory();
|
||||
final String path = join(documentsDirectory.path, _databaseName);
|
||||
return await openDatabase(
|
||||
path,
|
||||
|
|
|
@ -12,7 +12,7 @@ class Collection {
|
|||
final String encryptedName;
|
||||
final String nameDecryptionNonce;
|
||||
final CollectionType type;
|
||||
final CollectionAttributes? attributes;
|
||||
final CollectionAttributes attributes;
|
||||
final List<User?>? sharees;
|
||||
final List<PublicURL?>? publicURLs;
|
||||
final int updationTime;
|
||||
|
@ -114,7 +114,7 @@ class Collection {
|
|||
'encryptedName': encryptedName,
|
||||
'nameDecryptionNonce': nameDecryptionNonce,
|
||||
'type': typeToString(type),
|
||||
'attributes': attributes?.toMap(),
|
||||
'attributes': attributes.toMap(),
|
||||
'sharees': sharees?.map((x) => x?.toMap()).toList(),
|
||||
'publicURLs': publicURLs?.map((x) => x?.toMap()).toList(),
|
||||
'updationTime': updationTime,
|
||||
|
|
Loading…
Reference in a new issue