diff --git a/submodules/SettingsUI/Sources/Themes/EditThemeController.swift b/submodules/SettingsUI/Sources/Themes/EditThemeController.swift index 2562df5eca..1b96ae7ca5 100644 --- a/submodules/SettingsUI/Sources/Themes/EditThemeController.swift +++ b/submodules/SettingsUI/Sources/Themes/EditThemeController.swift @@ -201,7 +201,7 @@ private struct EditThemeControllerState: Equatable { var updating: Bool } -private func editThemeControllerEntries(presentationData: PresentationData, state: EditThemeControllerState, previewTheme: PresentationTheme) -> [EditThemeControllerEntry] { +private func editThemeControllerEntries(presentationData: PresentationData, state: EditThemeControllerState, previewTheme: PresentationTheme, hasSettings: Bool) -> [EditThemeControllerEntry] { var entries: [EditThemeControllerEntry] = [] var isCreate = false @@ -256,8 +256,10 @@ private func editThemeControllerEntries(presentationData: PresentationData, stat entries.append(.chatPreview(presentationData.theme, previewTheme, previewTheme.chat.defaultWallpaper, presentationData.fontSize, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, [ChatPreviewMessageItem(outgoing: false, reply: (previewIncomingReplyName, previewIncomingReplyText), text: previewIncomingText), ChatPreviewMessageItem(outgoing: true, reply: nil, text: previewOutgoingText)])) entries.append(.changeColors(presentationData.theme, presentationData.strings.EditTheme_ChangeColors)) - entries.append(.uploadTheme(presentationData.theme, uploadText)) - entries.append(.uploadInfo(presentationData.theme, uploadInfo)) + if !hasSettings { + entries.append(.uploadTheme(presentationData.theme, uploadText)) + entries.append(.uploadInfo(presentationData.theme, uploadInfo)) + } return entries } @@ -266,6 +268,7 @@ public func editThemeController(context: AccountContext, mode: EditThemeControll let initialState: EditThemeControllerState let previewThemePromise = Promise() let settingsPromise = Promise(nil) + let hasSettings: Bool let presentationData = context.sharedContext.currentPresentationData.with { $0 } switch mode { case let .create(existingTheme, settings): @@ -275,14 +278,17 @@ public func editThemeController(context: AccountContext, mode: EditThemeControll theme = existingTheme wallpaper = theme.chat.defaultWallpaper settingsPromise.set(.single(settings)) + hasSettings = settings != nil } else { theme = presentationData.theme wallpaper = presentationData.chatWallpaper settingsPromise.set(.single(nil)) + hasSettings = false } initialState = EditThemeControllerState(mode: mode, title: generateThemeName(accentColor: theme.rootController.navigationBar.buttonColor), slug: "", updatedTheme: nil, updating: false) previewThemePromise.set(.single(theme.withUpdated(name: "", defaultWallpaper: wallpaper))) case let .edit(info): + hasSettings = info.theme.settings != nil settingsPromise.set(.single(info.theme.settings)) if let file = info.theme.file, let path = context.sharedContext.accountManager.mediaBox.completedResourcePath(file.resource), let data = try? Data(contentsOf: URL(fileURLWithPath: path)), let theme = makePresentationTheme(data: data, resolvedWallpaper: info.resolvedWallpaper) { if case let .file(file) = theme.chat.defaultWallpaper, file.id == 0 { @@ -633,7 +639,7 @@ public func editThemeController(context: AccountContext, mode: EditThemeControll } } let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(title), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: editThemeControllerEntries(presentationData: presentationData, state: state, previewTheme: previewTheme), style: .blocks, focusItemTag: focusItemTag, emptyStateItem: nil, animateChanges: false) + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: editThemeControllerEntries(presentationData: presentationData, state: state, previewTheme: previewTheme, hasSettings: hasSettings), style: .blocks, focusItemTag: focusItemTag, emptyStateItem: nil, animateChanges: false) return (controllerState, (listState, arguments)) }