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 10... Línea 10...
10
import Messages
10
import Messages
11
import BackgroundTasks
11
import BackgroundTasks
Línea 12... Línea 12...
12
 
12
 
Línea -... Línea 13...
-
 
13
//UIResponder, UIApplicationDelegate {
-
 
14
 
-
 
15
class SyncForegroundObservableObject: ObservableObject
-
 
16
{
-
 
17
    @Published var timer : Timer = Timer()
13
//UIResponder, UIApplicationDelegate {
18
}
14
 
19
 
15
class AppDelegate : NSObject, UIApplicationDelegate {
20
class AppDelegate : NSObject, UIApplicationDelegate {
16
    private var isSyncInProgress = false
21
    private var isSyncInProgress = false
17
    private var syncAdapter = SyncAdapter()
22
    private var syncAdapter = SyncAdapter()
Línea 70... Línea 75...
70
                  let settings: UIUserNotificationSettings =
75
                  let settings: UIUserNotificationSettings =
71
                  UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
76
                  UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
72
                  application.registerUserNotificationSettings(settings)
77
                  application.registerUserNotificationSettings(settings)
73
                }
78
                }
Línea 74... Línea 79...
74
 
79
 
75
                application.registerForRemoteNotifications()
-
 
Línea 76... Línea 80...
76
        
80
        application.registerForRemoteNotifications()
77
        
81
        
78
        registerBGTasksScheduler()
82
        registerBGTasksScheduler()
Línea -... Línea 83...
-
 
83
        scheduleProcess()
-
 
84
        scheduleRefresh()
-
 
85
        
-
 
86
        return true
-
 
87
    }
-
 
88
    
-
 
89
    func registerBGTasksScheduler() {
Línea -... Línea 90...
-
 
90
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_REFRESH, using: nil) { task in
-
 
91
                 self.handleRefreshTask(task: task as! BGAppRefreshTask)
79
        scheduleProcess()
92
        }
Línea -... Línea 93...
-
 
93
        
80
        scheduleRefresh()
94
        BGTaskScheduler.shared.register(forTaskWithIdentifier: Constants.BACKGROUND_TASK_PROCESS, using: nil) { task in
-
 
95
                 self.handleProcessTask(task: task as! BGProcessingTask)
-
 
96
        }
-
 
97
 
-
 
98
    }
Línea -... Línea 99...
-
 
99
        
-
 
100
    func scheduleRefresh() {
-
 
101
        let request = BGAppRefreshTaskRequest(identifier: Constants.BACKGROUND_TASK_REFRESH)
-
 
102
        request.earliestBeginDate = Date(timeIntervalSinceNow: 10 * 60)
-
 
103
        
-
 
104
 
-
 
105
            
-
 
106
        do {
-
 
107
             try BGTaskScheduler.shared.submit(request)
-
 
108
        } catch {
-
 
109
            print("Could not schedule app refresh: \(error)")
-
 
110
        }
-
 
111
    }
-
 
112
        
-
 
113
    func scheduleProcess() {
-
 
114
        let request = BGProcessingTaskRequest(identifier: Constants.BACKGROUND_TASK_PROCESS)
-
 
115
        request.earliestBeginDate = Date(timeIntervalSinceNow: 10 * 60)
-
 
116
        request.requiresNetworkConnectivity = true
-
 
117
        request.requiresExternalPower = false
-
 
118
 
-
 
119
        do {
-
 
120
            try BGTaskScheduler.shared.submit(request)
-
 
121
        } catch {
-
 
122
            print("Could not schedule processing: \(error)")
-
 
123
        }
-
 
124
    }
-
 
125
        
-
 
126
    func handleProcessTask(task: BGProcessingTask) {
Línea -... Línea 127...
-
 
127
        scheduleProcess()
-
 
128
        
-
 
129
        let syncAdapter = SyncAdapter()
-
 
130
        syncAdapter.sync { success in
-
 
131
            task.setTaskCompleted(success: success)
-
 
132
        }
-
 
133
 
-
 
134
        /*
-
 
135
        task.expirationHandler = {
-
 
136
            task.setTaskCompleted(success: false)
-
 
137
         }
-
 
138
         */
-
 
139
        task.setTaskCompleted(success: true)
-
 
140
    }
-
 
141
        
-
 
142
    func handleRefreshTask(task: BGAppRefreshTask) {
-
 
143
        scheduleRefresh()
-
 
144
        
-
 
145
        
-
 
146
        
-
 
147
        let syncAdapter = SyncAdapter()
-
 
148
        if syncAdapter.isCheckChangesRequired() {
-
 
149
            syncAdapter.checkChanges(isForeground: false) { success in
-
 
150
                task.setTaskCompleted(success: success)
-
 
151
            }
-
 
152
        } else {
81
        
153
            task.expirationHandler = {
82
        
-