Files
aiturk-mobil/app/src/main/java/com/m57/hermescontrol/ui/logs
M57andM57 d4320a9289 fix(#425): live log updates + auto-scroll (#428)
* fix(#425): log screen doesn't auto-scroll on initial load

Replace animateScrollToItem(filteredLogs.size) with
scrollToItem(Int.MAX_VALUE). animateScrollToItem requires the
LazyColumn to have completed layout before it can calculate
animation targets — on initial load the list hasn't laid out
yet, so the scroll silently fails. scrollToItem is instant and
clamps Int.MAX_VALUE to the last item, working reliably even
on first composition.

* feat(#425): add auto-refresh polling for live log updates

LogsViewModel: add @Volatile loadInProgress guard to prevent
concurrent loads, and startAutoRefresh()/stopAutoRefresh() that
polls GET /api/logs every 5 seconds via viewModelScope coroutine.

LogsScreen: wire up DisposableEffect(Unit) to start polling when
the screen is composed and stop when disposed — so polling only
runs while the user is viewing the log screen.

Combined with scrollToItem(Int.MAX_VALUE) from previous commit,
logs now both auto-refresh AND auto-scroll to the latest entry.

* fix(#425): add missing viewModelScope import for CI build

LogsViewModel used viewModelScope directly in startAutoRefresh()
but never imported it — the original code only used it indirectly
via safeLaunchLoad which has its own import in ViewModelExt.kt.

---------

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
2026-06-30 16:29:21 +03:00
..