Repository navigation
Google 1.3.31
·
856 commits
to main
since this release
OpenIAP Google 1.3.31
Patch release with two Android-side bug fixes plus an internal cleanup that sources integer constants directly from the Google Play Billing Library so the mapping can no longer drift.
What's Changed
- Purchase flow double-resume crash fixed —
IllegalStateException: Already resumedcould hit whenrequestPurchasewas invoked twice in rapid succession (e.g. double-tap on the purchase button) because the shared billing callback slot was being overwritten.currentPurchaseCallbackis now anAtomicReferencemanaged viacompareAndSet(null, callback)on store andcompareAndSet(callback, null)on cancellation, so a racing second call fails fast withOpenIapError.DeveloperErrorinstead of stranding the first continuation. Applied symmetrically to Play and Horizon flavors. (#94 · #95) - Subscription
DEFERREDreplacement mode integer corrected —DEFERREDwas mapped to4, which is not a validSubscriptionUpdateParams.ReplacementModeconstant; the value is now6to match the legacy Billing API consumed bysetSubscriptionReplacementMode(int). (#92 · #96) - Replacement-mode mapping now uses native Billing constants —
SubscriptionReplacementModeAndroidExt.ktmoved into theplay/source set and now referencesBillingFlowParams.ProductDetailsParams.SubscriptionProductReplacementParams.ReplacementModedirectly instead of hand-typed0..6literals. Tests assert against the native constants so the mapping tracks the Billing Library if Google ever renumbers them. (#96)
Installation
Google Play Store (Play flavor)
Gradle (Kotlin DSL):
dependencies {
implementation("io.github.hyochan.openiap:openiap-google:1.3.31")
}Gradle (Groovy):
dependencies {
implementation 'io.github.hyochan.openiap:openiap-google:1.3.31'
}Meta Quest / Horizon Store (Horizon flavor)
Gradle (Kotlin DSL):
dependencies {
implementation("io.github.hyochan.openiap:openiap-google-horizon:1.3.31")
}Gradle (Groovy):
dependencies {
implementation 'io.github.hyochan.openiap:openiap-google-horizon:1.3.31'
}