mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-05-21 18:20:41 +00:00
7b2b74e79b
First build-verified unused-import sweep: speculatively dropped import Postbox from 782 consumer files (plain ^import Postbox$ lines, excluding TelegramCore/Postbox/TelegramApi paths), iterated 18 full project builds with --continueOnError, restored the import on every file that failed to compile. 183 drops survived; 189 consumer modules newly Postbox-free. Bundled: spec + plan + C1 atomic batch drop + C2 CLAUDE.md outcome and permanent methodology guidance under Wave-selection. The methodology subsection captures the reusable playbook (--continueOnError is essential, dependency graphs are deep so expect many iterations, pattern-based preemptive restores accelerate convergence, and CLAUDE.md's engine typealias cheat sheet arrows are migration targets rather than typealiases in TelegramCore). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
35 lines
1.1 KiB
Swift
35 lines
1.1 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import SwiftSignalKit
|
|
import TelegramCore
|
|
import AsyncDisplayKit
|
|
import Display
|
|
import AccountContext
|
|
import ChatControllerInteraction
|
|
import ChatPresentationInterfaceState
|
|
import LegacyMediaPickerUI
|
|
|
|
extension ChatControllerImpl {
|
|
func openStickerEditing(file: TelegramMediaFile) {
|
|
var emoji: [String] = []
|
|
for attribute in file.attributes {
|
|
if case let .Sticker(displayText, _, _) = attribute {
|
|
emoji = [displayText]
|
|
}
|
|
}
|
|
|
|
let controller = self.context.sharedContext.makeStickerEditorScreen(
|
|
context: self.context,
|
|
source: (file, emoji),
|
|
mode: .generic(canSend: canSendMessagesToChat(self.presentationInterfaceState)),
|
|
transitionArguments: nil,
|
|
completion: { file, _, commit in
|
|
commit()
|
|
let _ = self.controllerInteraction?.sendSticker(.standalone(media: file), false, false, nil, false, nil, nil, nil, [])
|
|
},
|
|
cancelled: {}
|
|
)
|
|
self.push(controller)
|
|
}
|
|
}
|