From af8c6c7e575b97eeff3f55ece6a8c39bef6f743e Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 28 Oct 2019 17:54:39 +0400 Subject: [PATCH] Display Unsupported alert when theme is unreadable --- .../TelegramUI/OpenChatMessage.swift | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift index 9402f92175..8f533e56fe 100644 --- a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift +++ b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift @@ -487,15 +487,22 @@ func openChatTheme(context: AccountContext, message: Message, pushController: @e } else if let contentFile = content.file, contentFile.mimeType == mimeType { file = contentFile } - if case let .theme(slug) = resolvedUrl, let file = file { - if let path = context.sharedContext.accountManager.mediaBox.completedResourcePath(file.resource), let data = try? Data(contentsOf: URL(fileURLWithPath: path), options: .mappedRead), let theme = makePresentationTheme(data: data) { - let controller = ThemePreviewController(context: context, previewTheme: theme, source: .slug(slug, file)) - pushController(controller) - } - } else { + let displayUnsupportedAlert: () -> Void = { let presentationData = context.sharedContext.currentPresentationData.with { $0 } present(textAlertController(context: context, title: nil, text: presentationData.strings.Theme_Unsupported, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), nil) } + if case let .theme(slug) = resolvedUrl, let file = file { + if let path = context.sharedContext.accountManager.mediaBox.completedResourcePath(file.resource), let data = try? Data(contentsOf: URL(fileURLWithPath: path), options: .mappedRead) { + if let theme = makePresentationTheme(data: data) { + let controller = ThemePreviewController(context: context, previewTheme: theme, source: .slug(slug, file)) + pushController(controller) + } else { + displayUnsupportedAlert() + } + } + } else { + displayUnsupportedAlert() + } }) } }