Select Git revision
SettingsRepository.swift
SettingsRepository.swift 3.37 KiB
//
// SettingsRepository.swift
// MiniScanner
//
// Created by Mustafa Merza on 7/17/24.
// Copyright © 2024 AppsNectar. All rights reserved.
//
import Foundation
class SettingsRepository: SettingsRepositoryProtocol {
private let dataSource: SettingsDataSourceProtocol
init(dataSource: SettingsDataSourceProtocol) {
self.dataSource = dataSource
}
func getLanguages() -> [SupportedLanguage] {
dataSource.getLanguages()
}
func getLanguage() -> SupportedLanguage {
dataSource.getLanguage()
}
func changeLanguage(to language: SupportedLanguage) {
if shouldChangeLanguage(to: language) {
dataSource.changeLanguage(to: language)
}
}
func getColorScheme() -> SupportedColorScheme {
dataSource.getColorScheme()
}
func changeColorScheme(to colorScheme: SupportedColorScheme) {
if shouldChangeColorScheme(to: colorScheme) {
dataSource.changeColorScheme(to: colorScheme)
changeAppColorScheme(to: colorScheme)
}
}
func handleAppLanguage() {
handleLanguage()
}
func handleAppStart() {
handleColorScheme()
handleUISettings()
}
}
extension SettingsRepository {
private func shouldChangeLanguage(to language: SupportedLanguage) -> Bool {
dataSource.getLanguage() != language
}
private func shouldChangeColorScheme(to colorScheme: SupportedColorScheme) -> Bool {
dataSource.getColorScheme() != colorScheme
}
private func changeAppColorScheme(to colorScheme: SupportedColorScheme) {
switch colorScheme {