Something went wrong on our end
-
Ahmed Shehata authoredAhmed Shehata authored
SettingsController.swift 10.78 KiB
import HUD
import Popup
import UIKit
import Theme
import Shared
import Combine
import DependencyInjection
import ScrollViewController
public final class SettingsController: UIViewController {
@Dependency private var hud: HUDType
@Dependency private var coordinator: SettingsCoordinating
@Dependency private var statusBarController: StatusBarStyleControlling
lazy private var scrollViewController = ScrollViewController()
lazy private var screenView = SettingsView {
switch $0 {
case .icognitoKeyboard:
self.presentInfo(
title: Localized.Settings.InfoPopUp.Icognito.title,
subtitle: Localized.Settings.InfoPopUp.Icognito.subtitle
)
case .biometrics:
self.presentInfo(
title: Localized.Settings.InfoPopUp.Biometrics.title,
subtitle: Localized.Settings.InfoPopUp.Biometrics.subtitle
)
case .notifications:
self.presentInfo(
title: Localized.Settings.InfoPopUp.Notifications.title,
subtitle: Localized.Settings.InfoPopUp.Notifications.subtitle,
urlString: "https://links.xx.network/denseids"
)
case .dummyTraffic:
self.presentInfo(
title: Localized.Settings.InfoPopUp.Traffic.title,
subtitle: Localized.Settings.InfoPopUp.Traffic.subtitle,
urlString: "https://links.xx.network/covertraffic"
)
}
}
private let viewModel = SettingsViewModel()
private var cancellables = Set<AnyCancellable>()
private var popupCancellables = Set<AnyCancellable>()
public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
statusBarController.style.send(.darkContent)
navigationController?.navigationBar
.customize(backgroundColor: Asset.neutralWhite.color)
}
public override func viewDidLoad() {
super.viewDidLoad()
setupNavigationBar()
setupScrollView()
setupBindings()
viewModel.loadCachedSettings()
}
private func setupNavigationBar() {
navigationItem.backButtonTitle = ""
let title = UILabel()
title.text = Localized.Settings.title
title.textColor = Asset.neutralActive.color