[UnigramDev/Unigram/playback-rework](https://github.com/UnigramDev/Unigram/tree/playback-rework) • [1e3ece3](https://github.com/UnigramDev/Unigram/commit/1e3ece33cf56f76dbfee81d3a346610ee55aa35b) • _1 files, +176/-27_
Show album covers in the system media transport controls

The cover is the album cover thumbnail TDLib provides, or the external
variant closest to the size the transport renders when the audio file
carries none. Voice and video notes have no cover and show nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/playback-rework](https://github.com/UnigramDev/Unigram/tree/playback-rework) • [920cc42](https://github.com/UnigramDev/Unigram/commit/920cc424c66b71eb71a09246202269af8e314e8d) • _2 files, +103/-49_
Fix threading around the transport controls and the player

The transport belongs to the view it was acquired for, so every write to
it now goes back to that view's thread; it can otherwise be driven from a
second window's thread once a Clear has recreated the player there.

Player creation takes the same lock the rest of the player access does,
and repeat mode and shuffle are persisted and mirrored to the transport.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/playback-rework](https://github.com/UnigramDev/Unigram/tree/playback-rework) • [af08bff](https://github.com/UnigramDev/Unigram/commit/af08bffca3ae73a7038341a792631e13f12de57d) • _3 files, +487/-57_
Grow the playback playlist as it is played

The playlist was one search of up to a hundred messages around the one
that started it, and the profile audio one was the first hundred audios
with the played one moved to the front. Both now page in as the current
track nears either end, through a source that owns its cursors.

A caller holding a profile source and the audios it loaded can hand both
over, so the playlist keeps the profile order instead of starting again.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[UnigramDev/Unigram/playback-rework](https://github.com/UnigramDev/Unigram/tree/playback-rework) • [d09471c](https://github.com/UnigramDev/Unigram/commit/d09471c935265230b7900829fc2deacd19439884) • _2 files, +19/-4_
Start a handed-over profile playlist past the items it came with

Paging profile audio is by position, so a caller that hands over items
without the source that loaded them left the cursor at zero and the first
page repeated them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[#unigram](?q=%23unigram)