From 24bbcd9662b5aae073e399b10d89d11ee4301974 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 30 Oct 2019 06:14:09 +0400 Subject: [PATCH] Display Clear Cache suggestion in all cases --- .../TelegramUI/ChatController.swift | 24 ++++++++++++------- .../ChatInterfaceStateContextMenus.swift | 6 ++++- .../ChatMessageSelectionInputPanelNode.swift | 10 ++++---- .../ChatScheduleTimeControllerNode.swift | 4 ++-- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 7660d6d33f..1921e8e8a0 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -3008,7 +3008,11 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let banAuthor = actions.banAuthor { strongSelf.presentBanMessageOptions(accountPeerId: strongSelf.context.account.peerId, author: banAuthor, messageIds: messageIds, options: actions.options) } else { - strongSelf.presentDeleteMessageOptions(messageIds: messageIds, options: actions.options, contextController: nil, completion: { _ in }) + if actions.options.intersection([.deleteLocally, .deleteGlobally]).isEmpty { + strongSelf.presentClearCacheSuggestion() + } else { + strongSelf.presentDeleteMessageOptions(messageIds: messageIds, options: actions.options, contextController: nil, completion: { _ in }) + } } } })) @@ -3051,14 +3055,19 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = deleteMessagesInteractively(postbox: strongSelf.context.account.postbox, messageIds: Array(messageIds), type: .forEveryone, deleteAllInGroup: true).start() completion(.dismissWithoutContent) } else { - var isScheduled = false - for id in messageIds { - if Namespaces.Message.allScheduled.contains(id.namespace) { - isScheduled = true - break + if actions.options.intersection([.deleteLocally, .deleteGlobally]).isEmpty { + strongSelf.presentClearCacheSuggestion() + completion(.default) + } else { + var isScheduled = false + for id in messageIds { + if Namespaces.Message.allScheduled.contains(id.namespace) { + isScheduled = true + break + } } + strongSelf.presentDeleteMessageOptions(messageIds: messageIds, options: isScheduled ? [.deleteLocally] : actions.options, contextController: contextController, completion: completion) } - strongSelf.presentDeleteMessageOptions(messageIds: messageIds, options: isScheduled ? [.deleteLocally] : actions.options, contextController: contextController, completion: completion) } } } @@ -8044,7 +8053,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = (self.context.account.postbox.loadedPeerWithId(peerId) |> mapToSignal { peer -> Signal<(Peer, UIImage?), NoError> in let avatarImage = peerAvatarImage(account: self.context.account, peer: peer, authorOfMessage: nil, representation: peer.smallProfileImage, round: false) ?? .single(nil) - return avatarImage |> map { avatarImage in return (peer, avatarImage) diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift index 338a44a2ad..a0e72e0a7a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift @@ -684,7 +684,11 @@ func contextMenuForChatPresentationIntefaceState(chatPresentationInterfaceState: }))) } - if !data.messageActions.options.intersection([.deleteLocally, .deleteGlobally]).isEmpty && !isAction { + var clearCacheAsDelete = false + if let peer = message.peers[message.id.peerId] as? TelegramChannel { + clearCacheAsDelete = true + } + if (!data.messageActions.options.intersection([.deleteLocally, .deleteGlobally]).isEmpty || clearCacheAsDelete) && !isAction { let title = message.flags.isSending ? chatPresentationInterfaceState.strings.Conversation_ContextMenuCancelSending : chatPresentationInterfaceState.strings.Conversation_ContextMenuDelete actions.append(.action(ContextMenuActionItem(text: title, textColor: .destructive, icon: { theme in return generateTintedImage(image: UIImage(bundleImageName: message.flags.isSending ? "Chat/Context Menu/Clear" : "Chat/Context Menu/Delete"), color: theme.actionSheet.destructiveActionTextColor) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift index 7fdea70b64..1f2423e1a6 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift @@ -143,26 +143,24 @@ final class ChatMessageSelectionInputPanelNode: ChatInputPanelNode { self.forwardButton.isEnabled = actions.options.contains(.forward) self.shareButton.isEnabled = false - self.deleteButton.isEnabled = !actions.options.intersection([.deleteLocally, .deleteGlobally]).isEmpty + self.deleteButton.isEnabled = true self.shareButton.isEnabled = !actions.options.intersection([.forward]).isEmpty self.reportButton.isEnabled = !actions.options.intersection([.report]).isEmpty - self.deleteButton.isHidden = !self.deleteButton.isEnabled + self.deleteButton.isHidden = false self.reportButton.isHidden = !self.reportButton.isEnabled } else { self.deleteButton.isEnabled = false - self.deleteButton.isHidden = true + self.deleteButton.isHidden = false self.reportButton.isEnabled = false self.reportButton.isHidden = true self.forwardButton.isEnabled = false self.shareButton.isEnabled = false } - if self.deleteButton.isHidden && self.reportButton.isHidden { + if self.reportButton.isHidden { if let peer = interfaceState.renderedPeer?.peer as? TelegramChannel, case .broadcast = peer.info { self.reportButton.isHidden = false - } else { - self.deleteButton.isHidden = false } } diff --git a/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift index f3bc82e05a..759650b880 100644 --- a/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift @@ -103,7 +103,7 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel self.contentContainerNode.addSubnode(self.cancelButton) self.contentContainerNode.addSubnode(self.doneButton) if case .scheduledMessages(true) = self.mode { - self.contentContainerNode.addSubnode(self.onlineButton) + //self.contentContainerNode.addSubnode(self.onlineButton) } self.cancelButton.addTarget(self, action: #selector(self.cancelButtonPressed), forControlEvents: .touchUpInside) @@ -316,7 +316,7 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel var buttonOffset: CGFloat = 0.0 if case .scheduledMessages(true) = self.mode { - buttonOffset += 60.0 + //buttonOffset += 60.0 } let bottomInset: CGFloat = 10.0 + cleanInsets.bottom