Commit graph

30044 commits

Author SHA1 Message Date
Isaac
ad85ef6517 Postbox → TelegramEngine refactor: wave 1
Drop direct `import Postbox` from four leaf consumer submodules, routing
data access through TelegramEngine/TelegramCore. Behavior-preserving.

Consumers migrated:
- ChatInterfaceState
- ChatSendMessageActionUI
- ContactListUI
- DrawingUI

TelegramCore additions (typealiases + one EngineData item):
- EngineMemoryBuffer, EnginePostboxDecoder, EnginePostboxEncoder,
  EngineAdaptedPostboxDecoder (narrow utility aliases for coding support)
- EngineData.Item.Configuration.ContactsSettings

Six planned modules were abandoned in wave 1 with reasons recorded in
the plan: ActionSheetPeerItem, ChatListSearchRecentPeersNode,
DirectMediaImageCache, FetchManagerImpl, GalleryData, ICloudResources.
Each either has a public API that leaks `Postbox`/`Account`/`MediaBox`
(banned umbrella-type aliases) or cascades into out-of-wave modules.

CLAUDE.md now records the wave rules, typealias cheat sheet, and the
wave-selection guidance learned from this pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 23:16:45 +02:00
Isaac
40112d3cff Add implementation plan: Postbox → TelegramEngine wave 1
10 tasks, one per chosen leaf module, each with inventory-map-edit-
build-commit steps. Common build command, commit template, and
failure-handling rules centralized in a Background section.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 18:32:51 +02:00
Isaac
ec24ec7dbb Tighten wave-1 spec: clarify engine typealias rules
TelegramCore does not re-export Postbox, so dropping the Postbox
import forces every Postbox-type reference to switch to an engine
typealias. Spell this out, and clarify that new typealiases are in
scope while new engine wrapper structs are not.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 18:24:13 +02:00
Isaac
5d40b8ca33 Add design: Postbox → TelegramEngine refactor, wave 1
Covers the first 10 single-import leaf submodules, in bottom-up
dependency order, with full-build verification per module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 18:22:52 +02:00
Isaac
bf21bca206 Merge commit '31e3a7dc79'
# Conflicts:
#	submodules/TelegramCore/Sources/PendingMessages/PendingMessageUploadedContent.swift
#	submodules/TelegramCore/Sources/TelegramEngine/Messages/Polls.swift
#	submodules/TelegramCore/Sources/TelegramEngine/Messages/Translate.swift
2026-04-16 17:52:38 +02:00
Ilya Laktyushin
31e3a7dc79 Fix build 2026-04-16 02:36:03 +02:00
Ilya Laktyushin
8aa421e08b Fix build 2026-04-16 02:00:16 +02:00
Ilya Laktyushin
8b7e294fc6 Fix build 2026-04-16 01:41:31 +02:00
Ilya Laktyushin
0df319742a Update API 2026-04-16 01:18:22 +02:00
Ilya Laktyushin
efb1110987 Fix build 2026-04-16 00:20:06 +02:00
Ilya Laktyushin
352d9f24e8 Fix build 2026-04-16 00:03:09 +02:00
Ilya Laktyushin
701d27c0a9 Fix build 2026-04-15 23:50:11 +02:00
Ilya Laktyushin
8f1e024aef Various fixes 2026-04-15 23:12:53 +02:00
Isaac
0095bfad39 Temp 2026-04-15 13:18:46 +02:00
Isaac
a4e9b0468e Merge commit '314f02d36d' 2026-04-14 15:34:04 +02:00
Isaac
2de1052c3d Cleanup 2026-04-14 15:33:58 +02:00
Isaac
976c2de599 Temp 2026-04-14 15:33:19 +02:00
Isaac
430ea53ed8 Add per-character glyph rects to InteractiveTextNodeLine and implement reveal animation
- Replace characterToGlyphMapping with characterRects ([CGRect]?) on InteractiveTextNodeLine
- Add computeCharacterRects flag to InteractiveTextNodeLayoutArguments
- Compute actual glyph bounding boxes via CTFontGetBoundingRectsForGlyphs during layout
- Implement computeRevealedLines, layoutForCharacterCount, sizeForCharacterCount
- Implement updateRevealCharacterCount to distribute character budget across content item layers
- Update snippet layers to animate per-character rects with SnippetLayer tracking character index
- Mask limit driven by lowest animating snippet index for correct reveal ordering
- Fix listViewAnimationCurveEaseIn to match iOS default ease-in curve (0.42, 0.0, 1.0, 1.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:31:49 +02:00
Isaac
9fb219645b Add design spec for character rects in InteractiveTextNodeLine
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:24:54 +02:00
Ilya Laktyushin
314f02d36d Various fixes 2026-04-14 04:53:01 +02:00
Ilya Laktyushin
64aa306cf9 Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios 2026-04-14 03:34:28 +02:00
Ilya Laktyushin
22df2dbdb9 Various fixes 2026-04-14 03:33:34 +02:00
Isaac
41d6f727e0 Various improvements 2026-04-10 17:21:36 +02:00
Isaac
d6d0ab1a7f Merge branch 'temp-513'
# Conflicts:
#	versions.json
2026-04-10 14:30:58 +02:00
Isaac
d575824ab4 Various improvements 2026-04-10 14:30:23 +02:00
Isaac
d2293b8e09 Xcode 26.4 build crashes on iOS 15/16 2026-04-09 15:02:17 +02:00
Isaac
fc57219d1c Unbump xcode 2026-04-09 14:38:07 +02:00
Isaac
be6c32ef9c Trigger build 2026-04-07 21:44:48 +02:00
Isaac
0cbbf10eea Update entitlements 2026-04-07 21:13:31 +02:00
Isaac
45984d2a12 Update deploy 2026-04-07 20:48:44 +02:00
Isaac
41c6274252 Merge branch 'master' into beta
# Conflicts:
#	submodules/TelegramUI/Components/Chat/ChatMessagePollBubbleContentNode/Sources/ChatMessagePollBubbleContentNode.swift
#	versions.json
2026-04-07 20:45:57 +02:00
Isaac
80d7198230 Merge commit '9d2094fe23' 2026-04-07 20:32:42 +02:00
Isaac
f89246fd4b Bump version 2026-04-07 20:32:32 +02:00
Ilya Laktyushin
9d2094fe23 Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios 2026-04-07 19:21:40 +02:00
Ilya Laktyushin
5c814c503e Live photo saving 2026-04-07 19:16:22 +02:00
Isaac
203047a464 Update deploy 2026-04-07 18:50:47 +02:00
Isaac
bef7b70e55 Merge commit '05d64c58b2' 2026-04-07 16:48:17 +02:00
Isaac
d89a4a79cf Various improvements 2026-04-07 16:48:11 +02:00
Isaac
278f3ca420 Various improvements 2026-04-07 16:47:08 +02:00
Isaac
64c23acd43 Fix url handling 2026-04-07 16:46:54 +02:00
Isaac
3d6fabea33 Update safari 2026-04-07 16:37:17 +02:00
Isaac
9338361543 fix: correct Swift-ObjC bridging in subcodec animation modules
Fix compilation errors in SubcodecAnimationCacheImpl and
SubcodecMultiAnimationRendererImpl: NSData->Data sink closure types,
withSink->sink argument labels for advanceFrame/emitFrameIfNeeded,
unused variable warning, and redundant Void return assignment.
Add both modules as deps to ChatEntityKeyboardInputNode to verify
they compile in the full build.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 12:35:54 +02:00
Isaac
d6d633e296 feat: add SubcodecMultiAnimationRendererImpl public class with MultiAnimationRenderer conformance
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 12:20:32 +02:00
Isaac
dc20b265d1 feat: add SubcodecMultiAnimationRendererImpl internal types - SurfaceGroup, SpriteContext, frame extraction
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 12:18:41 +02:00
Isaac
7052e7e3ea feat: add SubcodecAnimationCacheImpl public class with protocol conformance and subcodec API
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 12:16:37 +02:00
Isaac
095c2940a8 feat: add SubcodecAnimationCacheImpl writer and ARGB-to-YUV conversion
Implements utility helpers, BT.709 ARGB→YUV 4:2:0 conversion with alpha
un-premultiplication, and AnimationCacheItemWriterImpl that feeds frames
to SCSprite and writes metadata alongside the .mbs output.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 12:13:23 +02:00
Isaac
e8dc34c11b feat: add BUILD files for SubcodecAnimationCacheImpl and SubcodecMultiAnimationRendererImpl 2026-04-07 12:11:27 +02:00
Isaac
d147c63b68 Refactoring 2026-04-07 11:31:22 +02:00
Isaac
95a03d9931 subcodec 2026-04-07 10:44:45 +02:00
Ilya Laktyushin
05d64c58b2 Fix 2026-04-07 10:10:17 +02:00