mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +00:00
Various Improvements
This commit is contained in:
parent
1e440c199c
commit
db832bfb17
@ -7056,3 +7056,6 @@ Sorry for the inconvenience.";
|
||||
"VoiceChat.DiscussionGroup" = "discussion group";
|
||||
|
||||
"Group.Edit.PrivatePublicLinkAlert" = "Please note that if you choose a public link for your group, anyone will be able to find it in search and join.\n\nDo not create this link if you want your group to stay private.";
|
||||
|
||||
"Conversation.CopyProtectionInfoGroup" = "Admins restricted members to copy or forward content from this group.";
|
||||
"Conversation.CopyProtectionInfoChannel" = "Admins restricted members to copy or forward content from this channel.";
|
||||
|
@ -351,6 +351,7 @@ private final class InnerTextSelectionTipContainerNode: ASDisplayNode {
|
||||
self.presentationData = presentationData
|
||||
self.textNode = TextNode()
|
||||
|
||||
var icon: UIImage?
|
||||
switch tip {
|
||||
case .textSelection:
|
||||
var rawText = self.presentationData.strings.ChatContextMenu_TextSelectionTip
|
||||
@ -362,15 +363,21 @@ private final class InnerTextSelectionTipContainerNode: ASDisplayNode {
|
||||
self.text = rawText
|
||||
self.targetSelectionIndex = 1
|
||||
}
|
||||
icon = UIImage(bundleImageName: "Chat/Context Menu/Tip")
|
||||
case .messageViewsPrivacy:
|
||||
self.text = self.presentationData.strings.ChatContextMenu_MessageViewsPrivacyTip
|
||||
self.targetSelectionIndex = nil
|
||||
icon = UIImage(bundleImageName: "Chat/Context Menu/Tip")
|
||||
case let .messageCopyProtection(isChannel):
|
||||
self.text = isChannel ? self.presentationData.strings.Conversation_CopyProtectionInfoChannel : self.presentationData.strings.Conversation_CopyProtectionInfoGroup
|
||||
self.targetSelectionIndex = nil
|
||||
icon = UIImage(bundleImageName: "Chat/Context Menu/ReportCopyright")
|
||||
}
|
||||
|
||||
self.iconNode = ASImageNode()
|
||||
self.iconNode.displaysAsynchronously = false
|
||||
self.iconNode.displayWithoutProcessing = true
|
||||
self.iconNode.image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Tip"), color: presentationData.theme.contextMenu.primaryColor)
|
||||
self.iconNode.image = generateTintedImage(image: icon, color: presentationData.theme.contextMenu.primaryColor)
|
||||
|
||||
super.init()
|
||||
|
||||
|
@ -1828,6 +1828,7 @@ public final class ContextController: ViewController, StandalonePresentableContr
|
||||
public enum Tip {
|
||||
case textSelection
|
||||
case messageViewsPrivacy
|
||||
case messageCopyProtection(isChannel: Bool)
|
||||
}
|
||||
|
||||
public final class ActionsHeight {
|
||||
|
@ -280,6 +280,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
private var clearCacheDisposable: MetaDisposable?
|
||||
private var bankCardDisposable: MetaDisposable?
|
||||
private var hasActiveGroupCallDisposable: Disposable?
|
||||
private var sendAsPeersDisposable: Disposable?
|
||||
|
||||
private let editingMessage = ValuePromise<Float?>(nil, ignoreRepeated: true)
|
||||
private let startingBot = ValuePromise<Bool>(false, ignoreRepeated: true)
|
||||
@ -943,11 +944,19 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
var tip: ContextController.Tip?
|
||||
|
||||
if tip == nil {
|
||||
let numberOfComponents = message.text.components(separatedBy: CharacterSet.whitespacesAndNewlines).count
|
||||
let displayTextSelectionTip = numberOfComponents >= 3 && !message.text.isEmpty && chatTextSelectionTips < 3 && !message.isCopyProtected()
|
||||
if displayTextSelectionTip {
|
||||
let _ = ApplicationSpecificNotice.incrementChatTextSelectionTips(accountManager: strongSelf.context.sharedContext.accountManager).start()
|
||||
tip = .textSelection
|
||||
if message.isCopyProtected() {
|
||||
var isChannel = false
|
||||
if let channel = strongSelf.presentationInterfaceState.renderedPeer?.peer as? TelegramChannel, case .broadcast = channel.info {
|
||||
isChannel = true
|
||||
}
|
||||
tip = .messageCopyProtection(isChannel: isChannel)
|
||||
} else {
|
||||
let numberOfComponents = message.text.components(separatedBy: CharacterSet.whitespacesAndNewlines).count
|
||||
let displayTextSelectionTip = numberOfComponents >= 3 && !message.text.isEmpty && chatTextSelectionTips < 3
|
||||
if displayTextSelectionTip {
|
||||
let _ = ApplicationSpecificNotice.incrementChatTextSelectionTips(accountManager: strongSelf.context.sharedContext.accountManager).start()
|
||||
tip = .textSelection
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1145,7 +1154,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
}
|
||||
})
|
||||
} else {
|
||||
strongSelf.sendMessages(messages)
|
||||
let transformedMessages = strongSelf.transformEnqueueMessages(messages)
|
||||
strongSelf.sendMessages(transformedMessages)
|
||||
}
|
||||
return true
|
||||
}, sendGif: { [weak self] fileReference, sourceNode, sourceRect, silentPosting, schedule in
|
||||
@ -1180,6 +1190,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
}
|
||||
})
|
||||
} else {
|
||||
messages = strongSelf.transformEnqueueMessages(messages)
|
||||
strongSelf.sendMessages(messages)
|
||||
}
|
||||
}
|
||||
@ -4176,6 +4187,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
self.importStateDisposable?.dispose()
|
||||
self.nextChannelToReadDisposable?.dispose()
|
||||
self.inviteRequestsDisposable.dispose()
|
||||
self.sendAsPeersDisposable?.dispose()
|
||||
}
|
||||
|
||||
public func updatePresentationMode(_ mode: ChatControllerPresentationMode) {
|
||||
@ -4565,7 +4577,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
return [FoundPeer(peer: peer, subscribers: nil)]
|
||||
}
|
||||
|
||||
let _ = (combineLatest(queue: Queue.mainQueue(), currentAccountPeer, self.context.account.postbox.peerView(id: self.chatLocation.peerId), self.context.engine.peers.sendAsAvailablePeers(peerId: self.chatLocation.peerId)))
|
||||
self.sendAsPeersDisposable = (combineLatest(queue: Queue.mainQueue(), currentAccountPeer, self.context.account.postbox.peerView(id: self.chatLocation.peerId), self.context.engine.peers.sendAsAvailablePeers(peerId: self.chatLocation.peerId)))
|
||||
.start(next: { [weak self] currentAccountPeer, peerView, peers in
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user