Invite Links Fixes

This commit is contained in:
Ilya Laktyushin
2021-02-17 16:01:28 +04:00
parent 415164748f
commit e739cd91ff
8 changed files with 50 additions and 3 deletions

View File

@@ -304,6 +304,7 @@ public final class ShareController: ViewController {
private var defaultAction: ShareControllerAction?
public var actionCompleted: (() -> Void)?
public var dismissed: ((Bool) -> Void)?
public var completed: (([PeerId]) -> Void)? {
didSet {
@@ -346,6 +347,8 @@ public final class ShareController: ViewController {
self.defaultAction = ShareControllerAction(title: forcedActionTitle ?? self.presentationData.strings.ShareMenu_CopyShareLink, action: { [weak self] in
UIPasteboard.general.string = text
self?.controllerNode.cancel?()
self?.actionCompleted?()
})
case .text:
break
@@ -355,6 +358,8 @@ public final class ShareController: ViewController {
let url = "https://maps.apple.com/maps?ll=\(latLong)&q=\(latLong)&t=m"
UIPasteboard.general.string = url
self?.controllerNode.cancel?()
self?.actionCompleted?()
})
break
case .quote:
@@ -363,6 +368,7 @@ public final class ShareController: ViewController {
if case .saveToCameraRoll = preferredAction {
self.defaultAction = ShareControllerAction(title: self.presentationData.strings.Preview_SaveToCameraRoll, action: { [weak self] in
self?.saveToCameraRoll(representations: representations)
self?.actionCompleted?()
})
}
case let .media(mediaReference):
@@ -375,12 +381,14 @@ public final class ShareController: ViewController {
if case .saveToCameraRoll = preferredAction, canSave {
self.defaultAction = ShareControllerAction(title: self.presentationData.strings.Preview_SaveToCameraRoll, action: { [weak self] in
self?.saveToCameraRoll(mediaReference: mediaReference)
self?.actionCompleted?()
})
}
case let .messages(messages):
if case .saveToCameraRoll = preferredAction {
self.defaultAction = ShareControllerAction(title: self.presentationData.strings.Preview_SaveToCameraRoll, action: { [weak self] in
self?.saveToCameraRoll(messages: messages)
self?.actionCompleted?()
})
} else if let message = messages.first {
let groupingKey: Int64? = message.groupingKey
@@ -397,6 +405,7 @@ public final class ShareController: ViewController {
self.defaultAction = ShareControllerAction(title: self.presentationData.strings.SharedMedia_ViewInChat, action: { [weak self] in
self?.controllerNode.cancel?()
showInChat(message)
self?.actionCompleted?()
})
} else if let chatPeer = message.peers[message.id.peerId] as? TelegramChannel, messages.count == 1 || sameGroupingKey {
if message.id.namespace == Namespaces.Message.Cloud {
@@ -414,6 +423,7 @@ public final class ShareController: ViewController {
}
})
strongSelf.controllerNode.cancel?()
strongSelf.actionCompleted?()
})
}
}
@@ -426,6 +436,7 @@ public final class ShareController: ViewController {
self.defaultAction = ShareControllerAction(title: action.title, action: { [weak self] in
self?.controllerNode.cancel?()
action.action()
self?.actionCompleted?()
})
}