Files
pyramid/lib/core/matrix_client.dart
T
2026-04-19 19:56:12 +02:00

31 lines
1020 B
Dart

import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:matrix/matrix.dart';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
final matrixClientProvider = FutureProvider<Client>((ref) async {
if (!kIsWeb && (Platform.isWindows || Platform.isLinux)) {
sqfliteFfiInit();
databaseFactory = databaseFactoryFfi;
}
final appDir = await getApplicationSupportDirectory();
final dbPath = p.join(appDir.path, 'pyramid.sqlite');
final db = await databaseFactoryFfi.openDatabase(dbPath);
final sdkDb = await MatrixSdkDatabase.init('pyramid', database: db);
final client = Client('Pyramid', database: sdkDb);
await client.init();
return client;
});
final secureStorageProvider = Provider<FlutterSecureStorage>((ref) {
return const FlutterSecureStorage();
});