Rev 1 | Rev 17 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
//
// twogetskillsApp.swift
// twogetskills
//
// Created by Efrain Yanez Recanatini on 1/12/22.
//
import SwiftUI
import BackgroundTasks
@main
struct TwoGetSkillsApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
@Environment(\.scenePhase) var scenePhase
@ObservedObject var syncForeground = SyncForegroundObservableObject()
private let syncAdapter = SyncAdapter()
private var appData = AppData.sharedInstance
init() {
let coloredAppearance = UINavigationBarAppearance()
coloredAppearance.configureWithOpaqueBackground()
coloredAppearance.backgroundColor = UIColor(Color("color_app_bar_backgroud"))
coloredAppearance.titleTextAttributes = [.foregroundColor: Color("color_app_bar_foreground")]
coloredAppearance.largeTitleTextAttributes = [.foregroundColor: Color("color_app_bar_foreground")]
coloredAppearance.backButtonAppearance.normal.titleTextAttributes = [.foregroundColor: Color("color_app_bar_foreground")]
UINavigationBar.appearance().standardAppearance = coloredAppearance
UINavigationBar.appearance().compactAppearance = coloredAppearance
UINavigationBar.appearance().scrollEdgeAppearance = coloredAppearance
UINavigationBar.appearance().tintColor = UIColor(Color("color_app_bar_foreground"))
UIPageControl.appearance().currentPageIndicatorTintColor = .systemBlue
UIPageControl.appearance().pageIndicatorTintColor = .systemGray2
}
var body: some Scene {
WindowGroup {
MainView()
}
.onChange(of: scenePhase) { newScenePhase in
switch newScenePhase {
case .active:
print("App is active")
syncForeground.timer.invalidate()
syncForeground.timer = Timer.scheduledTimer(timeInterval: 30.0, target: syncAdapter, selector: #selector(syncAdapter.updateTimerForeground), userInfo: nil, repeats: true)
break
case .inactive:
print("App is inactive")
syncForeground.timer.invalidate()
break
case .background:
print("App is in background")
syncForeground.timer.invalidate()
break
@unknown default:
print("Oh - interesting: I received an unexpected new value.")
syncForeground.timer.invalidate()
break
}
}
}
}
class SyncForegroundObservableObject: ObservableObject
{
@Published var timer : Timer = Timer()
}