Telegram-iOS/submodules/GalleryUI/Sources
isaac 0050cc7a08 Rich-message media in gallery/shared-media/preview pipelines via Message.effectiveMedia
Add Message/EngineMessage.effectiveMedia (= message.media when non-empty, else
richText.instantPage.allMedia()) and route the media-consuming sites through it
so a rich message's instant-page media participates in the same pipelines as
normal message.media: shared-media grids/file-rows, search media grid, gallery
open + item nodes + footer, the peer audio/voice playlist, secret-media preview,
resource-by-id resolution, recent downloads, downloaded-media store, delete-time
resource cleanup, cache-usage stats, the in-chat download manager, and the
context-menu / share actions (Save to Camera Roll, copy image, save audio/music
to files). For normal messages effectiveMedia == message.media, so each swap is
behavior-preserving; rich messages render their own bubble via
ChatMessageRichDataBubbleContentNode (not the text/file bubbles), so those paths
are deliberately untouched, as are the forward path (the attribute travels with
the forward) and the markdown-based rich-edit path. First-media scope for now.

See docs/instantpage-richtext.md for the full architecture + invariants.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 23:46:56 +02:00
..
Items Rich-message media in gallery/shared-media/preview pipelines via Message.effectiveMedia 2026-06-04 23:46:56 +02:00
ChatItemGalleryFooterContentNode.swift Rich-message media in gallery/shared-media/preview pipelines via Message.effectiveMedia 2026-06-04 23:46:56 +02:00
ChatVideoGalleryItemScrubberView.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
GalleryController.swift Rich-message media in gallery/shared-media/preview pipelines via Message.effectiveMedia 2026-06-04 23:46:56 +02:00
GalleryControllerNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
GalleryControllerPresentationState.swift Various improvements 2020-02-11 10:34:00 +04:00
GalleryFooterContentNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
GalleryFooterNode.swift Various improvements 2026-03-13 14:54:44 +01:00
GalleryItem.swift Video avatar fixes 2020-06-24 18:06:08 +03:00
GalleryItemNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
GalleryItemTransitionNode.swift Various improvements 2025-02-18 14:43:23 +01:00
GalleryNavigationCheckNode.swift Switch to new check node implementation 2021-02-08 21:55:41 +04:00
GalleryNavigationRecipientNode.swift Refactor PasswordSetupUI, PassportUI, GalleryUI and related modules 2019-08-12 19:18:43 +03:00
GalleryPagerNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
GalleryRateToastAnimationComponent.swift Video improvements 2024-10-29 14:13:09 +01:00
GalleryRateToastComponent.swift Video improvements 2024-11-14 21:14:29 +04:00
GalleryThumbnailContainerNode.swift Various improvements 2026-05-28 16:50:05 +02:00
GalleryTitleView.swift Various improvements 2026-06-04 01:44:36 +02:00
GalleryVideoDecoration.swift Experimental hls implementation 2024-09-27 20:27:11 +08:00
RecognizedTextSelectionNode.swift [WIP] Conference 2025-03-19 18:55:24 +01:00
SecretMediaPreviewController.swift Rich-message media in gallery/shared-media/preview pipelines via Message.effectiveMedia 2026-06-04 23:46:56 +02:00
SecretMediaPreviewFooterContentNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ZoomableContentGalleryItemNode.swift Glass 2026-02-13 17:08:48 +04:00