Skip to content

Commit 6c6ed01

Browse files
committed
merge from upstream. Fixed issues for allowing freeform task id.
1 parent 63a1b93 commit 6c6ed01

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

ios/Classes/SwiftWorkmanagerPlugin.swift

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ extension String {
1111

1212
public class SwiftWorkmanagerPlugin: FlutterPluginAppLifeCycleDelegate {
1313
static let identifier = "be.tramckrijte.workmanager"
14-
15-
static let defaultBGProcessingTaskIdentifier = "workmanager.background.task"
14+
15+
// note: this must also be in info.plist - see key: BGTaskSchedulerPermittedIdentifiers
1616
static let defaultBGAppRefreshTaskIdentifier = "workmanager.background.refresh.task"
17-
var bgRefreshTaskFrequency = 0.0
17+
18+
// gets set when task is scheduled. If value is 0.0 it doesn't Repeat
19+
static var bgRefreshTaskFrequency = 0.0
1820

1921
private static var flutterPluginRegistrantCallback: FlutterPluginRegistrantCallback?
2022

@@ -89,7 +91,7 @@ public class SwiftWorkmanagerPlugin: FlutterPluginAppLifeCycleDelegate {
8991
}
9092

9193
@available(iOS 13.0, *)
92-
private func scheduleAppRefresh() {
94+
private static func scheduleAppRefresh() {
9395
let request = BGAppRefreshTaskRequest(identifier: SwiftWorkmanagerPlugin.defaultBGAppRefreshTaskIdentifier)
9496

9597
request.earliestBeginDate = Date(timeIntervalSinceNow: bgRefreshTaskFrequency * 60)
@@ -102,7 +104,7 @@ public class SwiftWorkmanagerPlugin: FlutterPluginAppLifeCycleDelegate {
102104
}
103105

104106
@available(iOS 13.0, *)
105-
private func handleAppRefresh(task: BGAppRefreshTask) {
107+
private static func handleAppRefresh(task: BGAppRefreshTask) {
106108
print("handleAppRefresh()", task.identifier)
107109

108110
if (bgRefreshTaskFrequency > 0) {
@@ -145,8 +147,9 @@ public class SwiftWorkmanagerPlugin: FlutterPluginAppLifeCycleDelegate {
145147
}
146148
}
147149

150+
// just using the static identifier for now.
148151
BGTaskScheduler.shared.register(forTaskWithIdentifier: SwiftWorkmanagerPlugin.defaultBGAppRefreshTaskIdentifier, using: nil) { task in
149-
self.handleAppRefresh(task: task as! BGAppRefreshTask)
152+
handleAppRefresh(task: task as! BGAppRefreshTask)
150153
}
151154
}
152155
}
@@ -188,7 +191,7 @@ extension SwiftWorkmanagerPlugin: FlutterPlugin {
188191

189192
case (ForegroundMethodChannel.Methods.RegisterAppRefreshTask.name, let .some(arguments)):
190193
print("ForegroundMethodChannel.Methods.RegisterAppRefreshTask")
191-
if !validateCallbackHandle(result: result) {
194+
if !SwiftWorkmanagerPlugin.validateCallbackHandle(result: result) {
192195
return
193196
}
194197

@@ -200,14 +203,14 @@ extension SwiftWorkmanagerPlugin: FlutterPlugin {
200203
return
201204
}
202205

203-
guard let regreshFrequencySeconds =
206+
guard let refreshFrequencySeconds =
204207
arguments[method.Arguments.refreshFrequencySeconds.rawValue] as? Int64 else {
205208
result(WMPError.invalidParameters.asFlutterError)
206209
return
207210
}
208211

209212
// save this, can't store in task
210-
bgRefreshTaskFrequency = Double(regreshFrequencySeconds)
213+
SwiftWorkmanagerPlugin.bgRefreshTaskFrequency = Double(refreshFrequencySeconds)
211214

212215
let request = BGAppRefreshTaskRequest(
213216
identifier: SwiftWorkmanagerPlugin.defaultBGAppRefreshTaskIdentifier
@@ -228,7 +231,7 @@ extension SwiftWorkmanagerPlugin: FlutterPlugin {
228231
}
229232

230233
case (ForegroundMethodChannel.Methods.RegisterOneOffTask.name, let .some(arguments)):
231-
if !validateCallbackHandle(result: result) {
234+
if !SwiftWorkmanagerPlugin.validateCallbackHandle(result: result) {
232235
return
233236
}
234237

@@ -295,7 +298,7 @@ extension SwiftWorkmanagerPlugin: FlutterPlugin {
295298
}
296299
}
297300

298-
private func validateCallbackHandle(result: @escaping FlutterResult) -> Bool {
301+
private static func validateCallbackHandle(result: @escaping FlutterResult) -> Bool {
299302
let valid = UserDefaultsHelper.getStoredCallbackHandle() != nil
300303
if (!valid) {
301304
result(

0 commit comments

Comments
 (0)