diff --git a/MiniScanner.xcodeproj/project.pbxproj b/MiniScanner.xcodeproj/project.pbxproj index cbf5299cfdd11772ea25164335edda60279953e2..2066f5c4a05af436ce3efefe15c0879100e27774 100644 --- a/MiniScanner.xcodeproj/project.pbxproj +++ b/MiniScanner.xcodeproj/project.pbxproj @@ -193,6 +193,7 @@ 672C46D72C48006200497EF0 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 672C46D62C48006200497EF0 /* Colors.xcassets */; }; 672C46DA2C48018400497EF0 /* Color+Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 672C46D92C48018400497EF0 /* Color+Colors.swift */; }; 672C46DC2C48018D00497EF0 /* UIColors+Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 672C46DB2C48018D00497EF0 /* UIColors+Colors.swift */; }; + 67807F8C2C48F49B00D1F168 /* HandleAppLanguageUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67807F8B2C48F49B00D1F168 /* HandleAppLanguageUseCase.swift */; }; B827E5196CC419E773B843E1 /* Pods_MiniScanner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9A37DC9F9A8E3AF632DFB98 /* Pods_MiniScanner.framework */; }; EC0CF1FE254D8BBF00888722 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0CF1FD254D8BBF00888722 /* AppDelegate.swift */; }; EC0CF200254D8BBF00888722 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0CF1FF254D8BBF00888722 /* SceneDelegate.swift */; }; @@ -436,6 +437,7 @@ 672C46D62C48006200497EF0 /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = "<group>"; }; 672C46D92C48018400497EF0 /* Color+Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Colors.swift"; sourceTree = "<group>"; }; 672C46DB2C48018D00497EF0 /* UIColors+Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColors+Colors.swift"; sourceTree = "<group>"; }; + 67807F8B2C48F49B00D1F168 /* HandleAppLanguageUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HandleAppLanguageUseCase.swift; sourceTree = "<group>"; }; E8AF4FB39674DF589D719DCF /* Pods-MiniScanner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MiniScanner.release.xcconfig"; path = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner.release.xcconfig"; sourceTree = "<group>"; }; E9A37DC9F9A8E3AF632DFB98 /* Pods_MiniScanner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MiniScanner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EC0CF1FA254D8BBF00888722 /* MiniScanner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MiniScanner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1024,6 +1026,7 @@ 672C46B92C47E98900497EF0 /* ChangeLanguageUseCase.swift */, 672C46BA2C47E98900497EF0 /* GetLanguagesUseCase.swift */, 672C46CB2C47E9AB00497EF0 /* GetLanguageUseCase.swift */, + 67807F8B2C48F49B00D1F168 /* HandleAppLanguageUseCase.swift */, ); path = Language; sourceTree = "<group>"; @@ -1570,6 +1573,7 @@ 53014FA22C11A8E80071CE39 /* ScannedPageViewController.swift in Sources */, 5399969D2C27130000671340 /* Constraint.swift in Sources */, EC8A9B1D254DCEC600F9AF99 /* File.swift in Sources */, + 67807F8C2C48F49B00D1F168 /* HandleAppLanguageUseCase.swift in Sources */, 53E7D33A2C1B00880025A1D3 /* FSPageControl.swift in Sources */, EC8A9B24254DE72F00F9AF99 /* UIView+Extensions.swift in Sources */, EC0CF200254D8BBF00888722 /* SceneDelegate.swift in Sources */, diff --git a/MiniScanner/Features/Common/DI/DependencyManager.swift b/MiniScanner/Features/Common/DI/DependencyManager.swift index ef3895f03a324ae1c45f35e657ac54d46f3b968e..795688ca726f027222b858a6f01bc6ade8d8340d 100644 --- a/MiniScanner/Features/Common/DI/DependencyManager.swift +++ b/MiniScanner/Features/Common/DI/DependencyManager.swift @@ -34,5 +34,7 @@ final class DependencyManager { @Provide var changeColorSchemeUseCase = ChangeColorSchemeUseCase(repository: repository) @Provide var handleAppStartUseCase = HandleAppStartUseCase(repository: repository) + + @Provide var handleAppLanguageUseCase = HandleAppLanguageUseCase(repository: repository) } } diff --git a/MiniScanner/Features/Common/Data/DataSources/SettingsDataSource.swift b/MiniScanner/Features/Common/Data/DataSources/SettingsDataSource.swift index 469ed75d599c5db30f9c1f45fe867bf7c86f945c..a539686d250f21c4cc8c0f06c698667286e994f3 100644 --- a/MiniScanner/Features/Common/Data/DataSources/SettingsDataSource.swift +++ b/MiniScanner/Features/Common/Data/DataSources/SettingsDataSource.swift @@ -13,6 +13,7 @@ protocol SettingsDataSourceProtocol { func getLanguages() -> [SupportedLanguage] func getLanguage() -> SupportedLanguage func changeLanguage(to language: SupportedLanguage) + func changeManagerLanguage(to language: SupportedLanguage) func getColorScheme() -> SupportedColorScheme func changeColorScheme(to colorScheme: SupportedColorScheme) @@ -57,6 +58,10 @@ class SettingsDataSource: SettingsDataSourceProtocol { func changeLanguage(to language: SupportedLanguage) { self.language = language + changeManagerLanguage(to: language) + } + + func changeManagerLanguage(to language: SupportedLanguage) { languageManager.setLanguage(language: language.language) languageManager.defaultLanguage = language.language } diff --git a/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift b/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift index 21dec49776d298eccfb55ccddbffeba0721aea85..908de5afe043e5b66821a255861b3ebe3d1ef11c 100644 --- a/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift +++ b/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift @@ -46,6 +46,10 @@ class SettingsRepository: SettingsRepositoryProtocol { } } + func handleAppLanguage() { + handleLanguage() + } + func handleAppStart() { handleColorScheme() handleUISettings() @@ -85,6 +89,12 @@ extension SettingsRepository { extension SettingsRepository { + private func handleLanguage() { + let langauge = getLanguage() + + dataSource.changeManagerLanguage(to: langauge) + } + private func handleColorScheme() { let colorScheme = getColorScheme() changeAppColorScheme(to: colorScheme) diff --git a/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift b/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift index 42094b8728a14a554e73f152e2dbd045f1c1b448..9c98fcf21a41e663d96cb5502679ea441c3de96b 100644 --- a/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift +++ b/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift @@ -17,5 +17,6 @@ protocol SettingsRepositoryProtocol { func getColorScheme() -> SupportedColorScheme func changeColorScheme(to colorScheme: SupportedColorScheme) + func handleAppLanguage() func handleAppStart() } diff --git a/MiniScanner/Features/Common/Domain/UseCases/Language/HandleAppLanguageUseCase.swift b/MiniScanner/Features/Common/Domain/UseCases/Language/HandleAppLanguageUseCase.swift new file mode 100644 index 0000000000000000000000000000000000000000..1af982ab91885e5b23868ca37e745d7e475b34f7 --- /dev/null +++ b/MiniScanner/Features/Common/Domain/UseCases/Language/HandleAppLanguageUseCase.swift @@ -0,0 +1,22 @@ +// +// HandleAppLanguageUseCase.swift +// MiniScanner +// +// Created by Mustafa Merza on 7/18/24. +// Copyright © 2024 AppsNectar. All rights reserved. +// + +import Foundation + +class HandleAppLanguageUseCase { + + private let repository: SettingsRepositoryProtocol + + init(repository: SettingsRepositoryProtocol) { + self.repository = repository + } + + func execute() { + repository.handleAppLanguage() + } +} diff --git a/MiniScanner/Supporting Files/AppDelegate.swift b/MiniScanner/Supporting Files/AppDelegate.swift index 70aded35d889d6eb43c37cb05abcffd44a11106e..6ad27a9118822a943803e17f416653bb9ed737b6 100644 --- a/MiniScanner/Supporting Files/AppDelegate.swift +++ b/MiniScanner/Supporting Files/AppDelegate.swift @@ -11,6 +11,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate { initializeDependencies() + @Inject var handleAppLanguageUseCase: HandleAppLanguageUseCase + handleAppLanguageUseCase.execute() + if let savedFolders = UserDefaults.standard.object(forKey: "folders") as? Data { print("nooo!!") } else {