Proyectos de Subversion Iphone Microlearning - Inconcert

Rev

Rev 1 | Rev 17 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  twogetskillsApp.swift
3
//  twogetskills
4
//
5
//  Created by Efrain Yanez Recanatini on 1/12/22.
6
//
7
 
8
import SwiftUI
9
import BackgroundTasks
10
 
11
 
12
@main
13
struct TwoGetSkillsApp: App {
14
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
15
    @Environment(\.scenePhase) var scenePhase
16
 
17
 
18
    @ObservedObject var syncForeground = SyncForegroundObservableObject()
19
    private let syncAdapter = SyncAdapter()
20
    private var appData = AppData.sharedInstance
21
 
22
    init() {
23
 
24
      let coloredAppearance = UINavigationBarAppearance()
25
      coloredAppearance.configureWithOpaqueBackground()
26
      coloredAppearance.backgroundColor = UIColor(Color("color_app_bar_backgroud"))
27
      coloredAppearance.titleTextAttributes = [.foregroundColor: Color("color_app_bar_foreground")]
28
      coloredAppearance.largeTitleTextAttributes = [.foregroundColor: Color("color_app_bar_foreground")]
29
      coloredAppearance.backButtonAppearance.normal.titleTextAttributes = [.foregroundColor: Color("color_app_bar_foreground")]
30
 
31
      UINavigationBar.appearance().standardAppearance = coloredAppearance
32
      UINavigationBar.appearance().compactAppearance = coloredAppearance
33
      UINavigationBar.appearance().scrollEdgeAppearance = coloredAppearance
34
 
35
      UINavigationBar.appearance().tintColor = UIColor(Color("color_app_bar_foreground"))
36
 
37
      UIPageControl.appearance().currentPageIndicatorTintColor = .systemBlue
38
      UIPageControl.appearance().pageIndicatorTintColor = .systemGray2
39
 
40
 
41
 
12 efrain 42
 
1 efrain 43
    }
44
 
45
    var body: some Scene {
46
 
47
        WindowGroup {
48
            MainView()
49
        }
50
 
51
        .onChange(of: scenePhase) { newScenePhase in
52
            switch newScenePhase {
53
                case .active:
54
                    print("App is active")
55
                    syncForeground.timer.invalidate()
56
                    syncForeground.timer = Timer.scheduledTimer(timeInterval: 30.0, target: syncAdapter, selector: #selector(syncAdapter.updateTimerForeground), userInfo: nil, repeats: true)
57
                    break
58
 
59
                case .inactive:
60
                  print("App is inactive")
61
                    syncForeground.timer.invalidate()
62
                    break
63
 
64
                case .background:
65
                  print("App is in background")
66
                    syncForeground.timer.invalidate()
67
                    break
68
 
69
                @unknown default:
70
                    print("Oh - interesting: I received an unexpected new value.")
71
                    syncForeground.timer.invalidate()
72
                    break
73
                }
74
          }
75
    }
76
 
12 efrain 77
 
1 efrain 78
}
79
 
80
 
81
class SyncForegroundObservableObject: ObservableObject
82
{
83
    @Published var timer : Timer = Timer()
84
}