Skip to content

Commit 8b3cb22

Browse files
committed
MacOS fixes
1 parent 6aa839b commit 8b3cb22

1 file changed

Lines changed: 34 additions & 11 deletions

File tree

macos/Classes/SwiftQonversionPlugin.swift

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
3030
instance.qonversionSandwich = sandwichInstance
3131
}
3232

33-
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
33+
@MainActor public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
3434

3535
// MARK: - Calls without arguments
3636

3737
switch (call.method) {
3838
case "syncHistoricalData":
39-
qonversionSandwich?.syncHistoricalData()
40-
return result(nil)
39+
qonversionSandwich?.syncHistoricalData()
40+
return result(nil)
4141

4242
case "syncStoreKit2Purchases":
43-
qonversionSandwich?.syncStoreKit2Purchases()
44-
return result(nil)
43+
qonversionSandwich?.syncStoreKit2Purchases()
44+
return result(nil)
4545

4646
case "products":
4747
return products(result)
@@ -62,19 +62,22 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
6262
case "logout":
6363
qonversionSandwich?.logout()
6464
return result(nil)
65-
66-
case "isFallbackFileAccessible":
67-
return isFallbackFileAccessible(result)
6865

6966
case "userInfo":
7067
return userInfo(result)
7168

7269
case "userProperties":
7370
return userProperties(result)
7471

72+
case "isFallbackFileAccessible":
73+
return isFallbackFileAccessible(result)
74+
7575
case "remoteConfigList":
7676
return remoteConfigList(result)
7777

78+
case "collectAppleSearchAdsAttribution":
79+
return collectAppleSearchAdsAttribution(result)
80+
7881
default:
7982
break
8083
}
@@ -95,6 +98,9 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
9598
case "purchase":
9699
return purchase(args, result)
97100

101+
case "purchaseWithResult":
102+
return purchaseWithResult(args, result)
103+
98104
case "remoteConfig":
99105
return remoteConfig(args["contextKey"] as? String, result)
100106

@@ -118,10 +124,10 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
118124

119125
case "identify":
120126
return identify(args["userId"] as? String, result)
121-
127+
122128
case "attachUserToExperiment":
123129
return attachUserToExperiment(args, result)
124-
130+
125131
case "detachUserFromExperiment":
126132
return detachUserFromExperiment(args, result)
127133

@@ -171,7 +177,7 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
171177
return result(FlutterError.noNecessaryData)
172178
}
173179

174-
qonversionSandwich?.getPromotionalOffer(productId, productDiscountId:discountId, completion:getDefaultCompletion(result))
180+
qonversionSandwich?.getPromotionalOffer(productId, productDiscountId:discountId, completion:getJsonCompletion(result))
175181
}
176182

177183
private func products(_ result: @escaping FlutterResult) {
@@ -190,6 +196,18 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
190196
qonversionSandwich?.purchase(productId, quantity:quantity, contextKeys:contextKeys, promoOffer:promoOfferData, completion:getJsonCompletion(result))
191197
}
192198

199+
private func purchaseWithResult(_ args: [String: Any], _ result: @escaping FlutterResult) {
200+
guard let productId = args["productId"] as? String else {
201+
return result(FlutterError.noNecessaryData)
202+
}
203+
204+
let contextKeys = args["contextKeys"] as? [String] ?? []
205+
let quantity = args["quantity"] as? Int ?? 1
206+
let promoOfferData = args["promoOffer"] as? [String: Any] ?? [:]
207+
208+
qonversionSandwich?.purchaseWithResult(productId, quantity:quantity, contextKeys:contextKeys, promoOffer:promoOfferData, completion:getJsonCompletion(result))
209+
}
210+
193211
private func checkEntitlements(_ result: @escaping FlutterResult) {
194212
qonversionSandwich?.checkEntitlements(getJsonCompletion(result))
195213
}
@@ -206,6 +224,11 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
206224
qonversionSandwich?.isFallbackFileAccessible(completion: getJsonCompletion(result))
207225
}
208226

227+
private func collectAppleSearchAdsAttribution(_ result: @escaping FlutterResult) {
228+
qonversionSandwich?.collectAppleSearchAdsAttribution()
229+
result(nil)
230+
}
231+
209232
private func remoteConfigList(_ args: [String: Any], _ result: @escaping FlutterResult) {
210233
guard let contextKeys = args["contextKeys"] as? [String] else {
211234
return result(FlutterError.noNecessaryData)

0 commit comments

Comments
 (0)