player: heartbeat indipendente + gallery sync non-bloccante + indicatore sync (box lenti / DS04) #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/heartbeat-gallery-decouple"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problema
Su box lenti (RK3288 / Dahua DS04) con gallery pesante (4K + video) la piattaforma vedeva il player disconnesso e i cambi grafica richiedevano un riavvio manuale.
Causa (diagnosticata a terra sul DS04):
syncGalleryri-calcolava l'MD5 dell'intera gallery DUE volte a ogni chiamata (~2 min su 4K/video) — e veniva chiamata anche a ogni tick del metronomo (~60s).Fix
PlayerActivity: heartbeat su coroutine dedicata (startHeartbeat, ogni 60s), decouplata dal loop di sync. Rimosso l'heartbeat dal poll loop.applyConfig: nuovo flagsyncGalleryOnApply(defaulttrue); i re-render (metronomo / page-navigation / cycle-ended) passanofalse→ niente re-sync gallery a ogni cambio pagina.GalleryRepository:tryLockinvece diwithLock(skip se una sync è già in corso, niente accodamento); cache MD5 per size+mtime (no re-hash dei file invariati); salta la 2ª passata di hashing se nulla è cambiato.Test (verificato a terra sul DS04)
Heartbeat 200 ogni 60s anche durante la sync gallery → piattaforma vede il player online; cambi grafica applicati senza restart. Build + test unit verdi.
Migliora tutta la flotta su hardware lento, non solo il DS04.
Aggiunta: indicatore sync gallery
Piccola pill discreta in basso a destra (spinner + "Sincronizzazione…"), mostrata SOLO mentre la gallery scarica file davvero. Verificato su TV T982 (Android 11) e DS04 (Android 8.1).
player: heartbeat indipendente + gallery sync non-bloccante (box lenti / DS04)to player: heartbeat indipendente + gallery sync non-bloccante + indicatore sync (box lenti / DS04)