mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 11:23:48 +00:00
parent
07e3997147
commit
bfb18929f2
@ -50,6 +50,7 @@ private func transcribeAudio(path: String, locale: String) -> Signal<Transcripti
|
|||||||
}
|
}
|
||||||
speechRecognizer.supportsOnDeviceRecognition = true
|
speechRecognizer.supportsOnDeviceRecognition = true
|
||||||
}
|
}
|
||||||
|
speechRecognizer.defaultTaskHint = .dictation
|
||||||
|
|
||||||
let tempFilePath = NSTemporaryDirectory() + "/\(UInt64.random(in: 0 ... UInt64.max)).m4a"
|
let tempFilePath = NSTemporaryDirectory() + "/\(UInt64.random(in: 0 ... UInt64.max)).m4a"
|
||||||
let _ = try? FileManager.default.copyItem(atPath: path, toPath: tempFilePath)
|
let _ = try? FileManager.default.copyItem(atPath: path, toPath: tempFilePath)
|
||||||
|
@ -450,7 +450,8 @@ public final class ChatMessageInteractiveFileNode: ASDisplayNode {
|
|||||||
guard let result = result else {
|
guard let result = result else {
|
||||||
return .single(nil)
|
return .single(nil)
|
||||||
}
|
}
|
||||||
return transcribeAudio(path: result, appLocale: appLocale)
|
|
||||||
|
return transcribeAudio(path: result, appLocale: arguments.controllerInteraction.sgGetChatPredictedLang() ?? appLocale)
|
||||||
}
|
}
|
||||||
|
|
||||||
self.transcribeDisposable = (signal
|
self.transcribeDisposable = (signal
|
||||||
@ -802,7 +803,7 @@ public final class ChatMessageInteractiveFileNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let currentTime = Int32(Date().timeIntervalSince1970)
|
let currentTime = Int32(Date().timeIntervalSince1970)
|
||||||
if transcribedText == nil, let cooldownUntilTime = arguments.associatedData.audioTranscriptionTrial.cooldownUntilTime, cooldownUntilTime > currentTime {
|
if transcribedText == nil, let cooldownUntilTime = arguments.associatedData.audioTranscriptionTrial.cooldownUntilTime, cooldownUntilTime > currentTime, { return false }() /* MARK: Swiftgram */ {
|
||||||
updatedAudioTranscriptionState = .locked
|
updatedAudioTranscriptionState = .locked
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,6 +171,7 @@ public final class ChatControllerInteraction: ChatControllerInteractionProtocol
|
|||||||
public let openMessage: (Message, OpenMessageParams) -> Bool
|
public let openMessage: (Message, OpenMessageParams) -> Bool
|
||||||
// MARK: Swiftgram
|
// MARK: Swiftgram
|
||||||
public let sgStartMessageEdit: (Message) -> Void
|
public let sgStartMessageEdit: (Message) -> Void
|
||||||
|
public let sgGetChatPredictedLang: () -> String?
|
||||||
public let openPeer: (EnginePeer, ChatControllerInteractionNavigateToPeer, MessageReference?, OpenPeerSource) -> Void
|
public let openPeer: (EnginePeer, ChatControllerInteractionNavigateToPeer, MessageReference?, OpenPeerSource) -> Void
|
||||||
public let openPeerMention: (String, Promise<Bool>?) -> Void
|
public let openPeerMention: (String, Promise<Bool>?) -> Void
|
||||||
public let openMessageContextMenu: (Message, Bool, ASDisplayNode, CGRect, UIGestureRecognizer?, CGPoint?) -> Void
|
public let openMessageContextMenu: (Message, Bool, ASDisplayNode, CGRect, UIGestureRecognizer?, CGPoint?) -> Void
|
||||||
@ -305,6 +306,7 @@ public final class ChatControllerInteraction: ChatControllerInteractionProtocol
|
|||||||
|
|
||||||
public init(
|
public init(
|
||||||
openMessage: @escaping (Message, OpenMessageParams) -> Bool,
|
openMessage: @escaping (Message, OpenMessageParams) -> Bool,
|
||||||
|
sgGetChatPredictedLang: @escaping () -> String? = { return nil },
|
||||||
sgStartMessageEdit: @escaping (Message) -> Void = { _ in },
|
sgStartMessageEdit: @escaping (Message) -> Void = { _ in },
|
||||||
openPeer: @escaping (EnginePeer, ChatControllerInteractionNavigateToPeer, MessageReference?, OpenPeerSource) -> Void,
|
openPeer: @escaping (EnginePeer, ChatControllerInteractionNavigateToPeer, MessageReference?, OpenPeerSource) -> Void,
|
||||||
openPeerMention: @escaping (String, Promise<Bool>?) -> Void,
|
openPeerMention: @escaping (String, Promise<Bool>?) -> Void,
|
||||||
@ -419,6 +421,7 @@ public final class ChatControllerInteraction: ChatControllerInteractionProtocol
|
|||||||
presentationContext: ChatPresentationContext
|
presentationContext: ChatPresentationContext
|
||||||
) {
|
) {
|
||||||
self.openMessage = openMessage
|
self.openMessage = openMessage
|
||||||
|
self.sgGetChatPredictedLang = sgGetChatPredictedLang
|
||||||
self.sgStartMessageEdit = sgStartMessageEdit
|
self.sgStartMessageEdit = sgStartMessageEdit
|
||||||
self.openPeer = openPeer
|
self.openPeer = openPeer
|
||||||
self.openPeerMention = openPeerMention
|
self.openPeerMention = openPeerMention
|
||||||
|
@ -1494,6 +1494,15 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
return rect
|
return rect
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
}, sgGetChatPredictedLang: { [weak self] in
|
||||||
|
if let strongSelf = self {
|
||||||
|
var result: String?
|
||||||
|
if let chatPeerId = strongSelf.chatLocation.peerId {
|
||||||
|
result = SGSimpleSettings.shared.outgoingLanguageTranslation[SGSimpleSettings.makeOutgoingLanguageTranslationKey(accountId: strongSelf.context.account.peerId.id._internalGetInt64Value(), peerId: chatPeerId.id._internalGetInt64Value())]
|
||||||
|
}
|
||||||
|
return result ?? strongSelf.predictedChatLanguage
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}, sgStartMessageEdit: { [weak self] message in
|
}, sgStartMessageEdit: { [weak self] message in
|
||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
strongSelf.interfaceInteraction?.setupEditMessage(message.id, { _ in })
|
strongSelf.interfaceInteraction?.setupEditMessage(message.id, { _ in })
|
||||||
|
Loading…
x
Reference in New Issue
Block a user