Next channel is slow and shows nothing: one press should show the first text #96

Closed
opened 2026-10-18 09:57:05 +00:00 by littlefox · 1 comment
Owner

User, testing on Android against kom.lysator.liu.se: "When first logging in the app says something along the lines of 'To start reading, press the button below (or press space)' but doing that nothing happens. The button is called 'Go to next conference' and is terribly slow, making the user think nothing is happening."

Cause: entering a conference recounts its unread texts from scratch twice, once in Kom::enter_conf (self-heal) and once in the UI (unread_count), paging local-to-global 100 texts per call, before anything changes on screen. After all that, only a status line changes; a second press is needed to see a text. The button gives no sign that it's working.

Fix: use the cached count and recount in the background; show the first unread text on the same press; show that the button is busy.

User, testing on Android against kom.lysator.liu.se: "When first logging in the app says something along the lines of 'To start reading, press the button below (or press space)' but doing that nothing happens. The button is called 'Go to next conference' and is terribly slow, making the user think nothing is happening." Cause: entering a conference recounts its unread texts from scratch twice, once in Kom::enter_conf (self-heal) and once in the UI (unread_count), paging local-to-global 100 texts per call, before anything changes on screen. After all that, only a status line changes; a second press is needed to see a text. The button gives no sign that it's working. Fix: use the cached count and recount in the background; show the first unread text on the same press; show that the button is busy.
Author
Owner

Merged in #108. Verified: tools/e2e.sh 169/169 (desktop, Android, iPhone); CI run #176 green; clippy native+wasm clean; devserver tests pass. Entering a channel now shows its first post on the same press, uses the cached count (recount runs in the background afterwards), and the button gets a spinner after 300 ms.

Merged in #108. Verified: tools/e2e.sh 169/169 (desktop, Android, iPhone); CI run #176 green; clippy native+wasm clean; devserver tests pass. Entering a channel now shows its first post on the same press, uses the cached count (recount runs in the background afterwards), and the button gets a spinner after 300 ms.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
littlefox/neokom#96
No description provided.