mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Attachment menu improvements
This commit is contained in:
parent
67ab9a84fb
commit
43cb778ef5
@ -79,18 +79,20 @@ final class WebSearchControllerInteraction {
|
||||
let setSearchQuery: (String) -> Void
|
||||
let deleteRecentQuery: (String) -> Void
|
||||
let toggleSelection: (ChatContextResult, Bool) -> Void
|
||||
let sendSelected: (ChatContextResultCollection, ChatContextResult?) -> Void
|
||||
let sendSelected: (ChatContextResult?, Bool, Int32?) -> Void
|
||||
let schedule: () -> Void
|
||||
let avatarCompleted: (UIImage) -> Void
|
||||
let selectionState: TGMediaSelectionContext?
|
||||
let editingState: TGMediaEditingContext
|
||||
var hiddenMediaId: String?
|
||||
|
||||
init(openResult: @escaping (ChatContextResult) -> Void, setSearchQuery: @escaping (String) -> Void, deleteRecentQuery: @escaping (String) -> Void, toggleSelection: @escaping (ChatContextResult, Bool) -> Void, sendSelected: @escaping (ChatContextResultCollection, ChatContextResult?) -> Void, avatarCompleted: @escaping (UIImage) -> Void, selectionState: TGMediaSelectionContext?, editingState: TGMediaEditingContext) {
|
||||
init(openResult: @escaping (ChatContextResult) -> Void, setSearchQuery: @escaping (String) -> Void, deleteRecentQuery: @escaping (String) -> Void, toggleSelection: @escaping (ChatContextResult, Bool) -> Void, sendSelected: @escaping (ChatContextResult?, Bool, Int32?) -> Void, schedule: @escaping () -> Void, avatarCompleted: @escaping (UIImage) -> Void, selectionState: TGMediaSelectionContext?, editingState: TGMediaEditingContext) {
|
||||
self.openResult = openResult
|
||||
self.setSearchQuery = setSearchQuery
|
||||
self.deleteRecentQuery = deleteRecentQuery
|
||||
self.toggleSelection = toggleSelection
|
||||
self.sendSelected = sendSelected
|
||||
self.schedule = schedule
|
||||
self.avatarCompleted = avatarCompleted
|
||||
self.selectionState = selectionState
|
||||
self.editingState = editingState
|
||||
@ -162,6 +164,8 @@ public final class WebSearchController: ViewController {
|
||||
}
|
||||
}
|
||||
|
||||
public var presentSchedulePicker: (Bool, @escaping (Int32) -> Void) -> Void = { _, _ in }
|
||||
|
||||
public var dismissed: () -> Void = { }
|
||||
|
||||
public var searchingUpdated: (Bool) -> Void = { _ in }
|
||||
@ -283,8 +287,8 @@ public final class WebSearchController: ViewController {
|
||||
let item = LegacyWebSearchItem(result: result)
|
||||
strongSelf.controllerInteraction?.selectionState?.setItem(item, selected: value)
|
||||
}
|
||||
}, sendSelected: { results, current in
|
||||
if let selectionState = selectionState {
|
||||
}, sendSelected: { [weak self] current, silently, scheduleTime in
|
||||
if let selectionState = selectionState, let results = self?.controllerNode.currentExternalResults {
|
||||
if let current = current {
|
||||
let currentItem = LegacyWebSearchItem(result: current)
|
||||
selectionState.setItem(currentItem, selected: true)
|
||||
@ -293,6 +297,12 @@ public final class WebSearchController: ViewController {
|
||||
sendSelected(results, selectionState, editingState, false)
|
||||
}
|
||||
}
|
||||
}, schedule: { [weak self] in
|
||||
if let strongSelf = self {
|
||||
strongSelf.presentSchedulePicker(false, { [weak self] time in
|
||||
self?.controllerInteraction?.sendSelected(nil, false, time)
|
||||
})
|
||||
}
|
||||
}, avatarCompleted: { result in
|
||||
if case let .avatar(_, avatarCompleted) = mode {
|
||||
avatarCompleted(result)
|
||||
@ -592,10 +602,10 @@ public class WebSearchPickerContext: AttachmentMediaPickerContext {
|
||||
}
|
||||
|
||||
public func send(silently: Bool, mode: AttachmentMediaPickerSendMode) {
|
||||
// self.interaction?.sendSelected(nil, silently, nil, true)
|
||||
self.interaction?.sendSelected(nil, silently, nil)
|
||||
}
|
||||
|
||||
public func schedule() {
|
||||
// self.interaction?.schedule()
|
||||
self.interaction?.schedule()
|
||||
}
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ class WebSearchControllerNode: ASDisplayNode {
|
||||
private var enqueuedTransitions: [(WebSearchTransition, Bool)] = []
|
||||
private var dequeuedInitialTransitionOnLayout = false
|
||||
|
||||
private var currentExternalResults: ChatContextResultCollection?
|
||||
private(set) var currentExternalResults: ChatContextResultCollection?
|
||||
private var currentProcessedResults: ChatContextResultCollection?
|
||||
private var currentEntries: [WebSearchEntry]?
|
||||
private var hasMore = false
|
||||
@ -718,9 +718,8 @@ class WebSearchControllerNode: ASDisplayNode {
|
||||
}
|
||||
|
||||
@objc private func sendPressed() {
|
||||
if let results = self.currentExternalResults {
|
||||
self.controllerInteraction.sendSelected(results, nil)
|
||||
}
|
||||
self.controllerInteraction.sendSelected(nil, false, nil)
|
||||
|
||||
self.cancel?()
|
||||
}
|
||||
|
||||
@ -741,8 +740,8 @@ class WebSearchControllerNode: ASDisplayNode {
|
||||
}, transitionView: { [weak self] result in
|
||||
return self?.transitionNode(for: result)?.transitionView()
|
||||
}, completed: { [weak self] result in
|
||||
if let strongSelf = self, let results = strongSelf.currentExternalResults {
|
||||
strongSelf.controllerInteraction.sendSelected(results, result)
|
||||
if let strongSelf = self {
|
||||
strongSelf.controllerInteraction.sendSelected(result, false, nil)
|
||||
strongSelf.cancel?()
|
||||
}
|
||||
}, presentStickers: self.presentStickers, getCaptionPanelView: self.getCaptionPanelView, present: present)
|
||||
@ -761,8 +760,8 @@ class WebSearchControllerNode: ASDisplayNode {
|
||||
let controller = WebSearchGalleryController(context: self.context, peer: self.peer, selectionState: self.controllerInteraction.selectionState, editingState: self.controllerInteraction.editingState, entries: entries, centralIndex: centralIndex, replaceRootController: { (controller, _) in
|
||||
|
||||
}, baseNavigationController: nil, sendCurrent: { [weak self] result in
|
||||
if let strongSelf = self, let results = strongSelf.currentExternalResults {
|
||||
strongSelf.controllerInteraction.sendSelected(results, result)
|
||||
if let strongSelf = self {
|
||||
strongSelf.controllerInteraction.sendSelected(result, false, nil)
|
||||
strongSelf.cancel?()
|
||||
}
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user