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> purchase(String productId) async { try { diff --git a/lib/src/qonversion.dart b/lib/src/qonversion.dart index 1022a901..95ec04a0 100644 --- a/lib/src/qonversion.dart +++ b/lib/src/qonversion.dart @@ -43,6 +43,9 @@ abstract class Qonversion { /// Returns App Store product ID Stream get promoPurchasesStream; + /// Call this function to sync the subscriber data with the first launch when Qonversion is implemented. + Future syncHistoricalData(); + /// Starts a process of purchasing product with [productId]. /// /// Throws [QPurchaseException] in case of error in purchase flow. diff --git a/macos/Classes/SwiftQonversionPlugin.swift b/macos/Classes/SwiftQonversionPlugin.swift index 07b3bf22..36903f1e 100644 --- a/macos/Classes/SwiftQonversionPlugin.swift +++ b/macos/Classes/SwiftQonversionPlugin.swift @@ -35,6 +35,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/macos/qonversion_flutter.podspec b/macos/qonversion_flutter.podspec index 9741df81..d2d369b8 100644 --- a/macos/qonversion_flutter.podspec +++ b/macos/qonversion_flutter.podspec @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.dependency 'FlutterMacOS' s.platform = :osx, '10.12' - s.dependency "QonversionSandwich", "1.3.1" + s.dependency "QonversionSandwich", "1.4.0" s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.swift_version = '5.0' diff --git a/pubspec.yaml b/pubspec.yaml index 601da0fc..a412a29d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: qonversion_flutter description: Flutter plugin to implement in-app subscriptions and purchases. Validate user receipts and manage cross-platform access to paid content on your app. Android & iOS. -version: 5.2.0 +version: 5.3.0 homepage: 'https://qonversion.io' repository: 'https://github.com/qonversion/flutter-sdk'