diff --git a/MiniScanner.xcodeproj/project.pbxproj b/MiniScanner.xcodeproj/project.pbxproj
index 52fb0a029e542ba0c9779c6783b15e7f74d87ac5..6645f8dc37583efbdad8238534f672b50adc218a 100644
--- a/MiniScanner.xcodeproj/project.pbxproj
+++ b/MiniScanner.xcodeproj/project.pbxproj
@@ -250,6 +250,22 @@
 		67A2AF6E2C6B46D100039F30 /* ScanSessionPreviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF6C2C6B46D100039F30 /* ScanSessionPreviewViewController.swift */; };
 		67A2AF6F2C6B46D100039F30 /* ScanSessionPreviewViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 67A2AF6D2C6B46D100039F30 /* ScanSessionPreviewViewController.xib */; };
 		67A2AF712C6B4A5400039F30 /* ScannedItemPreviewPagerViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF702C6B4A5400039F30 /* ScannedItemPreviewPagerViewCell.swift */; };
+		67A2AF752C6B6F5100039F30 /* SettingButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF742C6B6F5100039F30 /* SettingButton.swift */; };
+		67A2AF782C6B6F7700039F30 /* NoIndicatorsScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF762C6B6F7700039F30 /* NoIndicatorsScrollView.swift */; };
+		67A2AF792C6B6F7700039F30 /* EmptyAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF772C6B6F7700039F30 /* EmptyAction.swift */; };
+		67A2AF7B2C6B759100039F30 /* SettingSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF7A2C6B759100039F30 /* SettingSheetView.swift */; };
+		67A2AF7D2C6B76BC00039F30 /* CustomPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF7C2C6B76BC00039F30 /* CustomPicker.swift */; };
+		67A2AF7F2C6B7E5D00039F30 /* View+CustomCornerRadius.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF7E2C6B7E5D00039F30 /* View+CustomCornerRadius.swift */; };
+		67A2AF812C6B7E8000039F30 /* CornerRadiusShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF802C6B7E8000039F30 /* CornerRadiusShape.swift */; };
+		67A2AF832C6B82BC00039F30 /* DefaultScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF822C6B82BC00039F30 /* DefaultScreen.swift */; };
+		67A2AF852C6B831700039F30 /* DefaultFileType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF842C6B831700039F30 /* DefaultFileType.swift */; };
+		67A2AF872C6B8B2A00039F30 /* PrimaryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF862C6B8B2A00039F30 /* PrimaryButton.swift */; };
+		67A2AF892C6B8F4500039F30 /* View+ReadSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF882C6B8F4500039F30 /* View+ReadSize.swift */; };
+		67A2AF8B2C6B900500039F30 /* GenericAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF8A2C6B900500039F30 /* GenericAction.swift */; };
+		67A2AF8D2C6B959900039F30 /* View+CustomColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF8C2C6B959900039F30 /* View+CustomColor.swift */; };
+		67A2AF8F2C6B9B5400039F30 /* View+CustomSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF8E2C6B9B5400039F30 /* View+CustomSheet.swift */; };
+		67A2AF922C6B9B8700039F30 /* View+iOS15Sheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF912C6B9B8700039F30 /* View+iOS15Sheet.swift */; };
+		67A2AF962C6BADAA00039F30 /* UserSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A2AF952C6BADAA00039F30 /* UserSettings.swift */; };
 		67D714B52C5161A30065E6F4 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 67D714B42C5161A30065E6F4 /* Images.xcassets */; };
 		67E6A1962C64DEB400A77F29 /* ScannedItemType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67E6A1952C64DEB400A77F29 /* ScannedItemType.swift */; };
 		67E6A1982C65151F00A77F29 /* ImageCompressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67E6A1972C65151F00A77F29 /* ImageCompressView.swift */; };
@@ -548,6 +564,22 @@
 		67A2AF6C2C6B46D100039F30 /* ScanSessionPreviewViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanSessionPreviewViewController.swift; sourceTree = "<group>"; };
 		67A2AF6D2C6B46D100039F30 /* ScanSessionPreviewViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ScanSessionPreviewViewController.xib; sourceTree = "<group>"; };
 		67A2AF702C6B4A5400039F30 /* ScannedItemPreviewPagerViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScannedItemPreviewPagerViewCell.swift; sourceTree = "<group>"; };
+		67A2AF742C6B6F5100039F30 /* SettingButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingButton.swift; sourceTree = "<group>"; };
+		67A2AF762C6B6F7700039F30 /* NoIndicatorsScrollView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NoIndicatorsScrollView.swift; sourceTree = "<group>"; };
+		67A2AF772C6B6F7700039F30 /* EmptyAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmptyAction.swift; sourceTree = "<group>"; };
+		67A2AF7A2C6B759100039F30 /* SettingSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingSheetView.swift; sourceTree = "<group>"; };
+		67A2AF7C2C6B76BC00039F30 /* CustomPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPicker.swift; sourceTree = "<group>"; };
+		67A2AF7E2C6B7E5D00039F30 /* View+CustomCornerRadius.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+CustomCornerRadius.swift"; sourceTree = "<group>"; };
+		67A2AF802C6B7E8000039F30 /* CornerRadiusShape.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CornerRadiusShape.swift; sourceTree = "<group>"; };
+		67A2AF822C6B82BC00039F30 /* DefaultScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultScreen.swift; sourceTree = "<group>"; };
+		67A2AF842C6B831700039F30 /* DefaultFileType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultFileType.swift; sourceTree = "<group>"; };
+		67A2AF862C6B8B2A00039F30 /* PrimaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryButton.swift; sourceTree = "<group>"; };
+		67A2AF882C6B8F4500039F30 /* View+ReadSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+ReadSize.swift"; sourceTree = "<group>"; };
+		67A2AF8A2C6B900500039F30 /* GenericAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericAction.swift; sourceTree = "<group>"; };
+		67A2AF8C2C6B959900039F30 /* View+CustomColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+CustomColor.swift"; sourceTree = "<group>"; };
+		67A2AF8E2C6B9B5400039F30 /* View+CustomSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+CustomSheet.swift"; sourceTree = "<group>"; };
+		67A2AF912C6B9B8700039F30 /* View+iOS15Sheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+iOS15Sheet.swift"; sourceTree = "<group>"; };
+		67A2AF952C6BADAA00039F30 /* UserSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSettings.swift; sourceTree = "<group>"; };
 		67D714B42C5161A30065E6F4 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
 		67E6A1952C64DEB400A77F29 /* ScannedItemType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScannedItemType.swift; sourceTree = "<group>"; };
 		67E6A1972C65151F00A77F29 /* ImageCompressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCompressView.swift; sourceTree = "<group>"; };
@@ -1182,6 +1214,7 @@
 			isa = PBXGroup;
 			children = (
 				672C46BE2C47E98A00497EF0 /* SettingsDataSource.swift */,
+				67A2AF952C6BADAA00039F30 /* UserSettings.swift */,
 			);
 			path = DataSources;
 			sourceTree = "<group>";
@@ -1192,6 +1225,8 @@
 				678BD70C2C4CF18300833DA5 /* CustomMenuPickerItem.swift */,
 				672C46C02C47E98A00497EF0 /* SupportedLanguage.swift */,
 				672C46D22C47EA8F00497EF0 /* SupportedColorScheme.swift */,
+				67A2AF822C6B82BC00039F30 /* DefaultScreen.swift */,
+				67A2AF842C6B831700039F30 /* DefaultFileType.swift */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -1377,10 +1412,15 @@
 		67807F972C49313C00D1F168 /* Presentation */ = {
 			isa = PBXGroup;
 			children = (
+				67A2AF772C6B6F7700039F30 /* EmptyAction.swift */,
+				67A2AF8A2C6B900500039F30 /* GenericAction.swift */,
+				67A2AF762C6B6F7700039F30 /* NoIndicatorsScrollView.swift */,
 				678BD70E2C4CF1A000833DA5 /* CustomMenuPicker.swift */,
+				67A2AF7C2C6B76BC00039F30 /* CustomPicker.swift */,
 				67807F9A2C49325A00D1F168 /* MainView.swift */,
 				67807F982C49320100D1F168 /* MainViewModel.swift */,
 				67807F942C49306C00D1F168 /* MainCoordinator.swift */,
+				67A2AF862C6B8B2A00039F30 /* PrimaryButton.swift */,
 			);
 			path = Presentation;
 			sourceTree = "<group>";
@@ -1388,7 +1428,12 @@
 		67807F9C2C49348B00D1F168 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				67A2AF902C6B9B6000039F30 /* Sheet */,
 				67807F9F2C4934BD00D1F168 /* View+LayoutChanges.swift */,
+				67A2AF7E2C6B7E5D00039F30 /* View+CustomCornerRadius.swift */,
+				67A2AF802C6B7E8000039F30 /* CornerRadiusShape.swift */,
+				67A2AF882C6B8F4500039F30 /* View+ReadSize.swift */,
+				67A2AF8C2C6B959900039F30 /* View+CustomColor.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -1399,6 +1444,8 @@
 				678BD7102C4CF1EB00833DA5 /* SettingsView.swift */,
 				678BD7112C4CF1EB00833DA5 /* SettingsViewCoordinator.swift */,
 				678BD7122C4CF1EB00833DA5 /* SettingsViewModel.swift */,
+				67A2AF742C6B6F5100039F30 /* SettingButton.swift */,
+				67A2AF7A2C6B759100039F30 /* SettingSheetView.swift */,
 			);
 			path = Presentation;
 			sourceTree = "<group>";
