refactor: (BREAKING) Remove hive database and hive dependencies

This commit is contained in:
Krille 2025-05-08 14:23:29 +02:00
parent f6750feeed
commit 5ec745915e
No known key found for this signature in database
GPG Key ID: E067ECD60F1A0652
7 changed files with 33 additions and 1846 deletions

View File

@ -26,7 +26,6 @@ export 'fake_matrix_api.dart' show FakeMatrixApi;
export 'src/client.dart';
export 'src/database/database_api.dart';
export 'src/database/matrix_sdk_database.dart';
export 'src/database/hive_collections_database.dart';
export 'src/database/sqflite_encryption_helper.dart';
export 'src/event.dart';
export 'src/presence.dart';

File diff suppressed because it is too large Load Diff

View File

@ -1816,3 +1816,28 @@ class MatrixSdkDatabase extends DatabaseApi with DatabaseFileStorage {
profile.toJson(),
);
}
class TupleKey {
final List<String> parts;
TupleKey(String key1, [String? key2, String? key3])
: parts = [
key1,
if (key2 != null) key2,
if (key3 != null) key3,
];
const TupleKey.byParts(this.parts);
TupleKey.fromString(String multiKeyString)
: parts = multiKeyString.split('|').toList();
@override
String toString() => parts.join('|');
@override
bool operator ==(other) => parts.toString() == other.toString();
@override
int get hashCode => Object.hashAll(parts);
}

View File

@ -17,7 +17,6 @@ dependencies:
crypto: ^3.0.0
enhanced_enum: ^0.2.4
ffi: ^2.0.0
hive: ^2.2.3
html: ^0.15.0
html_unescape: ^2.0.0
http: ">=0.13.0 <2.0.0"

View File

@ -36,10 +36,7 @@ String createLargeString(String character, int desiredSize) {
}
void main() {
final databaseBuilders = {
'Matrix SDK Database': getMatrixSdkDatabase,
'Hive Collections Database': getHiveCollectionsDatabase,
};
final databaseBuilders = {'Matrix SDK Database': getMatrixSdkDatabase};
for (final databaseBuilder in databaseBuilders.entries) {
group('Test ${databaseBuilder.key}', tags: 'olm', () {
@ -673,19 +670,14 @@ void main() {
updated: DateTime.now(),
),
);
// ignore: deprecated_member_use_from_same_package
if (database is! HiveCollectionsDatabase) {
final profile2 =
await database.getUserProfile('@alice:example.com');
final profile2 = await database.getUserProfile('@alice:example.com');
expect(profile2?.displayname, 'Alice M');
expect(profile2?.outdated, false);
await database.markUserProfileAsOutdated('@alice:example.com');
final profile3 =
await database.getUserProfile('@alice:example.com');
final profile3 = await database.getUserProfile('@alice:example.com');
expect(profile3?.displayname, 'Alice M');
expect(profile3?.outdated, true);
}
},
);

View File

@ -16,8 +16,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import 'package:file/local.dart';
import 'package:hive/hive.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import 'package:matrix/matrix.dart';
@ -25,25 +23,6 @@ import 'package:matrix/matrix.dart';
Future<DatabaseApi> getDatabase(Client? c, {String? databasePath}) =>
getMatrixSdkDatabase(c, path: databasePath);
bool hiveInitialized = false;
// ignore: deprecated_member_use_from_same_package
Future<HiveCollectionsDatabase> getHiveCollectionsDatabase(Client? c) async {
final testHivePath = await LocalFileSystem()
.systemTempDirectory
.createTemp('dart-sdk-tests-database');
if (!hiveInitialized) {
Hive.init(testHivePath.path);
}
// ignore: deprecated_member_use_from_same_package
final db = HiveCollectionsDatabase(
'unit_test.${c?.hashCode}',
testHivePath.path,
);
await db.open();
return db;
}
// ignore: deprecated_member_use_from_same_package
Future<MatrixSdkDatabase> getMatrixSdkDatabase(
Client? c, {

View File

@ -18,7 +18,6 @@
import 'dart:io';
import 'package:hive/hive.dart';
import 'package:olm/olm.dart' as olm;
import 'package:test/test.dart';
@ -40,8 +39,6 @@ void main() => group(
Client? testClientA, testClientB;
try {
Hive.init(null);
await olm.init();
olm.Account();
Logs().i('[LibOlm] Enabled');
@ -488,8 +485,6 @@ void main() => group(
Client? testClientA, testClientB;
try {
Hive.init(null);
await olm.init();
olm.Account();
Logs().i('[LibOlm] Enabled');