pageHidden method
The browser hid or showed the tab: hidden for hiddenGrace, the session closes, and showing it opens one again.
Implementation
void pageHidden(bool hidden) {
if (hidden == _hidden) return;
_hidden = hidden;
_closeTimer?.cancel();
_closeTimer = hidden ? Timer(hiddenGrace, _closeIdleSession) : null;
if (hidden) return;
// A sleeping laptop or a changed Wi-Fi leaves a socket that looks open and carries nothing.
if (_closedWhileHidden) {
_closedWhileHidden = false;
_client.reconnect();
return;
}
_ensureSession();
}