mirror of
https://github.com/MarekWo/mc-webui.git
synced 2026-08-07 01:03:15 +02:00
fix: refill the message gap left by a backgrounded app
The chat view only ever grew by socket push, so anything that arrived while the connection was down was never drawn. Android tears the connection down behind a locked screen, and the wrapper keeps the same page alive for days, so the list stopped at the last message that got through until the app was force-stopped. A browser tab hid the same bug by reloading the page on resume. Every way back from a gap now re-reads the list from the server: the socket reconnecting, the page becoming visible after more than a glance away, a heartbeat noticing its own tick arrived far too late (the page was frozen), a new Refresh item in the menu, and window.__mcAppResumed, which the wrapper calls from onResume since a WebView is not guaranteed to report the page as hidden at all. Direct messages get the same treatment. Verified in Chrome against the local container: all five triggers fire a resync, with no page errors and the list intact afterwards. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -10,7 +10,10 @@ For deep technical notes, see [architecture.md](architecture.md). For the full g
|
||||
|
||||
## Unreleased
|
||||
|
||||
_Nothing yet since 2.4.0._
|
||||
### Fixes
|
||||
|
||||
- **Messages no longer go missing after the app has been in the background.** Coming back to a minimised app — or to a phone that had been asleep — could show a chat that quietly stopped at whatever message arrived last before the screen went off, with everything since then missing until the app was force-stopped and reopened. New messages reach an open page over a live connection, and Android tears that connection down while the app sits in the background; nothing then went back to ask the server what had been missed. Now every way back from a gap re-reads the list: the connection coming back, the app returning to the foreground, and a heartbeat that notices when the page has been frozen. The same applies to direct messages, and to a browser tab that lost its network for a while.
|
||||
- **A Refresh item in the menu.** The browser's pull-to-refresh has no equivalent in the Android app, so there is now a **Refresh** entry at the top of the menu that reloads the messages from the server on demand — in the app, and everywhere else too.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user