From b66315a88552d5b7972291983ccbfbd5dc9542f5 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 12 Sep 2019 21:40:20 +0400 Subject: [PATCH] Fix send logs while not logged in --- .../SettingsUI/Sources/DebugController.swift | 86 +++++++++---------- 1 file changed, 41 insertions(+), 45 deletions(-) diff --git a/submodules/SettingsUI/Sources/DebugController.swift b/submodules/SettingsUI/Sources/DebugController.swift index 7adea6bca2..3527bcd4ef 100644 --- a/submodules/SettingsUI/Sources/DebugController.swift +++ b/submodules/SettingsUI/Sources/DebugController.swift @@ -149,57 +149,53 @@ private enum DebugControllerEntry: ItemListNodeEntry { case let .sendLogs(theme): return ItemListDisclosureItem(theme: theme, title: "Send Logs", label: "", sectionId: self.section, style: .blocks, action: { let _ = (Logger.shared.collectLogs() - |> deliverOnMainQueue).start(next: { logs in - guard let context = arguments.context else { - return - } - - let presentationData = arguments.sharedContext.currentPresentationData.with { $0 } - let actionSheet = ActionSheetController(presentationTheme: presentationData.theme) - - var items: [ActionSheetButtonItem] = [] - - if let context = arguments.context { - items.append(ActionSheetButtonItem(title: "Via Telegram", color: .accent, action: { [weak actionSheet] in - actionSheet?.dismissAnimated() - - let controller = context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: context, filter: [.onlyWriteable, .excludeDisabled])) - controller.peerSelected = { [weak controller] peerId in - if let strongController = controller { - strongController.dismiss() - - let messages = logs.map { (name, path) -> EnqueueMessage in - let id = arc4random64() - let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: id), partialReference: nil, resource: LocalFileReferenceMediaResource(localFilePath: path, randomId: id), previewRepresentations: [], immediateThumbnailData: nil, mimeType: "application/text", size: nil, attributes: [.FileName(fileName: name)]) - return .message(text: "", attributes: [], mediaReference: .standalone(media: file), replyToMessageId: nil, localGroupingKey: nil) - } - let _ = enqueueMessages(account: context.account, peerId: peerId, messages: messages).start() - } - } - arguments.presentController(controller, ViewControllerPresentationArguments(presentationAnimation: ViewControllerPresentationAnimation.modalSheet)) - })) - } - items.append(ActionSheetButtonItem(title: "Via Email", color: .accent, action: { [weak actionSheet] in + |> deliverOnMainQueue).start(next: { logs in + let presentationData = arguments.sharedContext.currentPresentationData.with { $0 } + let actionSheet = ActionSheetController(presentationTheme: presentationData.theme) + + var items: [ActionSheetButtonItem] = [] + + if let context = arguments.context { + items.append(ActionSheetButtonItem(title: "Via Telegram", color: .accent, action: { [weak actionSheet] in actionSheet?.dismissAnimated() - let composeController = MFMailComposeViewController() - composeController.mailComposeDelegate = arguments.mailComposeDelegate - composeController.setSubject("Telegram Logs") - for (name, path) in logs { - if let data = try? Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe) { - composeController.addAttachmentData(data, mimeType: "application/text", fileName: name) + let controller = context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: context, filter: [.onlyWriteable, .excludeDisabled])) + controller.peerSelected = { [weak controller] peerId in + if let strongController = controller { + strongController.dismiss() + + let messages = logs.map { (name, path) -> EnqueueMessage in + let id = arc4random64() + let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: id), partialReference: nil, resource: LocalFileReferenceMediaResource(localFilePath: path, randomId: id), previewRepresentations: [], immediateThumbnailData: nil, mimeType: "application/text", size: nil, attributes: [.FileName(fileName: name)]) + return .message(text: "", attributes: [], mediaReference: .standalone(media: file), replyToMessageId: nil, localGroupingKey: nil) + } + let _ = enqueueMessages(account: context.account, peerId: peerId, messages: messages).start() } } - arguments.getRootController()?.present(composeController, animated: true, completion: nil) + arguments.presentController(controller, ViewControllerPresentationArguments(presentationAnimation: ViewControllerPresentationAnimation.modalSheet)) })) + } + items.append(ActionSheetButtonItem(title: "Via Email", color: .accent, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() - actionSheet.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ - ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, color: .accent, action: { [weak actionSheet] in - actionSheet?.dismissAnimated() - }) - ])]) - arguments.presentController(actionSheet, nil) - }) + let composeController = MFMailComposeViewController() + composeController.mailComposeDelegate = arguments.mailComposeDelegate + composeController.setSubject("Telegram Logs") + for (name, path) in logs { + if let data = try? Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe) { + composeController.addAttachmentData(data, mimeType: "application/text", fileName: name) + } + } + arguments.getRootController()?.present(composeController, animated: true, completion: nil) + })) + + actionSheet.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ + ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, color: .accent, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + }) + ])]) + arguments.presentController(actionSheet, nil) + }) }) case let .sendOneLog(theme): return ItemListDisclosureItem(theme: theme, title: "Send Latest Log", label: "", sectionId: self.section, style: .blocks, action: {