@@ -1439,6 +1486,15 @@
 			path = ScanSessionPreview;
 			sourceTree = "<group>";
 		};
+		67A2AF902C6B9B6000039F30 /* Sheet */ = {
+			isa = PBXGroup;
+			children = (
+				67A2AF8E2C6B9B5400039F30 /* View+CustomSheet.swift */,
+				67A2AF912C6B9B8700039F30 /* View+iOS15Sheet.swift */,
+			);
+			path = Sheet;
+			sourceTree = "<group>";
+		};
 		98E49D3F46C8E62718825860 /* Pods */ = {
 			isa = PBXGroup;
 			children = (
@@ -1788,6 +1844,7 @@
 				539996A32C27130000671340 /* ConstraintLayoutSupportDSL.swift in Sources */,
 				53D9D1C52C1AF521004D1C1C /* MyExtention.swift in Sources */,
 				672C46DC2C48018D00497EF0 /* UIColors+Colors.swift in Sources */,
+				67A2AF7B2C6B759100039F30 /* SettingSheetView.swift in Sources */,
 				672C46662C47C74C00497EF0 /* Inject.swift in Sources */,
 				535983F22C144E87003EB6ED /* Keys.swift in Sources */,
 				539996962C27130000671340 /* ConstraintOffsetTarget.swift in Sources */,
@@ -1801,6 +1858,7 @@
 				53014FAA2C11A8E80071CE39 /* Quadrilateral.swift in Sources */,
 				539996832C27130000671340 /* ConstraintMakerPriortizable.swift in Sources */,
 				678BD71D2C4D057200833DA5 /* UIImage+Images.swift in Sources */,
+				67A2AF8B2C6B900500039F30 /* GenericAction.swift in Sources */,
 				677E65F42C5AA3EE0039E2C5 /* Array+RemoveElement.swift in Sources */,
 				5399969E2C27130000671340 /* Debugging.swift in Sources */,
 				672C46682C47C75100497EF0 /* Clear.swift in Sources */,
@@ -1816,6 +1874,7 @@
 				53014FB72C11A8E80071CE39 /* CaptureDevice.swift in Sources */,
 				5399968D2C27130000671340 /* ConstraintDirectionalInsetTarget.swift in Sources */,
 				53014F8F2C11A8E80071CE39 /* RectangleFeaturesFunnel.swift in Sources */,
+				67A2AF852C6B831700039F30 /* DefaultFileType.swift in Sources */,
 				53014F932C11A8E80071CE39 /* PDFCreator.swift in Sources */,
 				675FF4F12C622CDE00E42214 /* ScanSessionPrintable.swift in Sources */,
 				539D1C852C164F85009DB24A /* CustomTabBarView.swift in Sources */,
@@ -1827,6 +1886,7 @@
 				539996972C27130000671340 /* ConstraintMakerEditable.swift in Sources */,
 				539996A02C27130000671340 /* LayoutConstraint.swift in Sources */,
 				53014F972C11A8E80071CE39 /* AVCaptureVideoOrientation+Utils.swift in Sources */,
+				67A2AF872C6B8B2A00039F30 /* PrimaryButton.swift in Sources */,
 				535983EF2C142C9F003EB6ED /* Localization.swift in Sources */,
 				539996892C27130000671340 /* ConstraintDSL.swift in Sources */,
 				539996952C27130000671340 /* ConstraintConstantTarget.swift in Sources */,
@@ -1883,6 +1943,7 @@
 				53014F982C11A8E80071CE39 /* URL+Utils.swift in Sources */,
 				EC8A9B00254DBFC700F9AF99 /* UserDefaults+Extensions.swift in Sources */,
 				672C46C82C47E98A00497EF0 /* SettingsDataSource.swift in Sources */,
+				67A2AF832C6B82BC00039F30 /* DefaultScreen.swift in Sources */,
 				53CD5F5C2C1505A20010424B /* Globals.swift in Sources */,
 				EC8A9B03254DC08800F9AF99 /* NSNotification+Extensions.swift in Sources */,
 				677E65B82C5A14100039E2C5 /* CoreDataManagerProtocol.swift in Sources */,
@@ -1891,11 +1952,13 @@
 				5359841A2C145E55003EB6ED /* DocumentsTableViewCell.swift in Sources */,
 				677E65DF2C5A36170039E2C5 /* DeleteFolderUseCase.swift in Sources */,
 				EC702522254DF13200BE1958 /* PencilKitViewController.swift in Sources */,
+				67A2AF962C6BADAA00039F30 /* UserSettings.swift in Sources */,
 				675FF4F52C6231D000E42214 /* PayloadType.swift in Sources */,
 				5399968F2C27130000671340 /* ConstraintConfig.swift in Sources */,
 				539996342C26D41300671340 /* OCRViewController.swift in Sources */,
 				53014F902C11A8E80071CE39 /* CaptureSessionManager.swift in Sources */,
 				539996912C27130000671340 /* ConstraintView.swift in Sources */,
+				67A2AF812C6B7E8000039F30 /* CornerRadiusShape.swift in Sources */,
 				ECA1FAA4254DEB140081F00B /* CustomPDFView.swift in Sources */,
 				53014FA32C11A8E80071CE39 /* ZoomGestureController.swift in Sources */,
 				5399964C2C26E86700671340 /* CDCameraView.m in Sources */,
@@ -1926,6 +1989,7 @@
 				67A2AF6E2C6B46D100039F30 /* ScanSessionPreviewViewController.swift in Sources */,
 				678809ED2C6A2ECB00EF9046 /* CompressType.swift in Sources */,
 				5399968A2C27130000671340 /* ConstraintMakerExtendable.swift in Sources */,
+				67A2AF792C6B6F7700039F30 /* EmptyAction.swift in Sources */,
 				67A20DDD2C57A142009D2F25 /* DocumentLayout.swift in Sources */,
 				53014FBA2C11A8E80071CE39 /* CaptureSession+Flash.swift in Sources */,
 				539996572C27124B00671340 /* FontChooserContainerView.swift in Sources */,
@@ -1943,15 +2007,18 @@
 				EC8A9B24254DE72F00F9AF99 /* UIView+Extensions.swift in Sources */,
 				EC0CF200254D8BBF00888722 /* SceneDelegate.swift in Sources */,
 				53014FBB2C11A8E80071CE39 /* CaptureSession+Orientation.swift in Sources */,
+				67A2AF7F2C6B7E5D00039F30 /* View+CustomCornerRadius.swift in Sources */,
 				53014F942C11A8E80071CE39 /* DeviceOrientationHelper.swift in Sources */,
 				EC8A9B27254DE91B00F9AF99 /* DocumentPreviewViewController.swift in Sources */,
 				67807F992C49320100D1F168 /* MainViewModel.swift in Sources */,
 				5399964A2C26E86700671340 /* CropperConstantValues.m in Sources */,
 				53014F9F2C11A8E80071CE39 /* UIImage+Utils.swift in Sources */,
 				53CD5F582C1504CF0010424B /* UIButton+Extensions.swift in Sources */,
+				67A2AF782C6B6F7700039F30 /* NoIndicatorsScrollView.swift in Sources */,
 				677E65F62C5F9E6E0039E2C5 /* ScannedItemPagerViewCell.swift in Sources */,
 				677E65DD2C5A35EE0039E2C5 /* AddFolderUseCase.swift in Sources */,
 				672C46CA2C47E98A00497EF0 /* SettingsRepository.swift in Sources */,
+				67A2AF8D2C6B959900039F30 /* View+CustomColor.swift in Sources */,
 				539D1C8B2C16E97F009DB24A /* ShareSheetViewController.swift in Sources */,
 				539996A12C27130000671340 /* ConstraintLayoutGuide+Extensions.swift in Sources */,
 				677E65C02C5A15F40039E2C5 /* ScanSessionEntity+CoreDataClass.swift in Sources */,
@@ -1963,6 +2030,7 @@
 				53014F962C11A8E80071CE39 /* ScannerViewController.swift in Sources */,
 				53014FA52C11A8E80071CE39 /* EditScanCornerView.swift in Sources */,
 				677E65EE2C5A6C0A0039E2C5 /* SessionModel.xcdatamodeld in Sources */,
+				67A2AF752C6B6F5100039F30 /* SettingButton.swift in Sources */,
 				6794328C2C689E9F002E5F8D /* WXCompress.swift in Sources */,
 				53E7D3382C1B00880025A1D3 /* FSPagerViewLayoutAttributes.swift in Sources */,
 				53014F8E2C11A8E80071CE39 /* ImageScannerController.swift in Sources */,
@@ -1974,13 +2042,17 @@
 				539996942C27130000671340 /* Typealiases.swift in Sources */,
 				5399964D2C26E86700671340 /* CDImageRectangleDetector.m in Sources */,
 				5399964E2C26E86700671340 /* CDZoomView.m in Sources */,
+				67A2AF7D2C6B76BC00039F30 /* CustomPicker.swift in Sources */,
 				535983ED2C142B49003EB6ED /* UIFont+Extensions.swift in Sources */,
 				539996582C27124B00671340 /* ImageStickerContainerView.swift in Sources */,
 				5399968B2C27130000671340 /* ConstraintPriority.swift in Sources */,
 				675FF4F92C6235F600E42214 /* ShareOption.swift in Sources */,
 				539996862C27130000671340 /* ConstraintPriorityTarget.swift in Sources */,
+				67A2AF892C6B8F4500039F30 /* View+ReadSize.swift in Sources */,
+				67A2AF922C6B9B8700039F30 /* View+iOS15Sheet.swift in Sources */,
 				EC8A9AD0254DB5A400F9AF99 /* AppTabBarController.swift in Sources */,
 				53CD5F5A2C1505500010424B /* UITextView+Extensions.swift in Sources */,
+				67A2AF8F2C6B9B5400039F30 /* View+CustomSheet.swift in Sources */,
 				539996932C27130000671340 /* ConstraintLayoutSupport.swift in Sources */,
 				5399969F2C27130000671340 /* ConstraintRelatableTarget.swift in Sources */,
 				53F21F912C1248EC00172BFC /* FolderCollectionViewCell.swift in Sources */,
diff --git a/MiniScanner/Extensions/Image+Images.swift b/MiniScanner/Extensions/Image+Images.swift
index f4616a77478f82bf332844e031a6ceb71ff5787f..f7242bed3f11f085156f3767931c4d95c57f8f13 100644
--- a/MiniScanner/Extensions/Image+Images.swift
+++ b/MiniScanner/Extensions/Image+Images.swift
@@ -11,10 +11,16 @@ import SwiftUI
 // MARK: - App images and icons
 extension Image {
     
+    static let languages = Image(.languagesIc)
+    static let brush = Image(.brushIc)
+    static let fileDown = Image(.fileDownIc)
+    static let smartphone = Image(.smartphoneIc)
 }
 
 // MARK: - Common system images and icons
 extension Image {
     
     static let chevronBackward = Image(systemName: "chevron.backward")
+    
+    static let checkmark = Image(systemName: "checkmark")
 }
diff --git a/MiniScanner/Extensions/String+StringKeys.swift b/MiniScanner/Extensions/String+StringKeys.swift
index 74a7ffc9f22799dc25b8fc03fb1be70e471c3afe..4ec20d5ffa324572c3d043d9062df9eb51cdd088 100644
--- a/MiniScanner/Extensions/String+StringKeys.swift
+++ b/MiniScanner/Extensions/String+StringKeys.swift
@@ -64,12 +64,17 @@ extension String {
     
     static let settings = "settings"
     
-    static let language = "language"
+    static let change = "change"
+    static let appLanguage = "app_language"
     static let appTheme = "app_theme"
     
-    static let appearence = "appearence"
-    static let deviceLanguage = "device_language"
-    static let deviceTheme = "device_theme"
+    static let defaultFileTypeForInstalling = "default_file_type_for_installing"
+    
+    static let defaultScreenWhenAppStarts = "default_screen_when_app_starts"
+    static let files = "files"
+    
+    static let basedOnDevice = "based_on_device"
+    
     static let darkMode = "dark_mode"
     static let lightMode = "light_mode"
     
diff --git a/MiniScanner/Extensions/View/CornerRadiusShape.swift b/MiniScanner/Extensions/View/CornerRadiusShape.swift
new file mode 100644
index 0000000000000000000000000000000000000000..adae08e68a7bc63e5f837a986ba5991fcc791750
--- /dev/null
+++ b/MiniScanner/Extensions/View/CornerRadiusShape.swift
@@ -0,0 +1,23 @@
+//
+//  CornerRadiusShape.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct CornerRadiusShape: Shape {
+    
+    var radius: CGFloat = .infinity
+    var corners: UIRectCorner = .allCorners
+    
+    func path(in rect: CGRect) -> Path {
+        let path = UIBezierPath(roundedRect: rect,
+                                byRoundingCorners: corners,
+                                cornerRadii: CGSize(width: radius, height: radius))
+        
+        return Path(path.cgPath)
+    }
+}
diff --git a/MiniScanner/Extensions/View/Sheet/View+CustomSheet.swift b/MiniScanner/Extensions/View/Sheet/View+CustomSheet.swift
new file mode 100644
index 0000000000000000000000000000000000000000..8e1f651571e37c635b34783abc076bd061eb24b0
--- /dev/null
+++ b/MiniScanner/Extensions/View/Sheet/View+CustomSheet.swift
@@ -0,0 +1,60 @@
+//
+//  View+CustomSheet.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct CustomSheetModifier<SheetContent: View>: ViewModifier {
+    
+    var isPresented: Binding<Bool>
+    var dismissable: Bool = true
+    var height: CGFloat
+    @ViewBuilder var sheetContent: () -> SheetContent
+    
+    func body(content: Content) -> some View {
+        
+        if #available(iOS 16.0, *) {
+            iOS16View(content: content)
+        } else {
+            iOS15View(content: content)
+        }
+    }
+    
+    @available(iOS 16.0, *)
+    private func iOS16View(content: Content) -> some View {
+        
+        content
+            .sheet(isPresented: isPresented) {
+                
+                sheetContent()
+                    .presentationDetents([.height(height)])
+                    .interactiveDismissDisabled(!dismissable)
+            }
+    }
+    
+    private func iOS15View(content: Content) -> some View {
+        
+        content
+            .bottomSheet(isPresented: isPresented,
+                         shouldScrollExpandSheet: true,
+                         showGrabber: false,
+                         showNavigationBar: true,
+                         dismissable: dismissable,
+                         content: sheetContent)
+    }
+}
+
+extension View {
+    
+    func customSheet<Content: View>(isPresented: Binding<Bool>,
+                                    dismissable: Bool = true,
+                                    height: CGFloat,
+                                    @ViewBuilder content: @escaping () -> Content) -> some View {
+        
+        ModifiedContent(content: self, modifier: CustomSheetModifier(isPresented: isPresented, dismissable: dismissable, height: height, sheetContent: content))
+    }
+}
diff --git a/MiniScanner/Extensions/View/Sheet/View+iOS15Sheet.swift b/MiniScanner/Extensions/View/Sheet/View+iOS15Sheet.swift
new file mode 100644
index 0000000000000000000000000000000000000000..3aa99f9fb5794450618b09e735879a4315dfe4ed
--- /dev/null
+++ b/MiniScanner/Extensions/View/Sheet/View+iOS15Sheet.swift
@@ -0,0 +1,247 @@
+//
+//  View+iOS15Sheet.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+extension View {
+
+    /// Presents a bottomSheet when a binding to a Boolean value that you provide is true.
+    func bottomSheet<Content: View>(
+        isPresented: Binding<Bool>,
+        detents: [BottomSheet.Detent] = [.medium],
+        shouldScrollExpandSheet: Bool = true,
+        largestUndimmedDetent: BottomSheet.LargestUndimmedDetent? = nil,
+        showGrabber: Bool = false,
+        cornerRadius: CGFloat? = nil,
+        showsInCompactHeight: Bool = false,
+        showNavigationBar: Bool = true,
+        dismissable: Bool = true,
+        preferredColorScheme: ColorScheme? = nil,
+        @ViewBuilder content: @escaping () -> Content
+    ) -> some View {
+        background {
+            Color.clear
+                .onDisappear {
+                    BottomSheet.dismiss()
+                }
+                .onChange(of: isPresented.wrappedValue) { show in
+                    if show {
+                        BottomSheet.present(
+                            detents: detents,
+                            shouldScrollExpandSheet: shouldScrollExpandSheet,
+                            largestUndimmedDetent: largestUndimmedDetent,
+                            showGrabber: showGrabber,
+                            cornerRadius: cornerRadius,
+                            showsInCompactHeight: showsInCompactHeight,
+                            showNavigationBar: showNavigationBar,
+                            dismissable: dismissable,
+                            preferredColorScheme: preferredColorScheme
+                        ) {
+                            content()
+                                .onDisappear {
+                                    isPresented.projectedValue.wrappedValue = false
+                                }
+                        }
+                    } else {
+                        BottomSheet.dismiss()
+                    }
+                }
+        }
+    }
+}
+
+struct BottomSheet {
+    
+    /// Wraps the UIKit's detents (UISheetPresentationController.Detent)
+    public enum Detent: Identifiable, CustomStringConvertible, Equatable {
+        case medium
+        case large
+        case fixed(Int)
+        case ratio(Double)
+        
+        public var id: String { description }
+        
+        public var description: String {
+            switch self {
+            case .medium:
+                return "Medium"
+                
+            case .large:
+                return "Large"
+                
+            case .fixed(let value):
+                return "Fixed height of \(value)"
+                
+            case .ratio(let value):
+                return "Ratio of \(value)"
+            }
+        }
+        
+        var asUIKitDetent: UISheetPresentationController.Detent? {
+            switch self {
+            case .medium:
+                return .medium()
+                
+            case .large:
+                return .large()
+                
+#if swift(>=5.7)
+            case .fixed(let value):
+                guard #available(iOS 16, *) else { return nil }
+                return .custom { _ in CGFloat(value) }
+                
+            case .ratio(let value):
+                guard #available(iOS 16, *) else { return nil }
+                return .custom { $0.maximumDetentValue * value }
+#else
+            case .fixed, .ratio:
+                return nil
+#endif
+            }
+        }
+    }
+    
+    /// Wraps the UIKit's largestUndimmedDetentIdentifier.
+    /// *"The largest detent that doesn’t dim the view underneath the sheet."*
+    public enum LargestUndimmedDetent: CaseIterable, Identifiable {
+        case medium
+        case large
+        
+        fileprivate var value: UISheetPresentationController.Detent.Identifier {
+            switch self {
+            case .medium:
+                return .medium
+                
+            case .large:
+                return .large
+            }
+        }
+        
+        public var description: String {
+            switch self {
+            case .medium:
+                return "Medium"
+                
+            case .large:
+                return "Large"
+            }
+        }
+        
+        public var id: Int {
+            self.hashValue
+        }
+    }
+    
+    private static var ref: UINavigationController? = nil
+    
+    public static func dismiss() {
+        ref?.dismiss(animated: true, completion: { ref = nil })
+    }
+    
+    private static func userInterfaceStyle(for colorScheme: ColorScheme) -> UIUserInterfaceStyle? {
+        switch colorScheme {
+        case .dark:
+            return .dark
+            
+        case .light:
+            return .light
+            
+        @unknown default:
+            return nil
+        }
+    }
+    
+    /// Handles the presentation logic of the new UIKit's pageSheet modal presentation style.
+    /// *Sarun's* blog article source: https://sarunw.com/posts/bottom-sheet-in-ios-15-with-
+    fileprivate static func present<Content: View>(
+        detents: [Detent],
+        shouldScrollExpandSheet: Bool,
+        largestUndimmedDetent: LargestUndimmedDetent?,
+        showGrabber: Bool,
+        cornerRadius: CGFloat?,
+        showsInCompactHeight: Bool,
+        showNavigationBar: Bool,
+        dismissable: Bool,
+        preferredColorScheme: ColorScheme?,
+        @ViewBuilder _ contentView: @escaping () -> Content
+    ) {
+        let detailViewController = UIHostingController(rootView: contentView())
+        let nav = UINavigationController(rootViewController: detailViewController)
+        
+        ref = nav
+        
+        nav.navigationBar.isHidden = !showNavigationBar
+        nav.modalPresentationStyle = .pageSheet
+        nav.isModalInPresentation = !dismissable
+        
+        if let preferredColorScheme, let style = userInterfaceStyle(for: preferredColorScheme) {
+            nav.overrideUserInterfaceStyle = style
+        }
+        
+        if let sheet = nav.sheetPresentationController {
+            sheet.detents = detents.isEmpty ? [.medium()] : detents.compactMap { $0.asUIKitDetent }
+            sheet.prefersScrollingExpandsWhenScrolledToEdge = shouldScrollExpandSheet
+            setLargestUndimmedDetentIdentifier(
+                to: sheet,
+                detent: largestUndimmedDetent,
+                availableDetents: detents
+            )
+            sheet.prefersGrabberVisible = showGrabber
+            sheet.preferredCornerRadius = cornerRadius
+            sheet.prefersEdgeAttachedInCompactHeight = showsInCompactHeight
+            
+            if let firstDetent = detents.first {
+                switch firstDetent {
+                case .medium:
+                    sheet.selectedDetentIdentifier = .medium
+                    
+                case .large:
+                    sheet.selectedDetentIdentifier = .large
+                    
+                case .ratio, .fixed:
+                    guard #available(iOS 16, *) else {
+                        if detents.contains(.medium) {
+                            sheet.selectedDetentIdentifier = .medium
+                        } else if detents.contains(.large) {
+                            sheet.selectedDetentIdentifier = .large
+                        }
+                        break
+                    }
+#if swift(>=5.7)
+                    sheet.selectedDetentIdentifier = firstDetent.asUIKitDetent?.identifier
+#endif
+                }
+            }
+        }
+        
+        //UIApplication.shared.windows.first?.rootViewController?.present(nav, animated: true, completion: nil)
+        
+        let window = UIApplication.shared.connectedScenes
+            .flatMap { ($0 as? UIWindowScene)?.windows ?? [] }
+            .first { $0.isKeyWindow }
+        
+        window?.rootViewController?.present(nav, animated: true, completion: nil)
+    }
+    
+    fileprivate static func setLargestUndimmedDetentIdentifier(
+        to sheet: UISheetPresentationController,
+        detent: LargestUndimmedDetent?,
+        availableDetents: [Detent]
+    ) {
+        guard let detent = detent else { return }
+        if detent == .medium || detent == .large {
+            sheet.largestUndimmedDetentIdentifier = detent.value
+        } else {
+            if availableDetents.contains(.medium) {
+                sheet.largestUndimmedDetentIdentifier = .medium
+            } else if availableDetents.contains(.large) {
+                sheet.largestUndimmedDetentIdentifier = .large
+            }
+        }
+    }
+}
diff --git a/MiniScanner/Extensions/View/View+CustomColor.swift b/MiniScanner/Extensions/View/View+CustomColor.swift
new file mode 100644
index 0000000000000000000000000000000000000000..75ea55e4b7f58648add231b866875fc930c065a0
--- /dev/null
+++ b/MiniScanner/Extensions/View/View+CustomColor.swift
@@ -0,0 +1,46 @@
+//
+//  View+CustomColor.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct CustomColorModifier: ViewModifier {
+    
+    var color: Color
+    var place: ColorPlace
+    
+    func body(content: Content) -> some View {
+        
+        switch place {
+        case .background:
+            
+            content
+                .background(color)
+            
+        case .foreground:
+            
+            content
+                .foregroundStyle(color)
+        }
+    }
+}
+
+extension View {
+    
+    func customForeground(_ color: Color) -> some View {
+        ModifiedContent(content: self, modifier: CustomColorModifier(color: color, place: .foreground))
+    }
+    
+    func customBackground(_ color: Color) -> some View {
+        ModifiedContent(content: self, modifier: CustomColorModifier(color: color, place: .background))
+    }
+}
+
+enum ColorPlace {
+    case background
+    case foreground
+}
diff --git a/MiniScanner/Extensions/View/View+CustomCornerRadius.swift b/MiniScanner/Extensions/View/View+CustomCornerRadius.swift
new file mode 100644
index 0000000000000000000000000000000000000000..a27332f3a102a34844a72c70080d31ef2c5ff1cb
--- /dev/null
+++ b/MiniScanner/Extensions/View/View+CustomCornerRadius.swift
@@ -0,0 +1,33 @@
+//
+//  View+CustomCornerRadius.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct CornerRadiusModifier: ViewModifier {
+    
+    var radius: CGFloat
+    var corners: UIRectCorner
+    
+    func body(content: Content) -> some View {
+        
+        content
+            .clipShape(CornerRadiusShape(radius: radius, corners: corners))
+    }
+}
+
+extension View {
+    
+    func customCornerRadius(_ radius: CGFloat) -> some View {
+        self
+            .clipShape(.rect(cornerRadius: radius))
+    }
+    
+    func customCornerRadii(_ radius: CGFloat, corners: UIRectCorner) -> some View {
+        ModifiedContent(content: self, modifier: CornerRadiusModifier(radius: radius, corners: corners))
+    }
+}
diff --git a/MiniScanner/Extensions/View/View+ReadSize.swift b/MiniScanner/Extensions/View/View+ReadSize.swift
new file mode 100644
index 0000000000000000000000000000000000000000..e51d203f55073d8ef5191e53d586e7be3c6314fc
--- /dev/null
+++ b/MiniScanner/Extensions/View/View+ReadSize.swift
@@ -0,0 +1,47 @@
+//
+//  View+ReadSize.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct ReadSizeModifier: ViewModifier {
+    
+    var onChange: GenericAction<CGSize>
+    @Binding var size: CGSize
+    
+    func body(content: Content) -> some View {
+        
+        content
+            .background {
+                
+                GeometryReader { proxy in
+                    
+                    Color.clear
+                        .preference(key: SizePreferenceKey.self, value: proxy.size)
+                }
+            }
+            .onPreferenceChange(SizePreferenceKey.self) { onChange?($0) }
+            .onPreferenceChange(SizePreferenceKey.self) { size = $0 }
+    }
+}
+
+extension View {
+    
+    func readSize(onChange: GenericAction<CGSize>) -> some View {
+        ModifiedContent(content: self, modifier: ReadSizeModifier(onChange: onChange, size: .constant(.zero)))
+    }
+    
+    func readSize(size: Binding<CGSize>) -> some View {
+        ModifiedContent(content: self, modifier: ReadSizeModifier(onChange: nil, size: size))
+    }
+}
+
+fileprivate struct SizePreferenceKey: PreferenceKey {
+    static var defaultValue: CGSize = .zero
+    
+    static func reduce(value: inout CGSize, nextValue: () -> CGSize) { }
+}
diff --git a/MiniScanner/Features/Common/DI/DependencyManager.swift b/MiniScanner/Features/Common/DI/DependencyManager.swift
index 13e61ae4b9dba743ee53c530dab286131b1912d6..c9a3fbbd6e7a65c0af4586e61056f89596b987c7 100644
--- a/MiniScanner/Features/Common/DI/DependencyManager.swift
+++ b/MiniScanner/Features/Common/DI/DependencyManager.swift
@@ -13,12 +13,14 @@ final class DependencyManager {
     let userDefaultsManager: UserDefaultsManagerProtocol
     let coreDataManager: CoreDataManagerProtocol
     let persistantContainer: PersistentContainer
+    let userSettings: UserSettings
     
     init() {
         self.userDefaultsManager = UserDefaultsManager()
         
         self.persistantContainer = PersistentContainer()
         self.coreDataManager = CoreDataManager(persistentContainer: persistantContainer)
+        self.userSettings = UserSettings(userDefaultsManager: userDefaultsManager)
         
         initializeDependencies()
     }
@@ -34,6 +36,8 @@ final class DependencyManager {
         let dataSource = SettingsDataSource(userDefaultsManager: userDefaultsManager)
         let repository = SettingsRepository(dataSource: dataSource)
         
+        @Provide var userSettings = userSettings
+        
         @Provide var getLanguagesUseCase = GetLanguagesUseCase(repository: repository)
         @Provide var getLanguageUseCase = GetLanguageUseCase(repository: repository)
         @Provide var changeLanguageUseCase = ChangeLanguageUseCase(repository: repository)
diff --git a/MiniScanner/Features/Common/Data/DataSources/UserSettings.swift b/MiniScanner/Features/Common/Data/DataSources/UserSettings.swift
new file mode 100644
index 0000000000000000000000000000000000000000..d61fc60513e43b4d3b5a68c9c250d7556c3901c6
--- /dev/null
+++ b/MiniScanner/Features/Common/Data/DataSources/UserSettings.swift
@@ -0,0 +1,55 @@
+//
+//  UserSettings.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import Foundation
+
+class UserSettings {
+    
+    private let userDefaultsManager: UserDefaultsManagerProtocol
+    
+    init(userDefaultsManager: UserDefaultsManagerProtocol) {
+        self.userDefaultsManager = userDefaultsManager
+    }
+    
+    private var _defaultFileType: DefaultFileType?
+    private var _defaultScreen: DefaultScreen?
+    
+    var defaultFileType: DefaultFileType {
+        get {
+            
+            if _defaultFileType == nil {
+                
+                _defaultFileType = userDefaultsManager.get(key: .defaultFileType) ?? .pdf
+            }
+            
+            return _defaultFileType!
+        }
+        set {
+            _defaultFileType = newValue
+            
+            userDefaultsManager.set(value: newValue, key: .defaultFileType)
+        }
+    }
+    
+    var defaultScreen: DefaultScreen {
+        get {
+            
+            if _defaultScreen == nil {
+                
+                _defaultScreen = userDefaultsManager.get(key: .defaultScreen) ?? .files
+            }
+            
+            return _defaultScreen!
+        }
+        set {
+            _defaultScreen = newValue
+            
+            userDefaultsManager.set(value: newValue, key: .defaultScreen)
+        }
+    }
+}
diff --git a/MiniScanner/Features/Common/Data/Model/DefaultFileType.swift b/MiniScanner/Features/Common/Data/Model/DefaultFileType.swift
new file mode 100644
index 0000000000000000000000000000000000000000..a72833e1052fbf066e7a6de682d617f5042039a9
--- /dev/null
+++ b/MiniScanner/Features/Common/Data/Model/DefaultFileType.swift
@@ -0,0 +1,30 @@
+//
+//  DefaultFileType.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import Foundation
+
+enum DefaultFileType: CaseIterable, CustomMenuPickerItem, Codable {
+    
+    case pdf
+    case jpeg
+    
+    var id: Self { self }
+    
+    var displayedName: String {
+        switch self {
+        case .pdf:
+                .pdf.localized
+        case .jpeg:
+                .jpeg.localized
+        }
+    }
+    
+    var shareType: ShareType {
+        self == .pdf ? .pdf : .jpeg
+    }
+}
diff --git a/MiniScanner/Features/Common/Data/Model/DefaultScreen.swift b/MiniScanner/Features/Common/Data/Model/DefaultScreen.swift
new file mode 100644
index 0000000000000000000000000000000000000000..d61e52891708ca6f52ade6af75b3b081c3d154cc
--- /dev/null
+++ b/MiniScanner/Features/Common/Data/Model/DefaultScreen.swift
@@ -0,0 +1,26 @@
+//
+//  DefaultScreen.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import Foundation
+
+enum DefaultScreen: CaseIterable, CustomMenuPickerItem, Codable {
+    
+    case files
+    case camera
+    
+    var id: Self { self }
+    
+    var displayedName: String {
+        switch self {
+        case .files:
+                .files.localized
+        case .camera:
+                .camera.localized
+        }
+    }
+}
diff --git a/MiniScanner/Features/Common/Data/Model/SupportedColorScheme.swift b/MiniScanner/Features/Common/Data/Model/SupportedColorScheme.swift
index 39381e3a2b92b2bd9131b9f5ec611085da97b170..64a97f64af8671d0f0eb237e726838335605b17f 100644
--- a/MiniScanner/Features/Common/Data/Model/SupportedColorScheme.swift
+++ b/MiniScanner/Features/Common/Data/Model/SupportedColorScheme.swift
@@ -19,14 +19,13 @@ enum SupportedColorScheme: String, CaseIterable, CustomMenuPickerItem {
     var displayedName: String {
         switch self {
         case .device:
-                .deviceTheme.localized
+                .basedOnDevice.localized
         case .light:
                 .lightMode.localized
         case .dark:
                 .darkMode.localized
         }
     }
-    
 }
 
 extension SupportedColorScheme {
diff --git a/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift b/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift
index 342ed8d7f889f56b830af0c39dbb7e9c7f0ded5a..419c28bd87d3de78f167158d40a7b556c9c2decf 100644
--- a/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift
+++ b/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift
@@ -66,7 +66,7 @@ enum SupportedLanguage: CaseIterable, CustomMenuPickerItem {
     var displayedName: String {
         switch self {
         case .device:
-                .deviceLanguage.localized
+                .basedOnDevice.localized
         case .english:
             displayNameForLanguage(.english)
         case .arabic:
diff --git a/MiniScanner/Features/Common/Presentation/CustomPicker.swift b/MiniScanner/Features/Common/Presentation/CustomPicker.swift
new file mode 100644
index 0000000000000000000000000000000000000000..433fee4662da77b5d7616b53a5d7015e3f01343b
--- /dev/null
+++ b/MiniScanner/Features/Common/Presentation/CustomPicker.swift
@@ -0,0 +1,52 @@
+//
+//  CustomPicker.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct CustomPicker<Item: CustomMenuPickerItem>: View {
+    
+    @Binding var selectedItem: Item
+    var items: [Item]
+    
+    var body: some View {
+        VStack(spacing: 8) {
+            
+            ForEach(items) { item in
+                
+                getItemView(for: item)
+            }
+        }
+    }
+    
+    private func getItemView(for item: Item) -> some View {
+        Button(action: {
+            selectedItem = item
+        }, label: {
+            
+            HStack {
+                
+                Text(item.displayedName)
+                    .customForeground(.mainText)
+                
+                Spacer()
+                
+                if item == selectedItem {
+                    
+                    Image.checkmark
+                        .resizable()
+                        .aspectRatio(contentMode: .fit)
+                        .frame(width: 12, height: 12)
+                        .customForeground(.mainBlue)
+                }
+            }
+            .frame(maxWidth: .infinity)
+            .padding(.horizontal, 16)
+            .padding(.vertical, 10)
+        })
+    }
+}
diff --git a/MiniScanner/Features/Common/Presentation/EmptyAction.swift b/MiniScanner/Features/Common/Presentation/EmptyAction.swift
new file mode 100644
index 0000000000000000000000000000000000000000..15f083641b40f69ceac606a3c6d9fc84e54006e1
--- /dev/null
+++ b/MiniScanner/Features/Common/Presentation/EmptyAction.swift
@@ -0,0 +1,11 @@
+//
+//  EmptyAction.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 7/18/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import Foundation
+
+typealias EmptyAction = (()->Void)?
diff --git a/MiniScanner/Features/Common/Presentation/GenericAction.swift b/MiniScanner/Features/Common/Presentation/GenericAction.swift
new file mode 100644
index 0000000000000000000000000000000000000000..f2b0a859a8c0b535c9c1c77b675a1023f57c4739
--- /dev/null
+++ b/MiniScanner/Features/Common/Presentation/GenericAction.swift
@@ -0,0 +1,11 @@
+//
+//  GenericAction.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import Foundation
+
+typealias GenericAction<T> = ((T) -> Void)?
diff --git a/MiniScanner/Features/Common/Presentation/NoIndicatorsScrollView.swift b/MiniScanner/Features/Common/Presentation/NoIndicatorsScrollView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..9fbfd2839ed1cf31877a85731f89421bcf3ad6cd
--- /dev/null
+++ b/MiniScanner/Features/Common/Presentation/NoIndicatorsScrollView.swift
@@ -0,0 +1,37 @@
+//
+//  NoIndicatorsScrollView.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 7/21/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct NoIndicatorsScrollView<Content: View>: View {
+    
+    var axes: Axis.Set = .vertical
+    @ViewBuilder var content: () -> Content
+    
+    var body: some View {
+        if #available(iOS 16.0, *) {
+            return iOS16Body
+        } else {
+            return iOS15Body
+        }
+    }
+    
+    @available(iOS 16.0, *)
+    private var iOS16Body: some View {
+        ScrollView(axes, content: content)
+            .scrollIndicators(.hidden)
+    }
+    
+    private var iOS15Body: some View {
+        ScrollView(axes, showsIndicators: false, content: content)
+    }
+}
+
+#Preview {
+    NoIndicatorsScrollView { }
+}
diff --git a/MiniScanner/Features/Common/Presentation/PrimaryButton.swift b/MiniScanner/Features/Common/Presentation/PrimaryButton.swift
new file mode 100644
index 0000000000000000000000000000000000000000..9e1a8796722ba0e6f761934841dbb2213ebf626a
--- /dev/null
+++ b/MiniScanner/Features/Common/Presentation/PrimaryButton.swift
@@ -0,0 +1,41 @@
+//
+//  PrimaryButton.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct PrimaryButton: View {
+    
+    var title: String
+    
+    var action: EmptyAction
+    
+    var body: some View {
+        Button(action: {
+            action?()
+        }, label: {
+            
+            HStack {
+                
+                titleView
+            }
+            .frame(height: 54)
+            .frame(maxWidth: .infinity)
+        })
+        .customBackground(.buttonsBlue)
+        .customCornerRadius(12)
+    }
+    
+    private var titleView: some View {
+        Text(title)
+            .customForeground(.mainText)
+    }
+}
+
+#Preview {
+    PrimaryButton(title: "Button", action: { })
+}
diff --git a/MiniScanner/Features/Settings/Presentation/SettingButton.swift b/MiniScanner/Features/Settings/Presentation/SettingButton.swift
new file mode 100644
index 0000000000000000000000000000000000000000..ae10da92ceb4dcdf793eb0a84973ff6f162c4680
--- /dev/null
+++ b/MiniScanner/Features/Settings/Presentation/SettingButton.swift
@@ -0,0 +1,76 @@
+//
+//  SettingButton.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct SettingButton: View {
+    
+    var icon: Image
+    var title: String
+    var value: String
+    var action: EmptyAction
+    
+    var body: some View {
+        HStack {
+            
+            settings
+            
+            Spacer()
+            
+            changeButton
+        }
+    }
+    
+    private var settings: some View {
+        HStack(alignment: .top, spacing: 20) {
+            
+            iconView
+            
+            VStack(alignment: .leading, spacing: 6) {
+                
+                titleView
+                
+                valueView
+            }
+        }
+    }
+    
+    private var iconView: some View {
+        icon
+            .resizable()
+            .aspectRatio(contentMode: .fit)
+            .frame(width: 20, height: 20)
+    }
+    
+    private var titleView: some View {
+        Text(title)
+            .customForeground(.mainText)
+    }
+    
+    private var valueView: some View {
+        Text(value)
+            .customForeground(.mainText)
+    }
+    
+    private var changeButton: some View {
+        Button(action: {
+            action?()
+        }, label: {
+            
+            Text(String.change.localized)
+                .customForeground(.mainText)
+        })
+    }
+}
+
+#Preview {
+    SettingButton(icon: .chevronBackward,
+                  title: "Title",
+                  value: "Value",
+                  action: { })
+}
diff --git a/MiniScanner/Features/Settings/Presentation/SettingSheetView.swift b/MiniScanner/Features/Settings/Presentation/SettingSheetView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..28dc36f81f7b3d2313875a8a75d1b4eefb4f9da8
--- /dev/null
+++ b/MiniScanner/Features/Settings/Presentation/SettingSheetView.swift
@@ -0,0 +1,56 @@
+//
+//  SettingSheetView.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/13/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct SettingSheetView<Item: CustomMenuPickerItem>: View {
+    
+    @Environment(\.dismiss) var dismiss
+    
+    var title: String
+    
+    @Binding var selectedItem: Item
+    var items: [Item]
+    
+    var saveAction: EmptyAction
+    
+    var body: some View {
+        VStack(alignment: .leading, spacing: 30) {
+            
+            titleView
+            
+            picker
+            
+            save
+        }
+        .padding(.vertical, 16)
+        .padding(.horizontal, 16)
+        .customCornerRadii(50, corners: [.topLeft, .topRight])
+        .handleLayoutChanges()
+    }
+}
+
+extension SettingSheetView {
+    
+    private var titleView: some View {
+        Text(title)
+            .customForeground(.mainText)
+    }
+    
+    private var picker: some View {
+        CustomPicker(selectedItem: $selectedItem,
+                     items: items)
+    }
+    
+    private var save: some View {
+        PrimaryButton(title: .save.localized) {
+            saveAction?()
+            dismiss()
+        }
+    }
+}
diff --git a/MiniScanner/Features/Settings/Presentation/SettingsView.swift b/MiniScanner/Features/Settings/Presentation/SettingsView.swift
index 90958680a1b44b67a0db4a5d1ea51ceb1437d19b..eff78c4f68792f66932951617d2b71834cf0427e 100644
--- a/MiniScanner/Features/Settings/Presentation/SettingsView.swift
+++ b/MiniScanner/Features/Settings/Presentation/SettingsView.swift
@@ -20,19 +20,46 @@ struct SettingsView: View {
         MainView(viewModel: viewModel) {
             VStack {
                 
-                if viewModel.refreshView {
-                    settingsForm
-                }
-                else {
-                    settingsForm
+                NoIndicatorsScrollView {
+                    
+                    settings
+                        .padding(.horizontal, 20)
                 }
+                .padding(.top, 32)
             }
             .navigationTitle(viewModel.navigationTitle)
             .customNavigationBackButton(defaultBackButtonHidden: viewModel.isDefaultBackButtonHidden,
                                         backButton: backButton)
             .environment(\.layoutDirection, viewModel.layoutDirection)
+            .customSheet(isPresented: $viewModel.isLanguageSettingSheetPresented,
+                         height: viewModel.sheetSize.height,
+                         content: {
+                languageSheet
+                    .readSize(size: $viewModel.sheetSize)
+            })
+            .customSheet(isPresented: $viewModel.isColorSchemeSettingSheetPresented,
+                         height: viewModel.sheetSize.height,
+                         content : {
+                colorSchemeSheet
+                    .readSize(size: $viewModel.sheetSize)
+            })
+            .customSheet(isPresented: $viewModel.isFileTypeSettingSheetPresented,
+                         height: viewModel.sheetSize.height,
+                         content : {
+                fileTypeSheet
+                    .readSize(size: $viewModel.sheetSize)
+            })
+            .customSheet(isPresented: $viewModel.isScreenSettingSheetPresented,
+                         height: viewModel.sheetSize.height,
+                         content : {
+                screenSheet
+                    .readSize(size: $viewModel.sheetSize)
+            })
         }
     }
+}
+
+extension SettingsView {
     
     private var backButton: some View {
         Button(action: {
@@ -47,61 +74,73 @@ struct SettingsView: View {
         })
     }
     
-    private var settingsForm: some View {
-        
-        Form {
+    private var settings: some View {
+        VStack(spacing: 24) {
             
-            Section {
-                
-                language
-                
-                colorScheme
-                
-            } header: {
-                Text(String.appearence.localized)
-            }
+            language
+            
+            colorScheme
+            
+            fileType
+            
+            screenType
         }
     }
-}
-
-extension SettingsView {
     
     private var language: some View {
-        CustomMenuPicker(selectedItem: $viewModel.selectedLanguage,
+        SettingButton(icon: .languages,
+                      title: .appLanguage.localized,
+                      value: viewModel.selectedLanguage.displayedName,
+                      action: viewModel.onLanguageClick)
+    }
+    
+    private var colorScheme: some View {
+        SettingButton(icon: .brush,
+                      title: .appTheme.localized,
+                      value: viewModel.selectedColorScheme.displayedName,
+                      action: viewModel.onColorSchemeClick)
+    }
+    
+    private var fileType: some View {
+        SettingButton(icon: .fileDown,
+                      title: .defaultFileTypeForInstalling.localized,
+                      value: viewModel.selectedDefaultFileType.displayedName,
+                      action: viewModel.onFileTypeClick)
+    }
+    
+    private var screenType: some View {
+        SettingButton(icon: .smartphone,
+                      title: .defaultScreenWhenAppStarts.localized,
+                      value: viewModel.selectedDefaultScreen.displayedName,
+                      action: viewModel.onScreenClick)
+    }
+    
+    private var languageSheet: some View {
+        SettingSheetView(title: .appLanguage.localized,
+                         selectedItem: $viewModel.selectedLanguageForSheet,
                          items: viewModel.languages,
-                         label: { languageLabel })
+                         saveAction: viewModel.onLanguageSaveClick)
     }
     
-    private var languageLabel: some View {
-        HStack {
-            
-            Text(String.language.localized)
-            
-            Spacer()
-            
-            Text(viewModel.selectedLanguage.displayedName)
-            
-            Text(viewModel.selectedLanguage.flag)
-        }
-        .foregroundStyle(Color.mainText)
+    private var colorSchemeSheet: some View {
+        SettingSheetView(title: .appTheme.localized,
+                         selectedItem: $viewModel.selectedColorSchemeForSheet,
+                         items: viewModel.colorSchemes,
+                         saveAction: viewModel.onColorSchemeSaveClick)
     }
     
-    private var colorScheme: some View {
-        CustomMenuPicker(selectedItem: $viewModel.selectedColorScheme,
-                         items: viewModel.colorShemes,
-                         label: { colorSchemeLabel })
+    private var fileTypeSheet: some View {
+        SettingSheetView(title: .defaultFileTypeForInstalling.localized,
+                         selectedItem: $viewModel.selectedDefaultFileTypeForSheet,
+                         items: viewModel.fileTypes,
+                         saveAction: viewModel.onFileTypeSaveClick)
     }
     
-    private var colorSchemeLabel: some View {
-        HStack {
-            
-            Text(String.appTheme.localized)
-            
-            Spacer()
-            
-            Text(viewModel.selectedColorScheme.displayedName)
-        }
-        .foregroundStyle(Color.mainText)
+    private var screenSheet: some View {
+        SettingSheetView(title: .defaultScreenWhenAppStarts.localized,
+                         selectedItem: $viewModel.selectedDefaultScreenForSheet,
+                         items: viewModel.screens,
+                         saveAction: viewModel.onScreenSaveClick)
     }
 }
 
diff --git a/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift b/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift
index f3e24db0dc064ffef4fcb02706ead6b17ec0dcf7..6523d31dbee664d03e3a104a186bcf1e80967472 100644
--- a/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift
+++ b/MiniScanner/Features/Settings/Presentation/SettingsViewModel.swift
@@ -15,7 +15,9 @@ final class SettingsViewModel: MainViewModel {
     @Published var refreshView: Bool = false
     
     @Published var languages: [SupportedLanguage] = []
-    @Published var colorShemes: [SupportedColorScheme] = []
+    @Published var colorSchemes: [SupportedColorScheme] = []
+    @Published var fileTypes: [DefaultFileType] = []
+    @Published var screens: [DefaultScreen] = []
     
     @Published var selectedLanguage: SupportedLanguage = .device {
         didSet {
@@ -25,12 +27,42 @@ final class SettingsViewModel: MainViewModel {
     
     @Published var selectedColorScheme: SupportedColorScheme = .device {
         didSet {
-            changeColorShceme(to: selectedColorScheme)
+            changeColorScheme(to: selectedColorScheme)
         }
     }
     
+    @Published var selectedLanguageForSheet: SupportedLanguage = .device
+    @Published var selectedColorSchemeForSheet: SupportedColorScheme = .device
+    @Published var selectedDefaultFileTypeForSheet: DefaultFileType = .pdf
+    @Published var selectedDefaultScreenForSheet: DefaultScreen = .files
+    
+    @Published var sheetSize: CGSize = .zero
+    
     @Published var isDefaultBackButtonHidden: Bool = false
     
+    @Published var isLanguageSettingSheetPresented: Bool = false
+    @Published var isColorSchemeSettingSheetPresented: Bool = false
+    @Published var isFileTypeSettingSheetPresented: Bool = false
+    @Published var isScreenSettingSheetPresented: Bool = false
+    
+    var selectedDefaultFileType: DefaultFileType {
+        get {
+            userSettings.defaultFileType
+        }
+        set {
+            userSettings.defaultFileType = newValue
+        }
+    }
+    
+    var selectedDefaultScreen: DefaultScreen {
+        get {
+            userSettings.defaultScreen
+        }
+        set {
+            userSettings.defaultScreen = newValue
+        }
+    }
+    
     var navigationTitle: String { .settings.localized }
     var backButtonTitle: String { .fileManager.localized }
     
@@ -41,6 +73,8 @@ final class SettingsViewModel: MainViewModel {
     @Inject var getColorSchemeUseCase: GetColorSchemeUseCase
     @Inject var changeColorSchemeUseCase: ChangeColorSchemeUseCase
     
+    @Inject var userSettings: UserSettings
+    
     private let coordinator: SettingsViewCoordinating
     
     init(coordinator: SettingsViewCoordinating) {
@@ -53,13 +87,107 @@ extension SettingsViewModel {
     func onAppear() {
         fetchSettings()
     }
+    
+    func onLanguageClick() {
+        
+        selectedLanguageForSheet = selectedLanguage
+        
+        displayLanguageSheet()
+    }
+    
+    func onLanguageSaveClick() {
+        
+        selectedLanguage = selectedLanguageForSheet
+        
+        hideLanguageSheet()
+    }
+    
+    func onColorSchemeClick() {
+        
+        selectedColorSchemeForSheet = selectedColorScheme
+        
+        displayColorSchemeSheet()
+    }
+    
+    func onColorSchemeSaveClick() {
+        
+        selectedColorScheme = selectedColorSchemeForSheet
+        
+        hideColorSchemeSheet()
+    }
+    
+    func onFileTypeClick() {
+        
+        selectedDefaultFileTypeForSheet = selectedDefaultFileType
+        
+        displayFileTypeSheet()
+    }
+    
+    func onFileTypeSaveClick() {
+        
+        selectedDefaultFileType = selectedDefaultFileTypeForSheet
+        
+        hideFileTypeSheet()
+    }
+    
+    func onScreenClick() {
+        
+        selectedDefaultScreenForSheet = selectedDefaultScreen
+        
+        displayScreenSheet()
+    }
+    
+    func onScreenSaveClick() {
+        
+        selectedDefaultScreen = selectedDefaultScreenForSheet
+        
+        hideScreenSheet()
+    }
+}
+
+extension SettingsViewModel {
+    
+    private func displayLanguageSheet() {
+        isLanguageSettingSheetPresented = true
+    }
+    
+    private func hideLanguageSheet() {
+        isLanguageSettingSheetPresented = false
+    }
+    
+    private func displayColorSchemeSheet() {
+        isColorSchemeSettingSheetPresented = true
+    }
+    
+    private func hideColorSchemeSheet() {
+        isColorSchemeSettingSheetPresented = false
+    }
+    
+    private func displayFileTypeSheet() {
+        isFileTypeSettingSheetPresented = true
+    }
+    
+    private func hideFileTypeSheet() {
+        isFileTypeSettingSheetPresented = false
+    }
+    
+    private func displayScreenSheet() {
+        isScreenSettingSheetPresented = true
+    }
+    
+    private func hideScreenSheet() {
+        isScreenSettingSheetPresented = false
+    }
 }
 
 extension SettingsViewModel {
     
     private func fetchSettings() {
         languages = getLanguagesUseCase.execute()
-        colorShemes = SupportedColorScheme.allCases
+        
+        colorSchemes = SupportedColorScheme.allCases
+        fileTypes = DefaultFileType.allCases
+        screens = DefaultScreen.allCases
         
         selectedLanguage = getLanguageUseCase.execute()
         selectedColorScheme = getColorSchemeUseCase.execute()
@@ -86,7 +214,7 @@ extension SettingsViewModel {
         }
     }
     
-    private func changeColorShceme(to colorScheme: SupportedColorScheme) {
+    private func changeColorScheme(to colorScheme: SupportedColorScheme) {
         changeColorSchemeUseCase.execute(to: colorScheme)
     }
 }
diff --git a/MiniScanner/Managers/UserDefaults/UserDefaultsKeys.swift b/MiniScanner/Managers/UserDefaults/UserDefaultsKeys.swift
index 8e0bc31cf1f46f5ea02e2f007601990cc61ddd2d..41d87d06c59b0ba0dd391aff02ce1416d20c4356 100644
--- a/MiniScanner/Managers/UserDefaults/UserDefaultsKeys.swift
+++ b/MiniScanner/Managers/UserDefaults/UserDefaultsKeys.swift
@@ -12,4 +12,7 @@ enum UserDefaultsKeys: String {
     
     case appLanguage = "app_language"
     case appColorScheme = "app_color_scheme"
+    
+    case defaultFileType = "default_file_type"
+    case defaultScreen = "default_screen"
 }
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/brush-ic.imageset/Contents.json b/MiniScanner/Supporting Files/Icons.xcassets/brush-ic.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..519a21e37d219a4cc39eddafb9fad54c077d9815
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/brush-ic.imageset/Contents.json	
@@ -0,0 +1,16 @@
+{
+  "images" : [
+    {
+      "filename" : "brush-ic.svg",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  },
+  "properties" : {
+    "preserves-vector-representation" : true,
+    "template-rendering-intent" : "template"
+  }
+}
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/brush-ic.imageset/brush-ic.svg b/MiniScanner/Supporting Files/Icons.xcassets/brush-ic.imageset/brush-ic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d9e8e31ddce484bdb92d17ae2ccb7419e7546816
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/brush-ic.imageset/brush-ic.svg	
@@ -0,0 +1,3 @@
+<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M10.5701 13.8826L19.9851 4.47929C20.292 4.16248 20.6588 3.9099 21.0643 3.73625C21.4698 3.56261 21.9058 3.47138 22.3468 3.46788C22.7879 3.46437 23.2253 3.54867 23.6335 3.71584C24.0416 3.88302 24.4125 4.12975 24.7244 4.44164C25.0363 4.75354 25.283 5.12438 25.4502 5.53256C25.6174 5.94074 25.7017 6.37811 25.6981 6.81919C25.6946 7.26026 25.6034 7.69623 25.4298 8.10171C25.2561 8.50718 25.0035 8.87405 24.6867 9.18096L15.2834 18.6076M8.24836 17.4293C6.31169 17.4293 4.74836 19.0043 4.74836 20.9527C4.74836 22.5043 1.83169 22.726 2.41503 23.3093C3.67503 24.5927 5.32003 25.666 7.08169 25.666C9.64836 25.666 11.7484 23.566 11.7484 20.9527C11.7499 20.4915 11.6606 20.0345 11.4855 19.6079C11.3105 19.1813 11.0531 18.7933 10.7281 18.4661C10.4031 18.1389 10.0168 17.879 9.59133 17.7011C9.16586 17.5232 8.70952 17.4309 8.24836 17.4293Z" stroke="#1C1C1E" stroke-width="2.33333" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/file-down-ic.imageset/Contents.json b/MiniScanner/Supporting Files/Icons.xcassets/file-down-ic.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..28885b7f1229e82e109a58f492b35add8e4fea5b
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/file-down-ic.imageset/Contents.json	
@@ -0,0 +1,16 @@
+{
+  "images" : [
+    {
+      "filename" : "file-down-ic.svg",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  },
+  "properties" : {
+    "preserves-vector-representation" : true,
+    "template-rendering-intent" : "template"
+  }
+}
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/file-down-ic.imageset/file-down-ic.svg b/MiniScanner/Supporting Files/Icons.xcassets/file-down-ic.imageset/file-down-ic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d5663a89ac1ed0abd06f2a85442c299e8b6a48b1
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/file-down-ic.imageset/file-down-ic.svg	
@@ -0,0 +1,3 @@
+<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M16.3334 2.33301V6.99967C16.3334 7.61851 16.5792 8.21201 17.0168 8.64959C17.4544 9.08718 18.0479 9.33301 18.6667 9.33301H23.3334M14.0001 20.9997V13.9997M14.0001 20.9997L10.5001 17.4997M14.0001 20.9997L17.5001 17.4997M17.5001 2.33301H7.00008C6.38124 2.33301 5.78775 2.57884 5.35017 3.01643C4.91258 3.45401 4.66675 4.0475 4.66675 4.66634V23.333C4.66675 23.9518 4.91258 24.5453 5.35017 24.9829C5.78775 25.4205 6.38124 25.6663 7.00008 25.6663H21.0001C21.6189 25.6663 22.2124 25.4205 22.65 24.9829C23.0876 24.5453 23.3334 23.9518 23.3334 23.333V8.16634L17.5001 2.33301Z" stroke="#1C1C1E" stroke-width="2.33333" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/languages-ic.imageset/Contents.json b/MiniScanner/Supporting Files/Icons.xcassets/languages-ic.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..d40873570511d3e3408121afd7ee8d18d3317459
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/languages-ic.imageset/Contents.json	
@@ -0,0 +1,16 @@
+{
+  "images" : [
+    {
+      "filename" : "languages-ic.svg",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  },
+  "properties" : {
+    "preserves-vector-representation" : true,
+    "template-rendering-intent" : "template"
+  }
+}
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/languages-ic.imageset/languages-ic.svg b/MiniScanner/Supporting Files/Icons.xcassets/languages-ic.imageset/languages-ic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b8732a97721270f11797d57e7c9c11f7ff93fed4
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/languages-ic.imageset/languages-ic.svg	
@@ -0,0 +1,3 @@
+<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.83325 9.33301L12.8333 16.333M4.66659 16.333L11.6666 9.33301L13.9999 5.83301M2.33325 5.83301H16.3333M8.16659 2.33301H9.33325M25.6666 25.6663L19.8333 13.9997L13.9999 25.6663M16.3333 20.9997H23.3333" stroke="#1C1C1E" stroke-width="2.33333" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/smartphone-ic.imageset/Contents.json b/MiniScanner/Supporting Files/Icons.xcassets/smartphone-ic.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..72ab726f624c229c5aa5ab22a18d64cab5e87ede
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/smartphone-ic.imageset/Contents.json	
@@ -0,0 +1,16 @@
+{
+  "images" : [
+    {
+      "filename" : "smartphone-ic.svg",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  },
+  "properties" : {
+    "preserves-vector-representation" : true,
+    "template-rendering-intent" : "template"
+  }
+}
diff --git a/MiniScanner/Supporting Files/Icons.xcassets/smartphone-ic.imageset/smartphone-ic.svg b/MiniScanner/Supporting Files/Icons.xcassets/smartphone-ic.imageset/smartphone-ic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c84a5793af1b5ea48b7486a87ef333274cfb4aee
--- /dev/null
+++ b/MiniScanner/Supporting Files/Icons.xcassets/smartphone-ic.imageset/smartphone-ic.svg	
@@ -0,0 +1,3 @@
+<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M13.9999 20.9997H14.0116M8.16659 2.33301H19.8333C21.1219 2.33301 22.1666 3.37768 22.1666 4.66634V23.333C22.1666 24.6217 21.1219 25.6663 19.8333 25.6663H8.16659C6.87792 25.6663 5.83325 24.6217 5.83325 23.333V4.66634C5.83325 3.37768 6.87792 2.33301 8.16659 2.33301Z" stroke="#1C1C1E" stroke-width="2.33333" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/MiniScanner/Supporting Files/Localization/Localizable.xcstrings b/MiniScanner/Supporting Files/Localization/Localizable.xcstrings
index d935c65285132194165c67f6f7cae7aee55a2f37..9f530f34eb89d7d5870198212941ec10269ea122 100644
--- a/MiniScanner/Supporting Files/Localization/Localizable.xcstrings	
+++ b/MiniScanner/Supporting Files/Localization/Localizable.xcstrings	
@@ -191,9 +191,32 @@
         }
       }
     },
+    "app_language" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "ar" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "لغة التطبيق"
+          }
+        },
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "App Language"
+          }
+        }
+      }
+    },
     "app_theme" : {
       "extractionState" : "manual",
       "localizations" : {
+        "ar" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "مظهر التطبيق"
+          }
+        },
         "en" : {
           "stringUnit" : {
             "state" : "translated",
@@ -270,6 +293,23 @@
         }
       }
     },
+    "based_on_device" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "ar" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "حسب تفضيلات الجهاز"
+          }
+        },
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Based on Device"
+          }
+        }
+      }
+    },
     "camera" : {
       "extractionState" : "manual",
       "localizations" : {
@@ -304,6 +344,23 @@
         }
       }
     },
