Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

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

Rev 58 Rev 59
Línea 72... Línea 72...
72
                    break
72
                    break
73
                }
73
                }
74
          }
74
          }
75
    }
75
    }
Línea 76... Línea -...
76
    
-
 
77
    func registerBGTasksScheduler() {
-
 
78
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_REFRESH, using: nil) { task in
-
 
79
                 self.handleRefreshTask(task: task as! BGAppRefreshTask)
-
 
80
        }
-
 
81
        
-
 
82
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_PROCESS, using: nil) { task in
-
 
83
                 self.handleProcessTask(task: task as! BGProcessingTask)
-
 
84
        }
-
 
85
 
-
 
86
    }
-
 
87
        
-
 
88
    func scheduleRefresh() {
-
 
89
        let request = BGAppRefreshTaskRequest(identifier: Constants.BACKGROUND_TASK_REFRESH)
-
 
90
        request.earliestBeginDate = Date(timeIntervalSinceNow: 10 * 60)
-
 
91
        
-
 
92
 
-
 
93
            
-
 
94
        do {
-
 
95
             try BGTaskScheduler.shared.submit(request)
-
 
96
        } catch {
-
 
97
            print("Could not schedule app refresh: \(error)")
-
 
98
        }
-
 
99
    }
-
 
100
        
-
 
101
    func scheduleProcess() {
-
 
102
        let request = BGProcessingTaskRequest(identifier: Constants.BACKGROUND_TASK_PROCESS)
-
 
103
        request.earliestBeginDate = Date(timeIntervalSinceNow: 10 * 60)
-
 
104
        request.requiresNetworkConnectivity = true
-
 
105
        request.requiresExternalPower = false
-
 
106
 
-
 
107
        do {
-
 
108
            try BGTaskScheduler.shared.submit(request)
-
 
109
        } catch {
-
 
110
            print("Could not schedule processing: \(error)")
-
 
111
        }
-
 
112
    }
-
 
113
        
-
 
114
    func handleProcessTask(task: BGProcessingTask) {
-
 
115
        scheduleProcess()
-
 
116
        
-
 
117
        let syncAdapter = SyncAdapter()
-
 
118
        syncAdapter.sync { success in
-
 
119
            task.setTaskCompleted(success: success)
-
 
120
        }
-
 
121
 
-
 
122
        /*
-
 
123
        task.expirationHandler = {
-
 
124
            task.setTaskCompleted(success: false)
-
 
125
         }
-
 
126
         */
-
 
127
        task.setTaskCompleted(success: true)
-
 
128
    }
-
 
129
        
-
 
130
    func handleRefreshTask(task: BGAppRefreshTask) {
-
 
131
        scheduleRefresh()
-
 
132
        
-
 
133
        
-
 
134
        
-
 
135
        let syncAdapter = SyncAdapter()
-
 
136
        if syncAdapter.isCheckChangesRequired() {
-
 
137
            syncAdapter.checkChanges(isForeground: false) { success in
-
 
138
                task.setTaskCompleted(success: success)
-
 
139
            }
-
 
140
        } else {
-
 
141
            task.expirationHandler = {
-
 
142
                task.setTaskCompleted(success: false)
-
 
143
             }
-
 
144
        }
-
 
145
        
76
    
146
 
-
 
147
        task.setTaskCompleted(success: true)
-
 
148
    }
77
    
Línea 149... Línea -...
149
}
-
 
150
 
-
 
151
 
-
 
152
class SyncForegroundObservableObject: ObservableObject
78
}