Skip to content

Commit 3366a1b

Browse files
authored
Release 2.5.2 (#67)
* Release 2.5.2
1 parent 9c26284 commit 3366a1b

File tree

18 files changed

+538
-97
lines changed

18 files changed

+538
-97
lines changed

CHANGELOG.md

Lines changed: 146 additions & 79 deletions
Large diffs are not rendered by default.

android/.idea/compiler.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/.idea/gradle.xml

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/.idea/misc.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/.idea/vcs.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ android {
5353

5454
dependencies {
5555
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
56-
implementation "com.apphud:ApphudSDK-Android:2.6.5"
56+
implementation "com.apphud:ApphudSDK-Android:2.7.0"
5757
implementation 'com.android.billingclient:billing:6.1.0'
5858
implementation 'com.google.code.gson:gson:2.8.8'
5959
}

android/src/main/kotlin/com/apphud/fluttersdk/ApphudPlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ class ApphudPlugin : FlutterPlugin, MethodCallHandler, ActivityAware {
128128

129129
private fun setHeaders() {
130130
HeadersInterceptor.X_SDK = "Flutter"
131-
HeadersInterceptor.X_SDK_VERSION = "2.5.1"
131+
HeadersInterceptor.X_SDK_VERSION = "2.5.2"
132132
}
133133

134134
override fun onDetachedFromActivityForConfigChanges() {

android/src/main/kotlin/com/apphud/fluttersdk/handlers/MakePurchaseHandler.kt

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,17 @@ class MakePurchaseHandler(
7373
MakePurchaseRoutes.refreshUserData.name -> refreshUserData(result)
7474

7575
MakePurchaseRoutes.loadFallbackPaywalls.name -> loadFallbackPaywalls(result)
76+
77+
MakePurchaseRoutes.trackPurchase.name -> TrackPurchaseParser(result).parse(args)
78+
{ productId, offerIdToken, paywallIdentifier, placementIdentifier ->
79+
trackPurchase(
80+
productId,
81+
offerIdToken,
82+
paywallIdentifier,
83+
placementIdentifier,
84+
result
85+
)
86+
}
7687
}
7788
}
7889

@@ -227,6 +238,17 @@ class MakePurchaseHandler(
227238
handleOnMainThread { result.success(null) }
228239
}
229240

241+
private fun trackPurchase(
242+
productId: String,
243+
offerIdToken: String?,
244+
paywallIdentifier: String? = null,
245+
placementIdentifier: String? = null,
246+
result: MethodChannel.Result
247+
) {
248+
Apphud.trackPurchase(productId, offerIdToken, paywallIdentifier, placementIdentifier)
249+
handleOnMainThread { result.success(null) }
250+
}
251+
230252
class ProductParser(private val result: MethodChannel.Result) {
231253
fun parse(args: Map<String, Any>?, callback: (productIdentifier: String) -> Unit) {
232254
try {
@@ -289,6 +311,31 @@ class MakePurchaseHandler(
289311
}
290312
}
291313
}
314+
315+
class TrackPurchaseParser(private val result: MethodChannel.Result) {
316+
fun parse(
317+
args: Map<String, Any>?, callback: (
318+
productId: String,
319+
offerIdToken: String?,
320+
paywallIdentifier: String?,
321+
placementIdentifier: String?
322+
) -> Unit
323+
) {
324+
try {
325+
args ?: throw IllegalArgumentException("productId is required argument")
326+
val productId = args["productId"] as? String
327+
?: throw IllegalArgumentException("productId is required argument")
328+
329+
val offerIdToken = args["offerIdToken"] as? String
330+
val paywallIdentifier = args["paywallIdentifier"] as? String
331+
val placementIdentifier = args["placementIdentifier"] as? String
332+
333+
callback(productId, offerIdToken, paywallIdentifier, placementIdentifier)
334+
} catch (e: IllegalArgumentException) {
335+
result.error("400", e.message, "")
336+
}
337+
}
338+
}
292339
}
293340

294341
enum class MakePurchaseRoutes {
@@ -305,7 +352,8 @@ enum class MakePurchaseRoutes {
305352
paywallsDidLoadCallback,
306353
rawPaywalls,
307354
refreshUserData,
308-
loadFallbackPaywalls;
355+
loadFallbackPaywalls,
356+
trackPurchase;
309357

310358
companion object Mapper {
311359
fun stringValues(): List<String> {

example/lib/src/purchase_bloc/purchase_bloc.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class PurchaseBloc extends Bloc<PurchaseEvent, PurchaseState>
4747
purchaseProduct: (e) => _handlePurchaseProductEvent(e, emit),
4848
restorePurchases: (e) => _handleRestorePurchasesEvent(e, emit),
4949
syncPurchase: (e) => _handleSyncPurchaseEvent(e, emit),
50+
trackPurchase: (e) => _handleTrackPurchaseEvent(e, emit),
5051
);
5152
}
5253

@@ -278,6 +279,16 @@ class PurchaseBloc extends Bloc<PurchaseEvent, PurchaseState>
278279
);
279280
}
280281

282+
Future<void> _handleTrackPurchaseEvent(
283+
PurchaseTrackPurchaseEvent event,
284+
Emitter<PurchaseState> emit,
285+
) async {
286+
Apphud.trackPurchase(productId: event.product.productId).then(
287+
(value) => printAsJson('trackPurchase()', 'success'),
288+
onError: (e) => printError('trackPurchase()', e),
289+
);
290+
}
291+
281292
Future<void> _handleCallAllEvent(
282293
PurchaseCallAllEvent event,
283294
Emitter<PurchaseState> emit,

example/lib/src/purchase_bloc/purchase_event.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ class PurchaseEvent with _$PurchaseEvent {
2828
const factory PurchaseEvent.grantPromotional(ApphudProduct product) =
2929
PurchaseGrantPromotionalEvent;
3030

31+
const factory PurchaseEvent.trackPurchase(ApphudProduct product) =
32+
PurchaseTrackPurchaseEvent;
33+
3134
const factory PurchaseEvent.paywallShown(ApphudPaywall paywall) =
3235
PurchasePaywallShownEvent;
3336

0 commit comments

Comments
 (0)