diff --git a/CHANGELOG.md b/CHANGELOG.md
index 79621887..eabd7a6a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 5.3.0
+* Added function to sync the user's historical data.
+
## 5.2.0
* Added a function to enable Qonversion SDK Kids mode via the builder on Android. With this mode activated, our SDK does not collect any information that violates Google Children’s Privacy Policy.
* Fixed possible rare ANR (Application Not Responding) errors during Facebook Attribution collection on Android.
diff --git a/android/build.gradle b/android/build.gradle
index eaf557bb..44361e75 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -43,6 +43,6 @@ android {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- implementation "io.qonversion.sandwich:sandwich:1.3.1"
+ implementation "io.qonversion.sandwich:sandwich:1.4.0"
implementation 'com.google.code.gson:gson:2.9.0'
}
diff --git a/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionPlugin.kt b/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionPlugin.kt
index 7e084fe2..b5935bb0 100644
--- a/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionPlugin.kt
+++ b/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionPlugin.kt
@@ -87,6 +87,10 @@ class QonversionPlugin : MethodCallHandler, FlutterPlugin, ActivityAware {
override fun onMethodCall(call: MethodCall, result: Result) {
// Methods without args
when (call.method) {
+ "syncHistoricalData" -> {
+ qonversionSandwich.syncHistoricalData()
+ return result.success(null)
+ }
"products" -> {
return products(result)
}
diff --git a/fastlane/report.xml b/fastlane/report.xml
index 0592561b..dcaa8920 100644
--- a/fastlane/report.xml
+++ b/fastlane/report.xml
@@ -4,20 +4,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ios/Classes/SwiftQonversionPlugin.swift b/ios/Classes/SwiftQonversionPlugin.swift
index 8d3372d0..00a37aaa 100644
--- a/ios/Classes/SwiftQonversionPlugin.swift
+++ b/ios/Classes/SwiftQonversionPlugin.swift
@@ -44,6 +44,10 @@ public class SwiftQonversionPlugin: NSObject, FlutterPlugin {
// MARK: - Calls without arguments
switch (call.method) {
+ case "syncHistoricalData":
+ qonversionSandwich?.syncHistoricalData()
+ return result(nil)
+
case "products":
return products(result)
diff --git a/ios/qonversion_flutter.podspec b/ios/qonversion_flutter.podspec
index c8529a11..73f502eb 100644
--- a/ios/qonversion_flutter.podspec
+++ b/ios/qonversion_flutter.podspec
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
s.source_files = 'Classes/**/*'
s.dependency 'Flutter'
s.platform = :ios, '9.0'
- s.dependency "QonversionSandwich", "1.3.1"
+ s.dependency "QonversionSandwich", "1.4.0"
# Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported.
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' => 'x86_64' }
diff --git a/lib/src/internal/constants.dart b/lib/src/internal/constants.dart
index 88b6688b..7d4052cc 100644
--- a/lib/src/internal/constants.dart
+++ b/lib/src/internal/constants.dart
@@ -28,6 +28,7 @@ class Constants {
// MethodChannel methods names
static const mInitialize = 'initialize';
+ static const mSyncHistoricalData = 'syncHistoricalData';
static const mProducts = 'products';
static const mPurchase = 'purchase';
static const mPurchaseProduct = 'purchaseProduct';
diff --git a/lib/src/internal/qonversion_internal.dart b/lib/src/internal/qonversion_internal.dart
index b2382837..0fdae8fe 100644
--- a/lib/src/internal/qonversion_internal.dart
+++ b/lib/src/internal/qonversion_internal.dart
@@ -11,7 +11,7 @@ import 'package:qonversion_flutter/src/internal/utils/string.dart';
import 'constants.dart';
class QonversionInternal implements Qonversion {
- static const String _sdkVersion = "5.2.0";
+ static const String _sdkVersion = "5.3.0";
final MethodChannel _channel = MethodChannel('qonversion_plugin');
@@ -52,6 +52,9 @@ class QonversionInternal implements Qonversion {
Stream get promoPurchasesStream =>
_promoPurchasesEventChannel.receiveBroadcastStream().cast();
+ @override
+ Future syncHistoricalData() => _channel.invokeMethod(Constants.mSyncHistoricalData);
+
@override
Future