diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 42701bdc..a4561fbb 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -103,7 +103,8 @@ class ChatPageWithRoom extends StatefulWidget { ChatController createState() => ChatController(); } -class ChatController extends State { +class ChatController extends State + with WidgetsBindingObserver { Room get room => sendingClient.getRoomById(roomId) ?? widget.room; late Client sendingClient; @@ -358,6 +359,13 @@ class ChatController extends State { String? scrollToEventIdMarker; + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state != AppLifecycleState.resumed) return; + if (!_scrolledUp) return; + setReadMarker(); + } + Future? _setReadMarkerFuture; void setReadMarker({String? eventId}) { @@ -1169,6 +1177,7 @@ class ChatController extends State { void onInputBarChanged(String text) { if (_inputTextIsEmpty != text.isEmpty) { + setReadMarker(); setState(() { _inputTextIsEmpty = text.isEmpty; });