mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Port V1's collage and slideshow InstantPage blocks into the V2 renderer (previously grey-box placeholders). - Collage: layoutCollage computes the mosaic (MosaicLayout, the grouped-message engine) over inner image/video sizes and flattens it into existing top-level .mediaImage/.mediaVideo items + a caption, so gallery / reveal-cost / registry / hidden-media all handle the cells with no collage-specific code. Right-edge cells bleed 4pt for the bubble's rounded clip. - Slideshow: a new .slideshow laid-out item + InstantPageV2SlideshowView, an eager paged carousel (UIScrollView + PageControlNode) of InstantPageImageNode pages, wired through frame/offsetBy/collectMedias/stableId/reuse/makeItemView and the reveal-cost non-text list. - Gallery transitions generalized onto InstantPageItemView via instantPageTransitionNode(for:)/instantPageUpdateHiddenMedia(_:) (default nil/no-op; explicit per-class witnesses on the 4 static media views, the slideshow forwards to its live pages) so the multi-media slideshow can participate alongside single-media views. Docs: document both in docs/instantpage-richtext.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| InstantImageGalleryItem.swift | ||
| InstantPageAnchorItem.swift | ||
| InstantPageArticleItem.swift | ||
| InstantPageArticleNode.swift | ||
| InstantPageAudioItem.swift | ||
| InstantPageAudioNode.swift | ||
| InstantPageChecklistMarkerItem.swift | ||
| InstantPageContentNode.swift | ||
| InstantPageController.swift | ||
| InstantPageControllerNode.swift | ||
| InstantPageDetailsItem.swift | ||
| InstantPageDetailsNode.swift | ||
| InstantPageExternalMediaResource.swift | ||
| InstantPageFeedbackItem.swift | ||
| InstantPageFeedbackNode.swift | ||
| InstantPageFormulaItem.swift | ||
| InstantPageGalleryController.swift | ||
| InstantPageGalleryFooterContentNode.swift | ||
| InstantPageImageItem.swift | ||
| InstantPageImageNode.swift | ||
| InstantPageItem.swift | ||
| InstantPageLayout.swift | ||
| InstantPageLayoutSpacings.swift | ||
| InstantPageLinkSelectionView.swift | ||
| InstantPageMath.swift | ||
| InstantPageMedia.swift | ||
| InstantPageMediaOpen.swift | ||
| InstantPageMediaPlaylist.swift | ||
| InstantPageMultiTextAdapter.swift | ||
| InstantPageNavigationBar.swift | ||
| InstantPageNode.swift | ||
| InstantPagePeerReferenceItem.swift | ||
| InstantPagePeerReferenceNode.swift | ||
| InstantPagePlayableVideoItem.swift | ||
| InstantPagePlayableVideoNode.swift | ||
| InstantPageReferenceController.swift | ||
| InstantPageReferenceControllerNode.swift | ||
| InstantPageRenderer.swift | ||
| InstantPageScrollableNode.swift | ||
| InstantPageSettingsBacklightItemNode.swift | ||
| InstantPageSettingsButtonItemNode.swift | ||
| InstantPageSettingsFontFamilyItemNode.swift | ||
| InstantPageSettingsFontSizeItemNode.swift | ||
| InstantPageSettingsItemNode.swift | ||
| InstantPageSettingsItemTheme.swift | ||
| InstantPageSettingsNode.swift | ||
| InstantPageSettingsSwitchItemNode.swift | ||
| InstantPageSettingsThemeItemNode.swift | ||
| InstantPageShapeItem.swift | ||
| InstantPageSlideshowItem.swift | ||
| InstantPageSlideshowItemNode.swift | ||
| InstantPageStoredState.swift | ||
| InstantPageSubContentNode.swift | ||
| InstantPageTableItem.swift | ||
| InstantPageTextItem.swift | ||
| InstantPageTextSelectionNode.swift | ||
| InstantPageTextStyleStack.swift | ||
| InstantPageTheme.swift | ||
| InstantPageTile.swift | ||
| InstantPageTileNode.swift | ||
| InstantPageV2InlineImageView.swift | ||
| InstantPageV2Layout.swift | ||
| InstantPageV2MediaViews.swift | ||
| InstantPageV2RevealCost.swift | ||
| InstantPageV2SlideshowView.swift | ||
| InstantPageWebEmbedItem.swift | ||
| InstantPageWebEmbedNode.swift | ||