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((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((ref) { return const FlutterSecureStorage(); });