Skip to content

Commit 14ad2d8

Browse files
Merge pull request #72 from qonversion/release/3.0.1
Release/3.0.1
2 parents 2c1f274 + 49eb230 commit 14ad2d8

File tree

7 files changed

+37
-19
lines changed

7 files changed

+37
-19
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 3.0.1
2+
* Fix QOfferings mapping error
3+
* Internal logic optimization for Android
4+
15
## 3.0.0
26
* Add null safety support
37
* Increase min Dart SDK version to 2.12.0

android/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
group 'com.qonversion.flutter.sdk.qonversion_flutter_sdk'
2-
version '3.0.0'
2+
version '3.0.1'
33

44
buildscript {
55
ext.kotlin_version = '1.3.50'
6-
ext.qonversion_version = '2.7.2'
6+
ext.qonversion_version = '2.7.6'
77
repositories {
88
google()
99
jcenter()
@@ -42,6 +42,6 @@ android {
4242

4343
dependencies {
4444
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45-
implementation "com.qonversion.android.sdk:sdk:$qonversion_version"
45+
implementation "io.qonversion.android.sdk:sdk:$qonversion_version"
4646
implementation 'com.google.code.gson:gson:2.8.6'
4747
}

ios/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
Pod::Spec.new do |s|
66
s.name = 'qonversion_flutter'
7-
s.version = '3.0.0'
7+
s.version = '3.0.1'
88
s.summary = 'Flutter Qonversion SDK'
99
s.description = <<-DESC
1010
Powerful yet simple subscription analytics

lib/src/models/utils/mapper.dart

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import 'dart:convert';
2+
3+
import '../eligibility.dart';
4+
import '../offerings.dart';
15
import '../permission.dart';
26
import '../product.dart';
37
import '../sk_product/discount.dart';
@@ -28,6 +32,23 @@ class QMapper {
2832
});
2933
}
3034

35+
static QOfferings offeringsFromJson(String? jsonString) {
36+
if (jsonString == null) return QOfferings(null, <QOffering>[]);
37+
38+
final offeringJson = Map<String, dynamic>.from(jsonDecode(jsonString));
39+
40+
return QOfferings.fromJson(offeringJson);
41+
}
42+
43+
static Map<String, QEligibility> eligibilityFromJson(String? jsonString) {
44+
if (jsonString == null) return <String, QEligibility>{};
45+
46+
final eligibilityJson = Map<String, dynamic>.from(jsonDecode(jsonString));
47+
48+
return eligibilityJson
49+
.map((key, value) => MapEntry(key, QEligibility.fromJson(value)));
50+
}
51+
3152
static SKProductWrapper? skProductFromJson(dynamic json) {
3253
if (json == null) return null;
3354

lib/src/qonversion.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import 'models/purchase_exception.dart';
1616
import 'qa_provider.dart';
1717

1818
class Qonversion {
19-
static const String _sdkVersion = "3.0.0";
19+
static const String _sdkVersion = "3.0.1";
2020

2121
static const MethodChannel _channel = MethodChannel('qonversion_flutter_sdk');
2222
static const _purchasesEventChannel =
@@ -207,27 +207,20 @@ class Qonversion {
207207
/// See [Offerings](https://qonversion.io/docs/offerings) for more details.
208208
/// See [Product Center](https://qonversion.io/docs/product-center) for more details.
209209
static Future<QOfferings> offerings() async {
210-
final offeringsString =
211-
await (_channel.invokeMethod<String>(Constants.mOfferings) as FutureOr<String>);
210+
final offeringsString = await _channel.invokeMethod<String>(Constants.mOfferings);
212211

213-
final Map<String, dynamic> decodedOfferings = jsonDecode(offeringsString);
214-
215-
return QOfferings.fromJson(decodedOfferings);
212+
return QMapper.offeringsFromJson(offeringsString);
216213
}
217214

218215
/// You can check if a user is eligible for an introductory offer, including a free trial.
219216
/// You can show only a regular price for users who are not eligible for an introductory offer.
220217
/// [ids] products identifiers that must be checked
221218
static Future<Map<String, QEligibility>> checkTrialIntroEligibility(
222219
List<String> ids) async {
223-
final eligibilitiesString = await (_channel.invokeMethod<String>(
224-
Constants.mCheckTrialIntroEligibility, {"ids": ids}) as FutureOr<String>);
225-
226-
final Map<String, dynamic> decodedEligibilities =
227-
jsonDecode(eligibilitiesString);
220+
final eligibilitiesString = await _channel.invokeMethod<String>(
221+
Constants.mCheckTrialIntroEligibility, {"ids": ids});
228222

229-
return decodedEligibilities
230-
.map((key, value) => MapEntry(key, QEligibility.fromJson(value)));
223+
return QMapper.eligibilityFromJson(eligibilitiesString);
231224
}
232225

233226
// Private methods

macos/qonversion_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
Pod::Spec.new do |s|
66
s.name = 'qonversion_flutter'
7-
s.version = '2.0.0'
7+
s.version = '2.0.1'
88
s.summary = 'Flutter Qonversion SDK'
99
s.description = <<-DESC
1010
Powerful yet simple subscription analytics

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: qonversion_flutter
22
description: In-App Subscription Infrastructure to grow your subscription business
3-
version: 3.0.0
3+
version: 3.0.1
44
homepage: 'https://qonversion.io'
55
repository: 'https://github.com/qonversion/flutter-sdk'
66

0 commit comments

Comments
 (0)