From 749e6e033bc0c5d0e5416ad52df6e8f93e3cb9ef Mon Sep 17 00:00:00 2001
From: Mustafa Merza <mustafa.merza95@gmail.com>
Date: Sun, 21 Jul 2024 12:11:27 +0300
Subject: [PATCH] - Moved used system ui images to image's extension.

---
 MiniScanner/Extensions/UIImage+Images.swift          | 12 ++++++++++++
 .../Settings/Presentation/SettingsViewModel.swift    |  5 +----
 .../DocumentPreviewViewController.swift              |  4 ++--
 .../Documents/DocumentsTableViewController.swift     |  9 +++------
 .../Frameworks/FSPager/FSPagerViewCell.swift         |  4 ++--
 5 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/MiniScanner/Extensions/UIImage+Images.swift b/MiniScanner/Extensions/UIImage+Images.swift
index db08654..255f457 100644
--- a/MiniScanner/Extensions/UIImage+Images.swift
+++ b/MiniScanner/Extensions/UIImage+Images.swift
@@ -16,4 +16,16 @@ extension UIImage {
 // MARK: - Common system images and icons
 extension UIImage {
     
+    static let chevronLeft = UIImage(systemName: "chevron.left")
+    static let chevronRight = UIImage(systemName: "chevron.right")
+    
+    static let trash = UIImage(systemName: "trash")
+    static let trashFill = UIImage(systemName: "trash.fill")
+    
+    static let squareAndPencil = UIImage(systemName: "square.and.pencil")
+    
+    static let eye = UIImage(systemName: "eye")
+    
+    static let camera = UIImage(systemName: "camera")
+    static let photo = UIImage(systemName: "photo")
 }
diff --git a/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift b/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift
index ba32961..bc62fb3 100644
--- a/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift
+++ b/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift
@@ -102,10 +102,7 @@ extension SettingsViewModel2 {
         
         let navigationController = coordinator.navigationController
         
-        let chevronLeft = UIImage(systemName: "chevron.left")
-        let chevronRight = UIImage(systemName: "chevron.right")
-        
-        let backImage = SupportedLanguage.currentLanguage.layoutDirection == .leftToRight ? chevronLeft : chevronRight
+        let backImage: UIImage? = SupportedLanguage.currentLanguage.layoutDirection == .leftToRight ? .chevronLeft : .chevronRight
         
         navigationController.navigationBar.backIndicatorImage = backImage
         navigationController.navigationBar.backIndicatorTransitionMaskImage = backImage
diff --git a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift
index c8364cc..7b3b977 100644
--- a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift
+++ b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift
@@ -104,11 +104,11 @@ final class DocumentPreviewViewController: UIViewController {
         })
         
         alertController.addAction(cameraAction)
-        cameraAction.setValue(UIImage(systemName: "camera"), forKey: "image")
+        cameraAction.setValue(UIImage.camera, forKey: "image")
         cameraAction.setValue(CATextLayerAlignmentMode.left, forKey: "titleTextAlignment")
         
         alertController.addAction(galleryAction)
-        galleryAction.setValue(UIImage(systemName: "photo"), forKey: "image")
+        galleryAction.setValue(UIImage.photo, forKey: "image")
         galleryAction.setValue(CATextLayerAlignmentMode.left, forKey: "titleTextAlignment")
         
         alertController.addAction(UIAlertAction(title: .cancel.localized, style: .cancel, handler: nil))
diff --git a/MiniScanner/Modules/Documents/DocumentsTableViewController.swift b/MiniScanner/Modules/Documents/DocumentsTableViewController.swift
index df7b684..bf853e9 100644
--- a/MiniScanner/Modules/Documents/DocumentsTableViewController.swift
+++ b/MiniScanner/Modules/Documents/DocumentsTableViewController.swift
@@ -260,7 +260,7 @@ final class DocumentsTableViewController: UIViewController, UITableViewDelegate,
             completionHandler(true)
         }
         trash.backgroundColor = .systemRed
-        trash.image = UIImage(systemName: "trash")?.tint(with: .white)
+        trash.image = .trash?.tint(with: .white)
         
         // Rename action
         let rename = UIContextualAction(style: .normal,
@@ -269,7 +269,7 @@ final class DocumentsTableViewController: UIViewController, UITableViewDelegate,
             completionHandler(true)
         }
         rename.backgroundColor = UIColor.black.withAlphaComponent(0.5)
-        rename.image = UIImage(systemName: "square.and.pencil")?.tint(with: .white)
+        rename.image = .squareAndPencil?.tint(with: .white)
         
         let move = UIContextualAction(style: .normal,
                                       title: .move.localized) { [weak self] (_, _, completionHandler) in
@@ -635,10 +635,7 @@ extension DocumentsTableViewController {
         
         let navigationController = navigationController!
         
-        let chevronLeft = UIImage(systemName: "chevron.left")
-        let chevronRight = UIImage(systemName: "chevron.right")
-        
-        let backImage = SupportedLanguage.currentLanguage.layoutDirection == .leftToRight ? chevronLeft : chevronRight
+        let backImage: UIImage? = SupportedLanguage.currentLanguage.layoutDirection == .leftToRight ? .chevronLeft : .chevronRight
         
         navigationController.navigationBar.backIndicatorImage = backImage
         navigationController.navigationBar.backIndicatorTransitionMaskImage = backImage
diff --git a/MiniScanner/Supporting Files/Frameworks/FSPager/FSPagerViewCell.swift b/MiniScanner/Supporting Files/Frameworks/FSPager/FSPagerViewCell.swift
index 0f42136..27a03d1 100644
--- a/MiniScanner/Supporting Files/Frameworks/FSPager/FSPagerViewCell.swift	
+++ b/MiniScanner/Supporting Files/Frameworks/FSPager/FSPagerViewCell.swift	
@@ -99,7 +99,7 @@ open class FSPagerViewCell: UICollectionViewCell {
         
         trashButton = UIButton(frame: CGRect(x: xPosition, y: Int(yPosition), width: 50, height: 50)) // Adjust frame as needed
         self.contentView.addSubview(trashButton) // Add the button to the cell's contentView
-        trashButton.setImage(UIImage(systemName: "trash.fill"), for: .normal)
+        trashButton.setImage(.trashFill, for: .normal)
         trashButton.addTarget(self, action: #selector(topLeftButtonTapped), for: .touchUpInside) // Set the button action
         trashButton.tintColor = .red
         
@@ -109,7 +109,7 @@ open class FSPagerViewCell: UICollectionViewCell {
         
         previewButton = UIButton(frame: CGRect(x: Int(previewXPosition), y: Int(previewYPosition), width: 50, height: 50)) // Adjust frame as needed
         self.contentView.addSubview(previewButton) // Add the button to the cell's contentView
-        previewButton.setImage(UIImage(systemName: "eye"), for: .normal)
+        previewButton.setImage(.eye, for: .normal)
         previewButton.addTarget(self, action: #selector(imagePreview), for: .touchUpInside) // Set the button action
         previewButton.tintColor = .red
         imageView.contentMode = .scaleAspectFit
-- 
GitLab