setVisible method
- bool visible
The conversation is (not) on screen. Visible clears unread and sends a read receipt for everything loaded.
Implementation
void setVisible(bool visible) {
if (_state.visible == visible) return;
_emit(_state.copyWith(visible: visible, unread: visible ? 0 : _state.unread));
final conv = _state.conversation;
if (visible && conv != null && _state.timeline.lastSeq > 0 && _state.foreground) {
_send(ClientFrame.read(conversationId: conv.id, upToSeq: _state.timeline.lastSeq));
}
if (_socket?.ready ?? false) {
_send(ClientFrame.appState(foreground: _state.foreground, conversationId: visible ? conv?.id : null));
}
}