Telegram-iOS/submodules/TelegramCore/Sources
isaac f6da30da70 InstantPage V2: audio/music rendering, playback, and file-bubble styling
Render and play InstantPageBlock.audio in the InstantPage V2 renderer
(rich-data message bubbles + the rich send preview), where audio was
previously an inert grey placeholder.

- New InstantPageV2AudioContentNode replicates the standard music message
  bubble (ChatMessageInteractiveFileNode's music layout): a SemanticStatusNode
  control (album art via playerAlbumArt + play/pause) with a download/progress
  overlay, title + "duration · performer" lines, exact fonts/colors from
  theme.chat.message.{incoming|outgoing}. Tap is driven by a
  UITapGestureRecognizer (ASControl .touchUpInside is cancelled by the chat
  ListView's gesture system). V1's InstantPageAudioNode is unchanged.
- Playback runs on InstantPageMediaPlaylist with a discriminated, message-scoped
  InstantPageMediaPlaylistId (.instantPage / .richMessage) so concurrent
  rich-message audio bubbles don't collide; the big control's play/pause comes
  from filteredPlaylistState, the overlay's download/progress from
  messageMediaFileStatus, and fetch goes through the fetch manager.
- Rich-message audio fetches via a MessageReference (threaded through the V2
  render context) instead of the synthesized webpage; FetchedMediaResource's
  .message revalidation arm now also searches RichTextMessageAttribute instant
  pages, so a stale instant-page audio/image reference can recover. Corrected a
  dormant inverted InstantPagePlaylistLocation.isEqual.
- New .mediaAudio laid-out item + layout/reveal-cost arms; the audio block lays
  out full-width at the file node's music normHeight.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 17:44:45 +02:00
..
Account Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios 2026-05-29 09:24:16 +02:00
AccountManager Postbox -> TelegramEngine waves 94-102 (squashed) 2026-04-26 02:46:44 +04:00
ApiUtils Implement InstantPageBlock.thinking (pageBlockThinking) parsing & serialization 2026-05-29 16:07:09 +02:00
MacOS Refactor constructor use sites for types 480-499 to struct pattern 2026-01-18 23:47:18 +08:00
Network InstantPage V2: audio/music rendering, playback, and file-bubble styling 2026-06-02 17:44:45 +02:00
PendingMessages WIP 2026-05-20 00:33:08 +08:00
SecretChats constTimeIsEqual 2026-02-13 18:13:26 +04:00
Settings Various fixes 2026-05-29 16:46:38 +02:00
State Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios 2026-05-29 09:24:16 +02:00
Statistics Update API 2026-04-16 01:18:22 +02:00
SyncCore Implement InstantPageBlock.thinking (pageBlockThinking) parsing & serialization 2026-05-29 16:07:09 +02:00
TelegramEngine Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios 2026-05-29 10:01:53 +02:00
Utils WIP 2026-05-20 00:33:08 +08:00
Authorization.swift Merge commit 'c64653ed37' 2026-05-14 12:45:26 +02:00
ForumChannels.swift Postbox -> TelegramEngine wave 16a: move EngineMessageHistoryThread to TelegramCore 2026-04-20 21:26:32 +02:00
LoadedPeer.swift Refactor constructor use sites for types 460-479 to struct pattern 2026-01-18 23:36:22 +08:00
LoadedPeerFromMessage.swift Refactor constructor use sites for types 480-499 to struct pattern 2026-01-18 23:47:18 +08:00
SplitTest.swift Merge commit 'c64653ed37' 2026-05-14 12:45:26 +02:00
Suggestions.swift Temp 2025-12-02 19:30:48 +08:00
Themes.swift Merge commit 'c64653ed37' 2026-05-14 12:45:26 +02:00
UpdatePeers.swift Update API 2026-05-24 00:24:21 +04:00
Wallpapers.swift Merge commit 'c64653ed37' 2026-05-14 12:45:26 +02:00
WebpagePreview.swift Merge commit 'c64653ed37' 2026-05-14 12:45:26 +02:00