fix read indicators
This commit is contained in:
parent
919e8d11b2
commit
e55d7c4c58
6 changed files with 36 additions and 14 deletions
|
|
@ -1,21 +1,20 @@
|
|||
import "dart:convert";
|
||||
import "dart:io";
|
||||
import "package:flutter/foundation.dart";
|
||||
import "package:nexus/controllers/database_controller.dart";
|
||||
import "package:vodozemac/vodozemac.dart" as voz;
|
||||
import "package:flutter_vodozemac/flutter_vodozemac.dart" as voz_fl;
|
||||
import "package:matrix/matrix.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:nexus/controllers/secure_storage_controller.dart";
|
||||
import "package:nexus/models/session_backup.dart";
|
||||
import "package:path/path.dart";
|
||||
import "package:path_provider/path_provider.dart";
|
||||
import "package:sqflite_common_ffi/sqflite_ffi.dart";
|
||||
|
||||
class ClientController extends AsyncNotifier<Client> {
|
||||
static const sessionBackupKey = "sessionBackup";
|
||||
@override
|
||||
Future<Client> build() async {
|
||||
if (!voz.isInitialized()) await voz_fl.init();
|
||||
|
||||
final client = Client(
|
||||
"nexus",
|
||||
logLevel: kReleaseMode ? Level.warning : Level.verbose,
|
||||
|
|
@ -23,9 +22,7 @@ class ClientController extends AsyncNotifier<Client> {
|
|||
supportedLoginTypes: {AuthenticationTypes.password},
|
||||
database: await MatrixSdkDatabase.init(
|
||||
"nexus",
|
||||
database: await databaseFactoryFfi.openDatabase(
|
||||
join((await getApplicationSupportDirectory()).path, "database.db"),
|
||||
),
|
||||
database: await ref.watch(DatabaseController.provider.future),
|
||||
),
|
||||
);
|
||||
|
||||
|
|
|
|||
18
lib/controllers/database_controller.dart
Normal file
18
lib/controllers/database_controller.dart
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:path/path.dart";
|
||||
import "package:path_provider/path_provider.dart";
|
||||
import "package:sqflite_common_ffi/sqflite_ffi.dart";
|
||||
|
||||
class DatabaseController extends AsyncNotifier<Database> {
|
||||
@override
|
||||
Future<Database> build() async {
|
||||
databaseFactory = databaseFactoryFfi;
|
||||
return databaseFactoryFfi.openDatabase(
|
||||
join((await getApplicationSupportDirectory()).path, "database.db"),
|
||||
);
|
||||
}
|
||||
|
||||
static final provider = AsyncNotifierProvider<DatabaseController, Database>(
|
||||
DatabaseController.new,
|
||||
);
|
||||
}
|
||||
|
|
@ -64,7 +64,8 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
|||
|
||||
Future<void> markRead() async {
|
||||
final controller = await future;
|
||||
await room.setReadMarker(controller.messages.last.id);
|
||||
final id = controller.messages.last.id;
|
||||
await room.setReadMarker(id, mRead: id);
|
||||
}
|
||||
|
||||
Future<void> updateMessage(Message message, Message newMessage) async =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue