31 lines
1020 B
Dart
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();
|
|
});
|