diff --git a/MiniScanner/Extensions/UIImage+Images.swift b/MiniScanner/Extensions/UIImage+Images.swift index e33bbe061c639757c870cc71e3a0bb8b879ae059..d05180e4073b925bb5ccf96933befc4f76abd751 100644 --- a/MiniScanner/Extensions/UIImage+Images.swift +++ b/MiniScanner/Extensions/UIImage+Images.swift @@ -42,6 +42,8 @@ extension UIImage { static let squareAndPencil = UIImage(systemName: "square.and.pencil") + static let photoStack = UIImage(systemName: "photo.stack") + static let share = UIImage(systemName: "square.and.arrow.up")?.tint(with: .mainBlue) static let eye = UIImage(systemName: "eye") diff --git a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift index 3bcca14a125d74345a06b2850ad6c634f6eb700f..1797c2283f94ac9293ee9951885d92ca82d68906 100644 --- a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift +++ b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift @@ -1,4 +1,5 @@ import UIKit +import SwiftUI import PDFKit import PhotosUI import VisionKit @@ -256,6 +257,20 @@ extension DocumentPreviewViewController: ScannedItemPagerViewCellDelegate { func delete(at index: Int) { displayDeletePageDialog(at: index) } + + func compress(at index: Int) { + displayCompressImage(at: index) + } + + private func displayCompressImage(at index: Int) { + + if let image = session.scannedItems[index].newRenderedImage?.retrieveImage() { + + let imageCompressController = UIHostingController(rootView: ImageCompressView(image: image)) + + present(imageCompressController, animated: true) + } + } } // MARK: - UIPrintInteractionControllerDelegate diff --git a/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift b/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift index 8fe0932c8edfedce7747f3cca18ecebde5840cc3..f4659b3fe3668564cefd9e0eaec01298b87d9199 100644 --- a/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift +++ b/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift @@ -12,6 +12,7 @@ protocol ScannedItemPagerViewCellDelegate: AnyObject { func delete(at: Int) func preview(at: Int) func select(at: Int) + func compress(at: Int) } class ScannedItemPagerViewCell: FSPagerViewCell { @@ -53,6 +54,8 @@ class ScannedItemPagerViewCell: FSPagerViewCell { view.addArrangedSubview(preview) view.addArrangedSubview(trash) + view.addArrangedSubview(compress) + view.translatesAutoresizingMaskIntoConstraints = false return view @@ -76,6 +79,12 @@ class ScannedItemPagerViewCell: FSPagerViewCell { return button }() + lazy var compress: UIButton = { + var button = getButton(image: .photoStack!) + button.addTarget(self, action: #selector(compressTapped), for: .touchUpInside) + return button + }() + func configure(with scannedItem: ScannedItem, at index: Int, delegate: ScannedItemPagerViewCellDelegate) { @@ -126,6 +135,12 @@ extension ScannedItemPagerViewCell { } } + @objc private func compressTapped() { + if let index { + cellDelegate?.compress(at: index) + } + } + private func getButton(image: UIImage) -> UIButton { let button = UIButton(frame: CGRect(x: 0, y: 0, width: 24, height: 24))