Various fixes

This commit is contained in:
Ilya Laktyushin 2024-11-10 23:24:34 +04:00
parent 1ef71d2f46
commit 83364952d0
3 changed files with 45 additions and 3 deletions

View File

@ -257,6 +257,7 @@ private final class CameraContext {
mainDeviceContext.output.markPositionChange(position: targetPosition)
} else {
self.session.session.stopRunning()
self.configure {
let isRoundVideo = self.initialConfiguration.isRoundVideo
self.mainDeviceContext?.invalidate(switchAudio: !isRoundVideo)
@ -284,6 +285,7 @@ private final class CameraContext {
self.modeChange = .none
}
}
self.session.session.startRunning()
}
}
@ -320,6 +322,7 @@ private final class CameraContext {
self.modeChange = .dualCamera
}
self.session.session.stopRunning()
if enabled {
self.configure {
self.mainDeviceContext?.invalidate()
@ -432,6 +435,7 @@ private final class CameraContext {
self?.detectedCodesPipe.putNext(codes)
}
}
self.session.session.startRunning()
if change {
if #available(iOS 13.0, *), let previewView = self.simplePreviewView {

View File

@ -2246,6 +2246,9 @@ public final class WebAppController: ViewController, AttachmentContainable {
self?.startDownload(url: url, fileName: fileName, fileSize: fileSize, isMedia: isMedia)
})
], parseMarkdown: true)
alertController.dismissed = { [weak self] byOutsideTap in
self?.webView?.sendEvent(name: "file_download_requested", data: "{status: \"cancelled\"}")
}
controller.present(alertController, in: .window(.root))
})
}
@ -2447,6 +2450,9 @@ public final class WebAppController: ViewController, AttachmentContainable {
}
}
)
alertController.dismissed = { [weak self] byOutsideTap in
self?.webView?.sendEvent(name: "emoji_status_access_requested", data: "{status: \"cancelled\"}")
}
controller.present(alertController, in: .window(.root))
})
}
@ -2477,7 +2483,22 @@ public final class WebAppController: ViewController, AttachmentContainable {
guard let self else {
return
}
if result {
if result, let controller {
let context = self.context
if !context.isPremium {
var replaceImpl: ((ViewController) -> Void)?
let demoController = context.sharedContext.makePremiumDemoController(context: context, subject: .emojiStatus, forceDark: false, action: {
let controller = context.sharedContext.makePremiumIntroController(context: context, source: .animatedEmoji, forceDark: false, dismissed: nil)
replaceImpl?(controller)
}, dismissed: nil)
replaceImpl = { [weak demoController] c in
demoController?.replace(with: c)
}
controller.parentController()?.push(demoController)
self.webView?.sendEvent(name: "emoji_status_failed", data: "{error: \"USER_DECLINED\"}")
return
}
let _ = (self.context.engine.accountData.setEmojiStatus(file: file, expirationDate: expirationDate)
|> deliverOnMainQueue).start(completed: { [weak self] in
self?.webView?.sendEvent(name: "emoji_status_set", data: nil)
@ -2494,7 +2515,7 @@ public final class WebAppController: ViewController, AttachmentContainable {
return true
}
)
controller?.present(resultController, in: .window(.root))
controller.present(resultController, in: .window(.root))
} else {
self.webView?.sendEvent(name: "emoji_status_failed", data: "{error: \"USER_DECLINED\"}")
}

View File

@ -154,7 +154,24 @@ private final class SheetContent: CombinedComponent {
break
}
case let .externalReference(reference):
let _ = reference
switch reference.message {
case let .auto(textValue, entitiesValue, _):
text = textValue
entities = entitiesValue
case let .text(textValue, entitiesValue, disableUrlPreview, previewParameters, _):
text = textValue
entities = entitiesValue
let _ = disableUrlPreview
let _ = previewParameters
case let .contact(contact, _):
media = [contact]
case let .mapLocation(map, _):
media = [map]
case let .invoice(invoice, _):
media = [invoice]
default:
break
}
}
let messageItem = PeerNameColorChatPreviewItem.MessageItem(