forked from shadowfacts/Tusker
parent
11e81acbc1
commit
0a8d50cc27
|
@ -14,6 +14,7 @@ import VisionKit
|
|||
protocol LargeImageContentView: UIView {
|
||||
var animationImage: UIImage? { get }
|
||||
var activityItemsForSharing: [Any] { get }
|
||||
var owner: LargeImageViewController? { get set }
|
||||
func setControlsVisible(_ controlsVisible: Bool)
|
||||
func grayscaleStateChanged()
|
||||
}
|
||||
|
@ -29,17 +30,14 @@ class LargeImageImageContentView: UIImageView, LargeImageContentView {
|
|||
#endif
|
||||
|
||||
var animationImage: UIImage? { image! }
|
||||
|
||||
var activityItemsForSharing: [Any] {
|
||||
[image!]
|
||||
}
|
||||
weak var owner: LargeImageViewController?
|
||||
|
||||
private var sourceData: Data?
|
||||
private weak var owner: UIViewController?
|
||||
|
||||
init(image: UIImage, owner: UIViewController?) {
|
||||
self.owner = owner
|
||||
|
||||
init(image: UIImage) {
|
||||
super.init(image: image)
|
||||
|
||||
contentMode = .scaleAspectFit
|
||||
|
@ -109,11 +107,11 @@ extension LargeImageImageContentView: ImageAnalysisInteractionDelegate {
|
|||
|
||||
class LargeImageGifContentView: GIFImageView, LargeImageContentView {
|
||||
var animationImage: UIImage? { image }
|
||||
|
||||
var activityItemsForSharing: [Any] {
|
||||
// todo: should gifs share the data?
|
||||
[image].compactMap { $0 }
|
||||
}
|
||||
weak var owner: LargeImageViewController?
|
||||
|
||||
init(gifController: GIFController) {
|
||||
super.init(image: gifController.lastFrame?.image)
|
||||
|
@ -144,6 +142,7 @@ class LargeImageGifvContentView: GifvAttachmentView, LargeImageContentView {
|
|||
// some SO posts indicate that just sharing a URL to the video should work, but that may need to be a local URL?
|
||||
[]
|
||||
}
|
||||
weak var owner: LargeImageViewController?
|
||||
|
||||
private let asset: AVURLAsset
|
||||
|
||||
|
|
|
@ -103,15 +103,19 @@ class LargeImageViewController: UIViewController, UIScrollViewDelegate, LargeIma
|
|||
dismissInteractionController = LargeImageInteractionController(viewController: self)
|
||||
}
|
||||
|
||||
view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(scrollViewPressed(_:))))
|
||||
let singleTap = UITapGestureRecognizer(target: self, action: #selector(scrollViewPressed(_:)))
|
||||
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(scrollViewDoubleTapped(_:)))
|
||||
doubleTap.numberOfTapsRequired = 2
|
||||
// this requirement is needed to make sure the double tap is ever recognized
|
||||
singleTap.require(toFail: doubleTap)
|
||||
view.addGestureRecognizer(singleTap)
|
||||
view.addGestureRecognizer(doubleTap)
|
||||
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(preferencesChanged), name: .preferencesChanged, object: nil)
|
||||
}
|
||||
|
||||
private func setupContentView() {
|
||||
contentView.owner = self
|
||||
contentView.translatesAutoresizingMaskIntoConstraints = false
|
||||
scrollView.addSubview(contentView)
|
||||
contentViewLeadingConstraint = contentView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor)
|
||||
|
|
|
@ -138,9 +138,9 @@ class LoadingLargeImageViewController: UIViewController, LargeImageAnimatableVie
|
|||
content = LargeImageGifContentView(gifController: gifController)
|
||||
} else {
|
||||
if let transformedImage = ImageGrayscalifier.convertIfNecessary(url: url, image: image) {
|
||||
content = LargeImageImageContentView(image: transformedImage, owner: self)
|
||||
content = LargeImageImageContentView(image: transformedImage)
|
||||
} else {
|
||||
content = LargeImageImageContentView(image: image, owner: self)
|
||||
content = LargeImageImageContentView(image: image)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,7 +167,7 @@ class LoadingLargeImageViewController: UIViewController, LargeImageAnimatableVie
|
|||
let grayscale = ImageGrayscalifier.convert(url: nil, cgImage: source) {
|
||||
image = grayscale
|
||||
}
|
||||
setContent(LargeImageImageContentView(image: image, owner: self))
|
||||
setContent(LargeImageImageContentView(image: image))
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue