Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 11 | Rev 58 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 11 Rev 17
Línea 12... Línea 12...
12
@main
12
@main
13
struct TwoGetSkillsApp: App {
13
struct TwoGetSkillsApp: App {
14
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
14
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
15
    @Environment(\.scenePhase) var scenePhase
15
    @Environment(\.scenePhase) var scenePhase
Línea -... Línea 16...
-
 
16
    
16
    
17
    
17
    @ObservedObject var syncForeground = SyncForegroundObservableObject()
18
    @ObservedObject var syncForeground = SyncForegroundObservableObject()
-
 
19
    private let syncAdapter = SyncAdapter()
18
    private let syncAdapter = SyncAdapter()
20
    private var appData = AppData.sharedInstance
19
   
21
    
Línea 20... Línea 22...
20
    init() {
22
    init() {
21
 
23
 
22
      let coloredAppearance = UINavigationBarAppearance()
24
      let coloredAppearance = UINavigationBarAppearance()
Línea 44... Línea 46...
44
    
46
    
Línea 45... Línea 47...
45
    var body: some Scene {
47
    var body: some Scene {
46
 
48
 
-
 
49
        WindowGroup {
-
 
50
            MainView()
47
        WindowGroup {
51
        }
48
            MainView()
52
 
49
        } .onChange(of: scenePhase) { newScenePhase in
53
        .onChange(of: scenePhase) { newScenePhase in
50
            switch newScenePhase {
54
            switch newScenePhase {
51
                case .active:
55
                case .active:
52
                    print("App is active")
56
                    print("App is active")
53
                    syncForeground.timer.invalidate()
57
                    syncForeground.timer.invalidate()
Línea 54... Línea 58...
54
                    syncForeground.timer = Timer.scheduledTimer(timeInterval: 30.0, target: syncAdapter, selector: #selector(syncAdapter.updateTimer), userInfo: nil, repeats: true)
58
                    syncForeground.timer = Timer.scheduledTimer(timeInterval: 30.0, target: syncAdapter, selector: #selector(syncAdapter.updateTimerForeground), userInfo: nil, repeats: true)
55
                    break
59
                    break
56
                    
60
                    
Línea 72... Línea 76...
72
          }
76
          }
73
    }
77
    }
Línea 74... Línea 78...
74
    
78
    
75
    func registerBGTasksScheduler() {
79
    func registerBGTasksScheduler() {
76
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_REFRESH, using: nil) { task in
80
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_REFRESH, using: nil) { task in
77
                 self.handleRefresh(task: task as! BGAppRefreshTask)
81
                 self.handleRefreshTask(task: task as! BGAppRefreshTask)
Línea 78... Línea 82...
78
        }
82
        }
79
        
83
        
80
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_PROCESS, using: nil) { task in
84
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_PROCESS, using: nil) { task in
Línea 112... Línea 116...
112
    func handleProcessTask(task: BGProcessingTask) {
116
    func handleProcessTask(task: BGProcessingTask) {
113
        scheduleProcess()
117
        scheduleProcess()
Línea 114... Línea 118...
114
        
118
        
115
        let syncAdapter = SyncAdapter()
119
        let syncAdapter = SyncAdapter()
-
 
120
        syncAdapter.sync { success in
116
        syncAdapter.sync { success in
121
            task.setTaskCompleted(success: success)
Línea -... Línea 122...
-
 
122
        }
117
        }
123
 
118
 
124
        /*
119
        task.expirationHandler = {
125
        task.expirationHandler = {
-
 
126
            task.setTaskCompleted(success: false)
120
            task.setTaskCompleted(success: false)
127
         }
121
         }
128
         */
Línea 122... Línea 129...
122
        task.setTaskCompleted(success: true)
129
        task.setTaskCompleted(success: true)
123
    }
130
    }
-
 
131
        
-
 
132
    func handleRefreshTask(task: BGAppRefreshTask) {
-
 
133
        scheduleRefresh()
-
 
134
        
-
 
135
        
-
 
136
        
-
 
137
        let syncAdapter = SyncAdapter()
-
 
138
        if syncAdapter.isCheckChangesRequired() {
-
 
139
            syncAdapter.checkChanges(isForeground: false) { success in
124
        
140
                task.setTaskCompleted(success: success)
125
    func handleRefresh(task: BGAppRefreshTask) {
141
            }
-
 
142
        } else {
126
        scheduleRefresh()
143
            task.expirationHandler = {
-
 
144
                task.setTaskCompleted(success: false)
-
 
145
             }
127
        task.expirationHandler = {
146
        }
128
            task.setTaskCompleted(success: false)
147
        
129
         }
148