From 0dffd0975973396dd510b059daf8dc82be93e373 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 24 May 2022 01:18:59 +0400 Subject: [PATCH] Various fixes --- .../Sources/PremiumLimitScreen.swift | 46 +++++++++++++++++++ .../State/UserLimitsConfiguration.swift | 12 ++--- 2 files changed, 52 insertions(+), 6 deletions(-) diff --git a/submodules/PremiumUI/Sources/PremiumLimitScreen.swift b/submodules/PremiumUI/Sources/PremiumLimitScreen.swift index 78ce425b5e..fdb6bea25e 100644 --- a/submodules/PremiumUI/Sources/PremiumLimitScreen.swift +++ b/submodules/PremiumUI/Sources/PremiumLimitScreen.swift @@ -16,6 +16,27 @@ import BundleIconComponent import SolidRoundedButtonComponent import Markdown +private func generateCloseButtonImage(theme: PresentationTheme) -> UIImage? { + return generateImage(CGSize(width: 30.0, height: 30.0), contextGenerator: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + + context.setFillColor(UIColor(rgb: 0x808084, alpha: 0.1).cgColor) + context.fillEllipse(in: CGRect(origin: CGPoint(), size: size)) + + context.setLineWidth(2.0) + context.setLineCap(.round) + context.setStrokeColor(theme.actionSheet.inputClearButtonColor.cgColor) + + context.move(to: CGPoint(x: 10.0, y: 10.0)) + context.addLine(to: CGPoint(x: 20.0, y: 20.0)) + context.strokePath() + + context.move(to: CGPoint(x: 20.0, y: 10.0)) + context.addLine(to: CGPoint(x: 10.0, y: 20.0)) + context.strokePath() + }) +} + private class PremiumLimitAnimationComponent: Component { private let iconName: String private let inactiveColor: UIColor @@ -540,6 +561,8 @@ private final class LimitSheetContent: CombinedComponent { var limits: EngineConfiguration.UserLimits var premiumLimits: EngineConfiguration.UserLimits + var cachedCloseImage: (UIImage, PresentationTheme)? + init(context: AccountContext, subject: PremiumLimitScreen.Subject) { self.context = context self.limits = EngineConfiguration.UserLimits.defaultValue @@ -571,6 +594,7 @@ private final class LimitSheetContent: CombinedComponent { } static var body: Body { + let closeButton = Child(Button.self) let title = Child(MultilineTextComponent.self) let text = Child(MultilineTextComponent.self) let limit = Child(PremiumLimitDisplayComponent.self) @@ -588,6 +612,28 @@ private final class LimitSheetContent: CombinedComponent { let sideInset: CGFloat = 16.0 + environment.safeInsets.left let textSideInset: CGFloat = 24.0 + environment.safeInsets.left + let closeImage: UIImage + if let (image, theme) = state.cachedCloseImage, theme === environment.theme { + closeImage = image + } else { + closeImage = generateCloseButtonImage(theme: theme)! + state.cachedCloseImage = (closeImage, theme) + } + + let closeButton = closeButton.update( + component: Button( + content: AnyComponent(Image(image: closeImage)), + action: { [weak component] in + component?.dismiss() + } + ), + availableSize: CGSize(width: 30.0, height: 30.0), + transition: .immediate + ) + context.add(closeButton + .position(CGPoint(x: context.availableSize.width - environment.safeInsets.left - closeButton.size.width, y: 28.0)) + ) + let iconName: String let badgeText: String let string: String diff --git a/submodules/TelegramCore/Sources/State/UserLimitsConfiguration.swift b/submodules/TelegramCore/Sources/State/UserLimitsConfiguration.swift index 2d21b919ec..57267bfe93 100644 --- a/submodules/TelegramCore/Sources/State/UserLimitsConfiguration.swift +++ b/submodules/TelegramCore/Sources/State/UserLimitsConfiguration.swift @@ -75,12 +75,12 @@ extension UserLimitsConfiguration { } self.maxPinnedChatCount = getValue("dialogs_pinned_limit", orElse: defaultValue.maxPinnedChatCount) - self.maxChannelsCount = getValue("channels_limit", orElse: defaultValue.maxPinnedChatCount) - self.maxPublicLinksCount = getValue("channels_public_limit", orElse: defaultValue.maxPinnedChatCount) - self.maxSavedGifCount = getValue("saved_gifs_limit", orElse: defaultValue.maxPinnedChatCount) - self.maxFavedStickerCount = getValue("stickers_faved_limit", orElse: defaultValue.maxPinnedChatCount) - self.maxFoldersCount = getValue("dialog_filters_limit", orElse: defaultValue.maxPinnedChatCount) - self.maxFolderChatsCount = getValue("dialog_filters_chats_limit", orElse: defaultValue.maxPinnedChatCount) + self.maxChannelsCount = getValue("channels_limit", orElse: defaultValue.maxChannelsCount) + self.maxPublicLinksCount = getValue("channels_public_limit", orElse: defaultValue.maxPublicLinksCount) + self.maxSavedGifCount = getValue("saved_gifs_limit", orElse: defaultValue.maxSavedGifCount) + self.maxFavedStickerCount = getValue("stickers_faved_limit", orElse: defaultValue.maxFavedStickerCount) + self.maxFoldersCount = getValue("dialog_filters_limit", orElse: defaultValue.maxFoldersCount) + self.maxFolderChatsCount = getValue("dialog_filters_chats_limit", orElse: defaultValue.maxFolderChatsCount) self.maxCaptionLengthCount = getValue("caption_length_limit", orElse: defaultValue.maxCaptionLengthCount) self.maxUploadFileParts = getValue("upload_max_fileparts", orElse: defaultValue.maxUploadFileParts) self.maxAnimatedEmojisInText = getGeneralValue("message_animated_emoji_max", orElse: defaultValue.maxAnimatedEmojisInText)