Skip to content
Snippets Groups Projects
Commit 86fa1b84 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Use MakeAppScreenshot in SingleChatController

parent 157b033e
No related branches found
No related tags found
3 merge requests!71Releasing v1.1.5 (214),!69Implemented filtering for banned/blocked users and reporting,!67v1.1.5 b(203)
......@@ -464,6 +464,7 @@ let package = Package(
.target(name: "Presentation"),
.target(name: "DrawerFeature"),
.target(name: "ChatInputFeature"),
.target(name: "ReportingFeature"),
.target(name: "DependencyInjection"),
.product(name: "ChatLayout", package: "ChatLayout"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
......
......@@ -12,6 +12,7 @@ import ChatLayout
import DrawerFeature
import DifferenceKit
import ChatInputFeature
import ReportingFeature
import DependencyInjection
import ScrollViewController
......@@ -28,6 +29,7 @@ public final class SingleChatController: UIViewController {
@Dependency private var logger: XXLogger
@Dependency private var voxophone: Voxophone
@Dependency private var coordinator: ChatCoordinating
@Dependency private var makeAppScreenshot: MakeAppScreenshot
@Dependency private var statusBarController: StatusBarStyleControlling
lazy private var infoView = UIControl()
......@@ -430,7 +432,7 @@ public final class SingleChatController: UIViewController {
drawer.dismiss(animated: true) { [weak self] in
guard let self = self else { return }
self.drawerCancellables.removeAll()
self.viewModel.proceeedWithReport(screenshot: self.takeAppScreenshot()) {
self.viewModel.proceeedWithReport(screenshot: try! self.makeAppScreenshot()) {
self.navigationController?.popViewController(animated: true)
}
}
......@@ -447,26 +449,6 @@ public final class SingleChatController: UIViewController {
coordinator.toDrawer(drawer, from: self)
}
func takeAppScreenshot() -> UIImage {
guard let foregroundWindowScene = foregroundWindowScene else {
fatalError("[takeAppScreenshot]: Unable to get foreground window scene")
}
let keyWindow = getKeyWindow(foregroundWindowScene)
let rendererFormat = UIGraphicsImageRendererFormat()
rendererFormat.scale = foregroundWindowScene.screen.scale
let renderer = UIGraphicsImageRenderer(
bounds: keyWindow.bounds,
format: rendererFormat
)
return renderer.image { ctx in
keyWindow.layer.render(in: ctx.cgContext)
}
}
private func presentDeleteAllDrawer() {
let clearButton = CapsuleButton()
clearButton.setStyle(.red)
......@@ -596,11 +578,17 @@ extension SingleChatController: KeyboardListenerDelegate {
}
func keyboardWillChangeFrame(info: KeyboardInfo) {
guard let scene = foregroundWindowScene else {
fatalError("[keyboardWillChangeFrame]: Couldn't get foregroundWindowScene")
let keyWindow: UIWindow? = UIApplication.shared.connectedScenes
.filter { $0.activationState == .foregroundActive }
.compactMap { $0 as? UIWindowScene }
.first?
.windows
.first(where: \.isKeyWindow)
guard let keyWindow = keyWindow else {
fatalError("[keyboardWillChangeFrame]: Couldn't get key window")
}
let keyWindow = getKeyWindow(scene)
let keyboardFrame = keyWindow.convert(info.frameEnd, to: view)
guard !currentInterfaceActions.options.contains(.changingFrameSize),
......@@ -764,16 +752,3 @@ extension SingleChatController: QLPreviewControllerDelegate {
fileURL = nil
}
}
let foregroundWindowScene: UIWindowScene? = UIApplication.shared.connectedScenes
.filter { $0.activationState == .foregroundActive }
.compactMap { $0 as? UIWindowScene }
.first
func getKeyWindow(_ scene: UIWindowScene) -> UIWindow {
guard let keyWindow = scene.windows.first(where: \.isKeyWindow) else {
fatalError("Unable to get key window")
}
return keyWindow
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment