diff --git a/MiniScanner.xcodeproj/project.pbxproj b/MiniScanner.xcodeproj/project.pbxproj index 0f7ada4b5a632db42d3f97a9e9033d2625ec198a..df3087a6e5f7c57b623042a692aeb2a519c0e8a1 100644 --- a/MiniScanner.xcodeproj/project.pbxproj +++ b/MiniScanner.xcodeproj/project.pbxproj @@ -189,6 +189,7 @@ 672C46CF2C47EA6D00497EF0 /* GetColorSchemeUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 672C46CE2C47EA6D00497EF0 /* GetColorSchemeUseCase.swift */; }; 672C46D12C47EA7400497EF0 /* ChangeColorSchemeUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 672C46D02C47EA7400497EF0 /* ChangeColorSchemeUseCase.swift */; }; 672C46D32C47EA8F00497EF0 /* SupportedColorScheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 672C46D22C47EA8F00497EF0 /* SupportedColorScheme.swift */; }; + 672C46D52C47F8D000497EF0 /* HandleAppStartUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 672C46D42C47F8D000497EF0 /* HandleAppStartUseCase.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 */; }; @@ -428,6 +429,7 @@ 672C46CE2C47EA6D00497EF0 /* GetColorSchemeUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetColorSchemeUseCase.swift; sourceTree = "<group>"; }; 672C46D02C47EA7400497EF0 /* ChangeColorSchemeUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeColorSchemeUseCase.swift; sourceTree = "<group>"; }; 672C46D22C47EA8F00497EF0 /* SupportedColorScheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportedColorScheme.swift; sourceTree = "<group>"; }; + 672C46D42C47F8D000497EF0 /* HandleAppStartUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HandleAppStartUseCase.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; }; @@ -1025,6 +1027,7 @@ children = ( 672C46CD2C47EA2A00497EF0 /* ColorScheme */, 672C46BB2C47E98900497EF0 /* Language */, + 672C46D42C47F8D000497EF0 /* HandleAppStartUseCase.swift */, ); path = UseCases; sourceTree = "<group>"; @@ -1494,6 +1497,7 @@ 539996822C27130000671340 /* ConstraintDescription.swift in Sources */, EC702546254E1E9E00BE1958 /* WalkthroughModel.swift in Sources */, 53D9D1C22C1AF521004D1C1C /* StickerView.swift in Sources */, + 672C46D52C47F8D000497EF0 /* HandleAppStartUseCase.swift in Sources */, 539996A22C27130000671340 /* ConstraintDirectionalInsets.swift in Sources */, 53E7D3352C1B00880025A1D3 /* FSPagerView.swift in Sources */, 672C46B32C47E8D700497EF0 /* DependencyManager.swift in Sources */, diff --git a/MiniScanner/Features/Common/DI/DependencyManager.swift b/MiniScanner/Features/Common/DI/DependencyManager.swift index 43a708aa86f82310f31e356236bd250e2df319c1..ef3895f03a324ae1c45f35e657ac54d46f3b968e 100644 --- a/MiniScanner/Features/Common/DI/DependencyManager.swift +++ b/MiniScanner/Features/Common/DI/DependencyManager.swift @@ -32,5 +32,7 @@ final class DependencyManager { @Provide var getColorSchemeUseCase = GetColorSchemeUseCase(repository: repository) @Provide var changeColorSchemeUseCase = ChangeColorSchemeUseCase(repository: repository) + + @Provide var handleAppStartUseCase = HandleAppStartUseCase(repository: repository) } } diff --git a/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift b/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift index 1b99dea46304f57b292660785307b481614a5553..97592234e609468058dddd11f2f0bc67a9f6cade 100644 --- a/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift +++ b/MiniScanner/Features/Common/Data/Repositories/SettingsRepository.swift @@ -45,6 +45,11 @@ class SettingsRepository: SettingsRepositoryProtocol { changeAppColorScheme(to: colorScheme) } } + + func handleAppStart() { + handleColorScheme() + handleUISettings() + } } extension SettingsRepository { @@ -77,3 +82,15 @@ extension SettingsRepository { window?.overrideUserInterfaceStyle = userInterfaceStyle } } + +extension SettingsRepository { + + func handleColorScheme() { + let colorScheme = getColorScheme() + changeAppColorScheme(to: colorScheme) + } + + func handleUISettings() { + + } +} diff --git a/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift b/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift index 453e045cc7ad1c85855fd3544a7ea03f6de75c25..42094b8728a14a554e73f152e2dbd045f1c1b448 100644 --- a/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift +++ b/MiniScanner/Features/Common/Domain/Repositories/SettingsRepositoryProtocol.swift @@ -16,4 +16,6 @@ protocol SettingsRepositoryProtocol { func getColorScheme() -> SupportedColorScheme func changeColorScheme(to colorScheme: SupportedColorScheme) + + func handleAppStart() } diff --git a/MiniScanner/Features/Common/Domain/UseCases/HandleAppStartUseCase.swift b/MiniScanner/Features/Common/Domain/UseCases/HandleAppStartUseCase.swift new file mode 100644 index 0000000000000000000000000000000000000000..d08552d842b01bbe6fdadf1f71e7a0fcdcc1fbcf --- /dev/null +++ b/MiniScanner/Features/Common/Domain/UseCases/HandleAppStartUseCase.swift @@ -0,0 +1,22 @@ +// +// HandleAppStartUseCase.swift +// MiniScanner +// +// Created by Mustafa Merza on 7/17/24. +// Copyright © 2024 AppsNectar. All rights reserved. +// + +import Foundation + +class HandleAppStartUseCase { + + private let repository: SettingsRepositoryProtocol + + init(repository: SettingsRepositoryProtocol) { + self.repository = repository + } + + func execute() { + repository.handleAppStart() + } +} diff --git a/MiniScanner/Supporting Files/SceneDelegate.swift b/MiniScanner/Supporting Files/SceneDelegate.swift index 28988ff20927c6e071abec158880668cef0436b2..97a3b835e7d05fe74beb8f48487315e5ce60ca67 100644 --- a/MiniScanner/Supporting Files/SceneDelegate.swift +++ b/MiniScanner/Supporting Files/SceneDelegate.swift @@ -15,6 +15,10 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { let navigationController = AppTabBarController.buildViewController()//BaseNavigationViewController.buildViewController() window?.rootViewController = navigationController window?.makeKeyAndVisible() + + @Inject var handleAppStartUseCase: HandleAppStartUseCase + + handleAppStartUseCase.execute() } func sceneDidDisconnect(_ scene: UIScene) {