Files
VibeCoding/.agents/skills/play-billing-library-version-upgrade/references/version-checklist.md

3.3 KiB

Play Billing Library: Smart Version-Specific Checklist

Use this checklist to verify that every technical requirement between your [Current Version] and [Target Version] has been met.

PBL v1.x through v3.x

  • [ ] [v1.0] Builder Pattern : Verify BillingClient.newBuilder(context) is used.
  • [ ] [v2.0] Mandatory Acknowledgment : Verify acknowledgePurchase() or consumeAsync() is called within 3 days.
  • [ ] [v2.0] Response Types : Logic must handle BillingResult objects instead of raw integers.
  • [ ] [v3.0] Legacy Removal : Verify ChildDirected and UnderAgeOfConsent parameters are deleted.

PBL v4.x Series

  • [ ] Async Purchasing : Confirm queryPurchases() is replaced with queryPurchasesAsync().
  • [ ] Multi-SKU Accessors : Replace getSku() with getSkus() (returns a list) in Purchase objects.
  • [ ] Subscription Refactor : Verify setSubscriptionUpdateParams() is used for change logic.

PBL v5.x Series

  • [ ] Data Model Swap : Replace all instances of SkuDetails with ProductDetails.
  • [ ] Personalized Pricing : Implement setIsOfferPersonalized() for EU price disclosures.

PBL v6.x Series

  • [ ] Replacement Mode : Replace ProrationMode with the ReplacementMode enum.
  • [ ] User Choice Billing : Replace AlternativeBillingListener with UserChoiceBillingListener.

PBL v7.x Series

  • [ ] SDK Compliance : compileSdk is set to 34 or higher.
  • [ ] Pending Purchases : Replace parameterless enablePendingPurchases() with enablePendingPurchases(PendingPurchaseParams).
  • [ ] API Cleanup : Replace setOldSkuPurchaseToken() with setOldPurchaseToken().

PBL v8.x Series

  • [ ] SDK Compliance : compileSdk is set to 34 or higher.
  • [ ] Terminology Shift: Rename "in-app items" to "one-time products" in UI/strings.
  • [ ] Signature Enforcement : onProductDetailsResponse signature MUST be (BillingResult, QueryProductDetailsResult).
  • [ ] SUBS Offer Token : For SUBS type, ProductDetailsParams MUST include an offerToken.
  • [ ] Auto-Reconnection : Verify enableAutoServiceReconnection() is used in the builder.
  • [ ] Min SDK Increase : Verify minSdkVersion is at least 23.

PBL v9.x Series

  • [ ] SDK Compliance : compileSdk is set to 35 or higher.
  • [ ] API Removals : Ensure all usages of SkuDetails, SkuDetailsParams, and SkuDetailsResponseListener are removed and replaced with their ProductDetails equivalents.
  • [ ] Blocked Store Error Handling : If targeting restricted device modes (e.g., kids modes), ensure androidx.core is at v1.9+ and update error logic to catch BILLING_UNAVAILABLE instead of ERROR.
  • [ ] External Payment Program Null-Safety : If using developer-provided billing, update DeveloperProvidedBillingDetails.getLinkUri() logic to explicitly check for both null and empty string ("") values before parsing.

Future Versions (PBL 10.0.0+)

  • [ ] Dynamic Checklist Generation : For any version >=10.0.0, you MUST synthesize a new checklist for each new version header found in the Release Notes.
  • [ ] Identify Version Delta : Review "Breaking Changes" and "Removed APIs" for the new version and create a list of terms to grep.