Merge branch 'evanhahn/renderasimage-always-returns'

This commit is contained in:
Evan Hahn 2022-04-05 13:32:59 -05:00
commit cda73bbf92
4 changed files with 14 additions and 22 deletions

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
// Copyright (c) 2022 Open Whisper Systems. All rights reserved.
//
import Foundation
@ -122,9 +122,7 @@ class PreviewWallpaperViewController: UIViewController {
guard let standalonePage = self.standalonePage else {
return owsFailDebug("Missing standalone page for photo")
}
guard let croppedAndScaledPhoto = standalonePage.view.renderAsImage() else {
return owsFailDebug("Failed to snapshot cropped and scaled photo")
}
let croppedAndScaledPhoto = standalonePage.view.renderAsImage()
try Wallpaper.setPhoto(croppedAndScaledPhoto, for: self.thread, transaction: transaction)
case .preset(let selectedWallpaper):
try Wallpaper.setBuiltIn(selectedWallpaper, for: self.thread, transaction: transaction)

View File

@ -65,11 +65,11 @@ public class SpacerView: UIView {
@objc
public extension UIView {
func renderAsImage() -> UIImage? {
func renderAsImage() -> UIImage {
renderAsImage(opaque: false, scale: UIScreen.main.scale)
}
func renderAsImage(opaque: Bool, scale: CGFloat) -> UIImage? {
func renderAsImage(opaque: Bool, scale: CGFloat) -> UIImage {
let format = UIGraphicsImageRendererFormat()
format.scale = scale
format.opaque = opaque

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
// Copyright (c) 2022 Open Whisper Systems. All rights reserved.
//
import UIKit
@ -214,15 +214,12 @@ public class ImageEditorPaletteView: UIView {
shadowView.layer.shadowOffset = .zero
addSubview(shadowView)
if let image = ImageEditorPaletteView.buildPaletteGradientImage() {
imageView.image = image
let imageRadius = image.size.width * 0.5
imageView.layer.cornerRadius = imageRadius
shadowView.layer.cornerRadius = imageRadius
imageView.clipsToBounds = true
} else {
owsFailDebug("Missing image.")
}
let image = ImageEditorPaletteView.buildPaletteGradientImage()
imageView.image = image
let imageRadius = image.size.width * 0.5
imageView.layer.cornerRadius = imageRadius
shadowView.layer.cornerRadius = imageRadius
imageView.clipsToBounds = true
addSubview(imageView)
// We use an invisible margin to expand the hot area of this control.
let margin: CGFloat = 20
@ -362,7 +359,7 @@ public class ImageEditorPaletteView: UIView {
selectColor(atLocationY: location.y)
}
private static func buildPaletteGradientImage() -> UIImage? {
private static func buildPaletteGradientImage() -> UIImage {
let gradientSize = CGSize(width: 8, height: 200)
let gradientBounds = CGRect(origin: .zero, size: gradientSize)
let gradientView = UIView()

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
// Copyright (c) 2022 Open Whisper Systems. All rights reserved.
//
import Foundation
@ -527,10 +527,7 @@ public class WallpaperBlurProviderImpl: NSObject, WallpaperBlurProvider {
guard bounds.width > 0, bounds.height > 0 else {
return nil
}
guard let contentImage = contentView.renderAsImage() else {
owsFailDebug("Could not render contentView.")
return nil
}
let contentImage = contentView.renderAsImage()
// We approximate the behavior of UIVisualEffectView(effect: UIBlurEffect(style: .regular)).
let tintColor: UIColor = (isDarkThemeEnabled
? UIColor.ows_black.withAlphaComponent(0.9)