From 1b6f2656e4a881f5d537dbfff3341aa4c1bb73a9 Mon Sep 17 00:00:00 2001 From: Mustafa Merza <mustafa.merza95@gmail.com> Date: Sun, 11 Aug 2024 14:33:29 +0300 Subject: [PATCH] - Added removing image files if the user closes folders sheet after choosing images from photos. --- .../DocumentPreviewViewController.swift | 6 +++-- .../DocumentsTableViewController.swift | 22 ++++++++++++++----- .../FoldersViewController.swift | 14 +++++++----- .../EditViewController.swift | 7 ++++-- .../Scan/ScannerViewController.swift | 7 ++++-- 5 files changed, 39 insertions(+), 17 deletions(-) diff --git a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift index 1797c22..031406a 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 26786e0..7672360 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 2ac049a..2af9e08 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 6a26f00..90387a5 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 9ac3d32..d96a866 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) + } } } -- GitLab