diff --git a/android/build.gradle b/android/build.gradle index e180ee91..d351b15c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -3,7 +3,7 @@ version '4.2.0' buildscript { ext.kotlin_version = '1.3.50' - ext.qonversion_version = '3.2.2' + ext.qonversion_version = '3.2.4' repositories { google() jcenter() diff --git a/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionFlutterSdkPlugin.kt b/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionFlutterSdkPlugin.kt index 50d54ecc..22b3b956 100644 --- a/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionFlutterSdkPlugin.kt +++ b/android/src/main/kotlin/com/qonversion/flutter/sdk/qonversion_flutter_sdk/QonversionFlutterSdkPlugin.kt @@ -109,7 +109,6 @@ class QonversionFlutterSdkPlugin : MethodCallHandler, FlutterPlugin, ActivityAwa "purchaseProduct" -> purchaseProduct(args["product"] as? String, result) "updatePurchase" -> updatePurchase(args, result) "updatePurchaseWithProduct" -> updatePurchaseWithProduct(args, result) - "setUserId" -> setUserId(args["userId"] as? String, result) "setProperty" -> setProperty(args, result) "setUserProperty" -> setUserProperty(args, result) "addAttributionData" -> addAttributionData(args, result) @@ -280,16 +279,6 @@ class QonversionFlutterSdkPlugin : MethodCallHandler, FlutterPlugin, ActivityAwa }) } - private fun setUserId(userId: String?, result: Result) { - if (userId == null) { - result.noUserIdError() - return - } - - Qonversion.setUserID(userId) - result.success(null) - } - private fun setProperty(args: Map, result: Result) { val rawProperty = args["property"] as? String ?: return result.noProperty() @@ -365,7 +354,7 @@ class QonversionFlutterSdkPlugin : MethodCallHandler, FlutterPlugin, ActivityAwa if (data.isEmpty()) { return result.noDataError() } - + val stringsMap: Map = data.mapValues { it.value.toString() } val isQonversionNotification = Qonversion.handleNotification(stringsMap) result.success(isQonversionNotification) diff --git a/example/lib/home.dart b/example/lib/home.dart index d54dfa76..6c7eb7a1 100644 --- a/example/lib/home.dart +++ b/example/lib/home.dart @@ -95,11 +95,11 @@ class _HomeViewState extends State { Padding( padding: const EdgeInsets.all(8.0), child: FlatButton( - child: Text('Set custom userId'), - color: Colors.blue, - textColor: Colors.white, - onPressed: () => Qonversion.setUserId('userId'), - ), + child: Text('Set custom userId'), + color: Colors.blue, + textColor: Colors.white, + onPressed: () => Qonversion.setProperty( + QUserProperty.customUserId, 'userId')), ), Padding( padding: const EdgeInsets.only( diff --git a/example/lib/params_view.dart b/example/lib/params_view.dart index 27b98cc2..78f1a90b 100644 --- a/example/lib/params_view.dart +++ b/example/lib/params_view.dart @@ -22,7 +22,7 @@ class ParamsView extends StatelessWidget { color: Colors.green, textColor: Colors.white, onPressed: () { - Qonversion.setUserId('customId'); + Qonversion.setProperty(QUserProperty.customUserId, 'customId'); print('did set user id'); }, ), diff --git a/ios/Classes/Mapper.swift b/ios/Classes/Mapper.swift index fe699e0c..886d1586 100644 --- a/ios/Classes/Mapper.swift +++ b/ios/Classes/Mapper.swift @@ -118,6 +118,9 @@ extension Qonversion.Property { case "KochavaDeviceId": return .kochavaDeviceID + case "CustomUserId": + return .userID + default: throw ParsingError.runtimeError("Could not parse Qonversion.Property") } diff --git a/ios/Classes/SwiftQonversionFlutterSdkPlugin.swift b/ios/Classes/SwiftQonversionFlutterSdkPlugin.swift index cdede873..b19d889e 100644 --- a/ios/Classes/SwiftQonversionFlutterSdkPlugin.swift +++ b/ios/Classes/SwiftQonversionFlutterSdkPlugin.swift @@ -90,9 +90,6 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin { case "promoPurchase": return promoPurchase(args["productId"] as? String, result) - case "setUserId": - return setUserId(args["userId"] as? String, result) - case "addAttributionData": return addAttributionData(args, result) @@ -264,16 +261,6 @@ public class SwiftQonversionFlutterSdkPlugin: NSObject, FlutterPlugin { } } - private func setUserId(_ userId: String?, _ result: @escaping FlutterResult) { - guard let userId = userId else { - result(FlutterError.noUserId) - return - } - - Qonversion.setUserID(userId) - result(nil) - } - private func setProperty(_ args: [String: Any], _ result: @escaping FlutterResult) { guard let rawProperty = args["property"] as? String else { return result(FlutterError.noProperty) diff --git a/ios/qonversion_flutter.podspec b/ios/qonversion_flutter.podspec index fe3d667b..3059f1b6 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 'Qonversion', '2.18.0' + s.dependency 'Qonversion', '2.18.1' # 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/constants.dart b/lib/src/constants.dart index e01c31c8..89938520 100644 --- a/lib/src/constants.dart +++ b/lib/src/constants.dart @@ -30,7 +30,6 @@ class Constants { static const mUpdatePurchaseWithProduct = 'updatePurchaseWithProduct'; static const mCheckPermissions = 'checkPermissions'; static const mRestore = 'restore'; - static const mSetUserId = 'setUserId'; static const mSetProperty = 'setProperty'; static const mSetUserProperty = 'setUserProperty'; static const mSyncPurchases = 'syncPurchases'; diff --git a/lib/src/models/user_property.dart b/lib/src/models/user_property.dart index ee794dfa..4802f10e 100644 --- a/lib/src/models/user_property.dart +++ b/lib/src/models/user_property.dart @@ -4,4 +4,5 @@ enum QUserProperty { appsFlyerUserId, adjustAdId, kochavaDeviceId, + customUserId, } diff --git a/lib/src/qonversion.dart b/lib/src/qonversion.dart index 6b85afec..64071dd6 100644 --- a/lib/src/qonversion.dart +++ b/lib/src/qonversion.dart @@ -209,8 +209,10 @@ class Qonversion { /// Qonversion SDK provides an asynchronous method to set your side User ID that can be used to match users in third-party integrations. /// /// See more in [documentation](https://documentation.qonversion.io/docs/user-identifiers) + @Deprecated( + "Will be removed in a future major release. Use setProperty(QUserProperty.customUserId, 'value') instead.") static Future setUserId(String userId) => - _channel.invokeMethod(Constants.mSetUserId, {Constants.kUserId: userId}); + setProperty(QUserProperty.customUserId, userId); /// Sets user property for pre-defined case property. /// diff --git a/macos/qonversion_flutter.podspec b/macos/qonversion_flutter.podspec index 925113c6..7ee80c28 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 'Qonversion', '2.18.0' + s.dependency 'Qonversion', '2.18.1' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.swift_version = '5.0' s.static_framework = true