import 'package:matrix/matrix.dart'; import 'package:shared_preferences/shared_preferences.dart'; /// SharedPreferences-Schlüssel der Einstellung „Lesebestätigungen senden“ /// (siehe privacyReadReceiptsProvider). Auch der Hintergrund-Isolate der /// Benachrichtigungen liest ihn, dort gibt es keine Provider. const readReceiptsPrefKey = 'privacy_read_receipts'; Future loadReadReceiptsPublic() async { final prefs = await SharedPreferences.getInstance(); return prefs.getBool(readReceiptsPrefKey) ?? true; } /// Setzt Lesemarker und Lesebestätigung bis [eventId]. /// /// Mit [publicReceipt] = false (Einstellung „Lesebestätigungen senden“ aus) /// geht nur die private Bestätigung (m.read.private) raus: Der Server zählt /// Ungelesenes trotzdem herunter und andere eigene Geräte kennen den Stand, /// Chatpartner sehen aber kein „gelesen“. Früher wurde in diesem Fall gar /// nichts gesendet – Ungelesen-Zähler blieben dann stehen. Future markRoomReadUpTo( Room room, String eventId, { required bool publicReceipt, }) => room.setReadMarker(eventId, mRead: eventId, public: publicReceipt);