diff --git a/Telegram/BUILD b/Telegram/BUILD index 94ae56d601..c5e2d3508e 100644 --- a/Telegram/BUILD +++ b/Telegram/BUILD @@ -1208,7 +1208,7 @@ swift_library( "-warnings-as-errors", ], deps = [ - "//submodules/TelegramUI:TelegramUI", + "//submodules/TelegramUI", "//submodules/TelegramUI/Components/ShareExtensionContext" ], ) diff --git a/submodules/ChatImportUI/BUILD b/submodules/ChatImportUI/BUILD index 0fe6a7232f..2ee541d7da 100644 --- a/submodules/ChatImportUI/BUILD +++ b/submodules/ChatImportUI/BUILD @@ -26,6 +26,7 @@ swift_library( "//submodules/ConfettiEffect:ConfettiEffect", "//submodules/TelegramUniversalVideoContent:TelegramUniversalVideoContent", "//submodules/SolidRoundedButtonNode:SolidRoundedButtonNode", + "//submodules/ActivityIndicator", ], visibility = [ "//visibility:public", diff --git a/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift b/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift index 863aa2aee5..0442a760a1 100644 --- a/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift +++ b/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift @@ -15,6 +15,7 @@ import MimeTypes import ConfettiEffect import TelegramUniversalVideoContent import SolidRoundedButtonNode +import ActivityIndicator private func fileSize(_ path: String, useTotalFileAllocatedSize: Bool = false) -> Int64? { if useTotalFileAllocatedSize { @@ -886,3 +887,48 @@ public final class ChatImportActivityScreen: ViewController { } } } + +public final class ChatImportTempController: ViewController { + override public var _presentedInModal: Bool { + get { + return true + } set(value) { + } + } + + private let activityIndicator: ActivityIndicator + + public init(presentationData: PresentationData) { + let presentationData = presentationData + + self.activityIndicator = ActivityIndicator(type: .custom(presentationData.theme.list.itemAccentColor, 22.0, 1.0, false)) + + super.init(navigationBarPresentationData: NavigationBarPresentationData(presentationData: presentationData)) + + self.title = presentationData.strings.ChatImport_Title + self.navigationItem.setLeftBarButton(UIBarButtonItem(title: presentationData.strings.Common_Cancel, style: .plain, target: self, action: #selector(self.cancelPressed)), animated: false) + } + + required public init(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc private func cancelPressed() { + //self?.getExtensionContext()?.completeRequest(returningItems: nil, completionHandler: nil) + } + + override public func displayNodeDidLoad() { + super.displayNodeDidLoad() + + self.displayNode.addSubnode(self.activityIndicator) + } + + override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { + super.containerLayoutUpdated(layout, transition: transition) + + let indicatorSize = self.activityIndicator.measure(CGSize(width: 100.0, height: 100.0)) + let navigationHeight = self.navigationLayout(layout: layout).navigationFrame.maxY + transition.updateFrame(node: self.activityIndicator, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - indicatorSize.width) / 2.0), y: navigationHeight + floor((layout.size.height - navigationHeight - indicatorSize.height) / 2.0)), size: indicatorSize)) + } +} + diff --git a/submodules/TelegramUI/Components/ShareExtensionContext/Sources/ShareExtensionContext.swift b/submodules/TelegramUI/Components/ShareExtensionContext/Sources/ShareExtensionContext.swift index 954f1b2f0c..7066c6aff7 100644 --- a/submodules/TelegramUI/Components/ShareExtensionContext/Sources/ShareExtensionContext.swift +++ b/submodules/TelegramUI/Components/ShareExtensionContext/Sources/ShareExtensionContext.swift @@ -733,54 +733,11 @@ public class ShareRootControllerImpl { if let mainFile = mainFile, let mainFileHeader = extractTextFileHeader(path: mainFile.path) { let _ = mainFileHeader - final class TempController: ViewController { - override public var _presentedInModal: Bool { - get { - return true - } set(value) { - } - } - - private let activityIndicator: ActivityIndicator - - init(environment: ShareControllerEnvironment) { - let presentationData = environment.presentationData - - self.activityIndicator = ActivityIndicator(type: .custom(presentationData.theme.list.itemAccentColor, 22.0, 1.0, false)) - - super.init(navigationBarPresentationData: NavigationBarPresentationData(presentationData: presentationData)) - - self.title = presentationData.strings.ChatImport_Title - self.navigationItem.setLeftBarButton(UIBarButtonItem(title: presentationData.strings.Common_Cancel, style: .plain, target: self, action: #selector(self.cancelPressed)), animated: false) - } - - required public init(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - @objc private func cancelPressed() { - //self?.getExtensionContext()?.completeRequest(returningItems: nil, completionHandler: nil) - } - - override func displayNodeDidLoad() { - super.displayNodeDidLoad() - - self.displayNode.addSubnode(self.activityIndicator) - } - - override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { - super.containerLayoutUpdated(layout, transition: transition) - - let indicatorSize = self.activityIndicator.measure(CGSize(width: 100.0, height: 100.0)) - let navigationHeight = self.navigationLayout(layout: layout).navigationFrame.maxY - transition.updateFrame(node: self.activityIndicator, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - indicatorSize.width) / 2.0), y: navigationHeight + floor((layout.size.height - navigationHeight - indicatorSize.height) / 2.0)), size: indicatorSize)) - } - } let presentationData = environment.presentationData let navigationController = NavigationController(mode: .single, theme: NavigationControllerTheme(presentationTheme: presentationData.theme)) strongSelf.navigationController = navigationController - navigationController.viewControllers = [TempController(environment: environment)] + navigationController.viewControllers = [ChatImportTempController(presentationData: environment.presentationData)] strongSelf.mainWindow?.present(navigationController, on: .root) if let mainWindow = strongSelf.mainWindow {