+    "change" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "ar" : {
+          "stringUnit" : {
+            "state" : "needs_review",
+            "value" : "تغيير"
+          }
+        },
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Change"
+          }
+        }
+      }
+    },
     "clear" : {
       "extractionState" : "manual",
       "localizations" : {
@@ -445,6 +502,40 @@
         }
       }
     },
+    "default_file_type_for_installing" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "ar" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "نوع الملف الافتراضي للتنزيل"
+          }
+        },
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Default file type for installing"
+          }
+        }
+      }
+    },
+    "default_screen_when_app_starts" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "ar" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "الصفحة الافتراضية عند فتح التطبيق"
+          }
+        },
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Default screen when app starts"
+          }
+        }
+      }
+    },
     "default_signature" : {
       "extractionState" : "manual",
       "localizations" : {
@@ -615,34 +706,6 @@
         }
       }
     },
-    "device_language" : {
-      "extractionState" : "manual",
-      "localizations" : {
-        "ar" : {
-          "stringUnit" : {
-            "state" : "translated",
-            "value" : "لغة الجهاز"
-          }
-        },
-        "en" : {
-          "stringUnit" : {
-            "state" : "translated",
-            "value" : "Device language"
-          }
-        }
-      }
-    },
-    "device_theme" : {
-      "extractionState" : "manual",
-      "localizations" : {
-        "en" : {
-          "stringUnit" : {
-            "state" : "translated",
-            "value" : "Device Theme"
-          }
-        }
-      }
-    },
     "didnt_sign_alert_message" : {
       "extractionState" : "manual",
       "localizations" : {
@@ -852,6 +915,23 @@
         }
       }
     },
+    "files" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "ar" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "الملفات"
+          }
+        },
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Files"
+          }
+        }
+      }
+    },
     "folder_files" : {
       "extractionState" : "manual",
       "localizations" : {
@@ -965,23 +1045,6 @@
         }
       }
     },
-    "language" : {
-      "extractionState" : "manual",
-      "localizations" : {
-        "ar" : {
-          "stringUnit" : {
-            "state" : "translated",
-            "value" : "اللغة"
-          }
-        },
-        "en" : {
-          "stringUnit" : {
-            "state" : "translated",
-            "value" : "Language"
-          }
-        }
-      }
-    },
     "light_mode" : {
       "extractionState" : "manual",
       "localizations" : {