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( ...@@ -464,6 +464,7 @@ let package = Package(
.target(name: "Presentation"), .target(name: "Presentation"),
.target(name: "DrawerFeature"), .target(name: "DrawerFeature"),
.target(name: "ChatInputFeature"), .target(name: "ChatInputFeature"),
.target(name: "ReportingFeature"),
.target(name: "DependencyInjection"), .target(name: "DependencyInjection"),
.product(name: "ChatLayout", package: "ChatLayout"), .product(name: "ChatLayout", package: "ChatLayout"),
.product(name: "DifferenceKit", package: "DifferenceKit"), .product(name: "DifferenceKit", package: "DifferenceKit"),
......
...@@ -12,6 +12,7 @@ import ChatLayout ...@@ -12,6 +12,7 @@ import ChatLayout
import DrawerFeature import DrawerFeature
import DifferenceKit import DifferenceKit
import ChatInputFeature import ChatInputFeature
import ReportingFeature
import DependencyInjection import DependencyInjection
import ScrollViewController import ScrollViewController
...@@ -28,6 +29,7 @@ public final class SingleChatController: UIViewController { ...@@ -28,6 +29,7 @@ public final class SingleChatController: UIViewController {
@Dependency private var logger: XXLogger @Dependency private var logger: XXLogger
@Dependency private var voxophone: Voxophone @Dependency private var voxophone: Voxophone
@Dependency private var coordinator: ChatCoordinating @Dependency private var coordinator: ChatCoordinating
@Dependency private var makeAppScreenshot: MakeAppScreenshot
@Dependency private var statusBarController: StatusBarStyleControlling @Dependency private var statusBarController: StatusBarStyleControlling
lazy private var infoView = UIControl() lazy private var infoView = UIControl()
...@@ -430,7 +432,7 @@ public final class SingleChatController: UIViewController { ...@@ -430,7 +432,7 @@ public final class SingleChatController: UIViewController {
drawer.dismiss(animated: true) { [weak self] in drawer.dismiss(animated: true) { [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.drawerCancellables.removeAll() self.drawerCancellables.removeAll()
self.viewModel.proceeedWithReport(screenshot: self.takeAppScreenshot()) { self.viewModel.proceeedWithReport(screenshot: try! self.makeAppScreenshot()) {
self.navigationController?.popViewController(animated: true) self.navigationController?.popViewController(animated: true)
} }
} }
...@@ -447,26 +449,6 @@ public final class SingleChatController: UIViewController { ...@@ -447,26 +449,6 @@ public final class SingleChatController: UIViewController {
coordinator.toDrawer(drawer, from: self) 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() { private func presentDeleteAllDrawer() {
let clearButton = CapsuleButton() let clearButton = CapsuleButton()
clearButton.setStyle(.red) clearButton.setStyle(.red)
...@@ -596,11 +578,17 @@ extension SingleChatController: KeyboardListenerDelegate { ...@@ -596,11 +578,17 @@ extension SingleChatController: KeyboardListenerDelegate {
} }
func keyboardWillChangeFrame(info: KeyboardInfo) { func keyboardWillChangeFrame(info: KeyboardInfo) {
guard let scene = foregroundWindowScene else { let keyWindow: UIWindow? = UIApplication.shared.connectedScenes
fatalError("[keyboardWillChangeFrame]: Couldn't get foregroundWindowScene") .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) let keyboardFrame = keyWindow.convert(info.frameEnd, to: view)
guard !currentInterfaceActions.options.contains(.changingFrameSize), guard !currentInterfaceActions.options.contains(.changingFrameSize),
...@@ -764,16 +752,3 @@ extension SingleChatController: QLPreviewControllerDelegate { ...@@ -764,16 +752,3 @@ extension SingleChatController: QLPreviewControllerDelegate {
fileURL = nil 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.
Please register or to comment