Telegram-iOS/submodules/BrowserUI/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
..
BrowserAddressBarComponent.swift Glass 2026-01-25 00:31:18 +08:00
BrowserAddressListComponent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserAddressListItemComponent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserBookmarksScreen.swift Various improvements 2026-05-28 16:50:05 +02:00
BrowserContent.swift Local instant view 2024-08-29 11:44:05 +04:00
BrowserDocumentContent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserExceptionDomainAlertContentNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
BrowserFontSizeContextMenuItem.swift Initial in-app browser implementation 2023-02-18 00:59:18 +04:00
BrowserInstantPageContent.swift InstantPage V2: audio/music rendering, playback, and file-bubble styling 2026-06-02 17:44:45 +02:00
BrowserMarkdown.swift Custom emoji in markdown rich messages (send + round-trip) 2026-05-31 17:51:37 +02:00
BrowserNavigationBarComponent.swift Various improvements 2026-02-19 21:53:26 +04:00
BrowserPdfContent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserReadability.swift Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios 2026-05-29 10:01:53 +02:00
BrowserRecentlyVisited.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserScreen.swift Merge commit 'c64653ed37' 2026-05-14 12:45:26 +02:00
BrowserSearchBarComponent.swift Various improvements 2025-12-29 10:05:51 +04:00
BrowserTitleBarComponent.swift Glass 2026-01-25 00:31:18 +08:00
BrowserToolbarComponent.swift Various improvements 2026-04-22 23:03:51 +02:00
BrowserWebContent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
InstantPageToMarkdown.swift Custom emoji in markdown rich messages (send + round-trip) 2026-05-31 17:51:37 +02:00
SectionHeaderComponent.swift Browser improvements 2024-07-25 17:04:44 +02:00
Utils.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00