Skip to content

Commit be730b2

Browse files
nan-lijinliu9508
authored andcommitted
Merge pull request #1860 from OneSignal/fix/amazon_purchase_tracking_startup
Fix Amazon purchase tracking setup
2 parents f856489 + d4037ab commit be730b2

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/core/internal/purchases/impl/TrackAmazonPurchase.kt

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,18 +69,25 @@ internal class TrackAmazonPurchase(
6969
try {
7070
// 2.0.1
7171
val listenerHandlerClass = Class.forName("com.amazon.device.iap.internal.d")
72-
listenerHandlerObject = try {
72+
try {
7373
// iap v2.x
74-
listenerHandlerClass.getMethod("d").invoke(null)
74+
listenerHandlerObject = listenerHandlerClass.getMethod("d").invoke(null)
7575
} catch (e: NullPointerException) {
76-
// appstore v3.x
77-
listenerHandlerClass.getMethod("e").invoke(null)
78-
registerListenerOnMainThread = true
76+
// iap v3.x
77+
try {
78+
// appstore v3.0.1 - v3.0.3
79+
listenerHandlerObject = listenerHandlerClass.getMethod("e").invoke(null)
80+
registerListenerOnMainThread = true
81+
} catch (err: NullPointerException) {
82+
// appstore v3.0.4
83+
listenerHandlerObject = listenerHandlerClass.getMethod("g").invoke(null)
84+
registerListenerOnMainThread = true
85+
}
7986
}
8087
val locListenerHandlerField = listenerHandlerClass.getDeclaredField("f")
8188
locListenerHandlerField.isAccessible = true
8289
osPurchasingListener = OSPurchasingListener(_operationRepo, _configModelStore, _identityModelStore)
83-
osPurchasingListener!!.orgPurchasingListener = locListenerHandlerField.get(listenerHandlerObject) as PurchasingListener
90+
osPurchasingListener!!.orgPurchasingListener = locListenerHandlerField.get(listenerHandlerObject) as PurchasingListener?
8491

8592
listenerHandlerField = locListenerHandlerField
8693
canTrack = true

0 commit comments

Comments
 (0)