diff --git a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift index 1797c2283f94ac9293ee9951885d92ca82d68906..031406aae28099e75e6794ecbdffb5620f235769 100644 --- a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift +++ b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift @@ -739,8 +739,10 @@ extension DocumentPreviewViewController { extension DocumentPreviewViewController: FoldersViewControllerDelegate { - func folderSelected(folder: Folder) { + func dismissed(_ foldersViewController: FoldersViewController, folder: Folder?) { - handleMoveScanSession(to: folder) + if let folder { + handleMoveScanSession(to: folder) + } } } diff --git a/MiniScanner/Modules/Documents/DocumentsTableViewController.swift b/MiniScanner/Modules/Documents/DocumentsTableViewController.swift index 26786e0dd46ca382a11d8abb616907d3804648de..76723603511bd62e7b27368d0810173da4252477 100644 --- a/MiniScanner/Modules/Documents/DocumentsTableViewController.swift +++ b/MiniScanner/Modules/Documents/DocumentsTableViewController.swift @@ -478,7 +478,7 @@ extension DocumentsTableViewController: ScannerViewControllerDelegate { extension DocumentsTableViewController: PHPickerViewControllerDelegate { func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { - + picker.dismiss(animated: true) { [weak self] in guard let self else { return } @@ -542,6 +542,8 @@ extension DocumentsTableViewController: PHPickerViewControllerDelegate { addScanSession(scannedItems: scannedItems, folder: selectedFolder) } else { + tabBarController?.selectedIndex = 0 + self.scannedItems = scannedItems displayFoldersViewSheet(excludedFolders: []) } @@ -869,18 +871,28 @@ extension DocumentsTableViewController: DocumentsCellDelegate { extension DocumentsTableViewController: FoldersViewControllerDelegate { - func folderSelected(folder: Folder) { + func dismissed(_ foldersViewController: FoldersViewController, folder: Folder?) { - if let session = selectedSessionToMove, let sourceFolder = folders.first(where: { $0.id == session.folderId }) { + if let folder, let session = selectedSessionToMove, let sourceFolder = folders.first(where: { $0.id == session.folderId }) { selectedSessionToMove = nil handleMoveScanSession(session: session, from: sourceFolder, to: folder) } else if let scannedItems { - addScanSession(scannedItems: scannedItems, folder: folder) - self.scannedItems = nil + if let folder { + + addScanSession(scannedItems: scannedItems, folder: folder) + + self.scannedItems = nil + } + else { + + let scanSession = ScanSession(id: UUID(), name: "", creationDate: .now, scannedItems: scannedItems) + + deleteScanSessionUseCase.execute(with: scanSession) + } } } } diff --git a/MiniScanner/Modules/Documents/FoldersViewController/FoldersViewController.swift b/MiniScanner/Modules/Documents/FoldersViewController/FoldersViewController.swift index 2ac049acfa32ae88f0ea372af044a7cf10684483..2af9e0882fa859749f268aac3d7c2a41ab4c622e 100644 --- a/MiniScanner/Modules/Documents/FoldersViewController/FoldersViewController.swift +++ b/MiniScanner/Modules/Documents/FoldersViewController/FoldersViewController.swift @@ -8,7 +8,7 @@ import UIKit protocol FoldersViewControllerDelegate { - func folderSelected(folder: Folder) + func dismissed(_ foldersViewController: FoldersViewController, folder: Folder?) } class FoldersViewController: UIViewController { @@ -26,6 +26,7 @@ class FoldersViewController: UIViewController { private var folders: [Folder] = [] private var displayedFolders: [Folder] = [] + private var selectedFolder: Folder? = nil @IBOutlet weak var titleLabel: UILabel! @@ -38,6 +39,10 @@ class FoldersViewController: UIViewController { setupUI() } + override func viewDidDisappear(_ animated: Bool) { + delegate?.dismissed(self, folder: selectedFolder) + } + private func fetchFolders() { folders = getFoldersUseCase.execute() @@ -94,12 +99,9 @@ extension FoldersViewController: UICollectionViewDataSource, UICollectionViewDel func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - let selectedFolder = displayedFolders[indexPath.row] + selectedFolder = displayedFolders[indexPath.row] - dismiss(animated: true) { - - self.delegate?.folderSelected(folder: selectedFolder) - } + dismiss(animated: true) } } diff --git a/MiniScanner/Modules/EditViewController/EditViewController.swift b/MiniScanner/Modules/EditViewController/EditViewController.swift index 6a26f005a1e1d20f6292d04573fa20b0dc2bbec9..90387a5b819d4a904eebb103d1011db2d909c2d0 100644 --- a/MiniScanner/Modules/EditViewController/EditViewController.swift +++ b/MiniScanner/Modules/EditViewController/EditViewController.swift @@ -897,8 +897,11 @@ extension EditViewController: ShareSheetViewControllerDelegate { extension EditViewController: FoldersViewControllerDelegate { - func folderSelected(folder: Folder) { - addScanSession(name: name, to: folder) + func dismissed(_ foldersViewController: FoldersViewController, folder: Folder?) { + + if let folder { + addScanSession(name: name, to: folder) + } } } diff --git a/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Scan/ScannerViewController.swift b/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Scan/ScannerViewController.swift index 9ac3d328ee2abfe332553b676f6c9abd513e60b1..d96a866779ba61ada22de5521668888ff59af05c 100644 --- a/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Scan/ScannerViewController.swift +++ b/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Scan/ScannerViewController.swift @@ -436,8 +436,11 @@ public final class ScannerViewController: UIViewController, ScanSessionSharable, extension ScannerViewController: FoldersViewControllerDelegate { - func folderSelected(folder: Folder) { - addScanSession(name: name, to: folder) + func dismissed(_ foldersViewController: FoldersViewController, folder: Folder?) { + + if let folder { + addScanSession(name: name, to: folder) + } } }