mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 15:11:58 +01:00
A scrobble writes albums.playCount/played, which invalidates the album list's PagingSource. Room then refreshes from anchor - initialLoadSize/2, and with placeholders off that page is the presented list: LazyPagingItems index zero becomes the page's first album, so the grid re-groups its rows and every cover moves by (oldStart - newStart) % 3 columns, while the last row's width becomes the loaded count % 3 instead of the library size % 3. Enable placeholders for the album pager so an album's index is its absolute position, and draw a placeholder cell for an unloaded slot. The other lists are single column, so a reload re-anchors them by key and they never shifted. This only keeps the grid still; the reloads themselves are still unnecessary and are tracked separately.