Skip to content

Google 1.3.31

Choose a tag to compare

@github-actions github-actions released this 14 Apr 12:01
· 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 resumed could hit when requestPurchase was invoked twice in rapid succession (e.g. double-tap on the purchase button) because the shared billing callback slot was being overwritten. currentPurchaseCallback is now an AtomicReference managed via compareAndSet(null, callback) on store and compareAndSet(callback, null) on cancellation, so a racing second call fails fast with OpenIapError.DeveloperError instead of stranding the first continuation. Applied symmetrically to Play and Horizon flavors. (#94 · #95)
  • Subscription DEFERRED replacement mode integer corrected — DEFERRED was mapped to 4, which is not a valid SubscriptionUpdateParams.ReplacementMode constant; the value is now 6 to match the legacy Billing API consumed by setSubscriptionReplacementMode(int). (#92 · #96)
  • Replacement-mode mapping now uses native Billing constants — SubscriptionReplacementModeAndroidExt.kt moved into the play/ source set and now references BillingFlowParams.ProductDetailsParams.SubscriptionProductReplacementParams.ReplacementMode directly instead of hand-typed 0..6 literals. 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'
}

Documentation

Maven Central