- add support for purchase history records. New methods and properties:
BillingHelper.purchaseHistoryRecordsQueried
,BillingHelper.initQueryPurchaseHistoryRecords
andBillingHelper.getPurchaseHistoryRecords
BillingEvent.QUERY_PURCHASES_HISTORY_RECORDS_COMPLETE
andBillingEvent.QUERY_PURCHASES_HISTORY_RECORDS_FAILED
queryPurchaseHistoryRecordsOnConnected
inBillingHelper
constructor
- fix
ProductDetails.getFormattedPriceDivided
to cover cases where price is formatted using comma and dot. - rename
querySkuDetailsOnConnected
toqueryProductDetailsOnConnected
. - rename
getPurchaseWithProductName
togetPurchasesWithProductName
as multiple purchases can exist for a single product name. (f.ex. when updating a subscription). Otherwise.last()
is the one you're after. - bump Kotlin to 2.0.21, Gradle plugin to 8.7.3
- Added optional
subscriptionPurchaseParams
tolaunchPurchaseFlow
method to unify subscription purchase definitions. Added optional parametersbasePlanId: String?
andofferId: String?
, which replaced old index parameters. Similarly withProductDetails.getFormattedPrice
, which now take optionalsubscriptionBasePlanId
andsubscriptionOfferId
. - Removed
PriceUtil
object, use extension methodsProductDetails.getFormattedPrice
andProductDetails.getFormattedPriceDivided
.
- Support subscription updates or replacements: Added optional parameters
subscriptionUpdateOldToken
,subscriptionUpdateExternalTransactionId
andsubscriptionUpdateReplacementMode
tolaunchPurchaseFlow()
- bump Gradle plugin to 8.7.2, core-ktx to 1.15.0
- bump Google Billing to 7.1.1
- bump kotlin to 2.0.20, Gradle plugin to 8.7.1
- add
´billingBuilderConfig
toBillingHelper
constructor holding all parameters related to alternative billing and pending purchases support - move
enableAlternativeBillingOnly
andenableExternalOffer
toBillingBuilderConfig
- bump Google Billing to 7.0.0
- bump Gradle plugin to 8.3.2, core-ktx to 1.13.1
minSdkVersion
has been raised from 19 to 21
BillingHelper.billingClient
is now public.- Add
enableAlternativeBillingOnly
andenableExternalOffer
properties to constructor. - bump Google Billing to 6.2.0
- bump Gradle plugin to 8.3.1, Kotlin to 1.9.23
- rename param from "skuNames" to "productNames" for
BillingHelper.isPurchasedAnyOf
- fix issue where purchase will still be present even if not included in the result from additional call to
BillingHelper.initQueryOwnedPurchases
- fix documentation and readme description
- bump Google Billing to 6.1.0 (note: support for alternative billing still not directly included in this release)
- bump kotlin to 1.9.10, core-ktx to 1.12.0, Gradle plugin to 8.1.4
- update Google billing client to 6.0.1
- bump kotlin to 1.8.21, Gradle plugin to 8.1.1, core-ktx to 1.10.1
- bump buildToolsVersion 34.0.0, targetSdkVersion, compileSdkVersion to 34
- update Google billing client to 5.1.0
- bump Kotlin to 1.7.20
- update Google billing client to 5.0.0 and adjust to all changes required to support it
- renamed all references from "sku" to "product" to reflect Google's billing client naming conventions.
- add
PriceUtil
object to simplify price formatting. - bump Kotlin to 1.7.10, Gradle plugin to 7.2.2, core-ktx to 1.9.0
- bump buildToolsVersion to 33.0.0, compileSdkVersion and targetSdkVersion to 33
- update Google billing client to 4.1.0
- bump Kotlin to 1.6.21, Serialization to 1.3.2, Gradle plugin to 7.1.3
- bump buildToolsVersion to 32.0.0, compileSdkVersion and targetSdkVersion to 32
- add
isConnectionFailure
andpurchasesQueriedOrConnectionFailure
. - fix
purchasesQueried
andskuDetailsQueried
now change after lists get updated instead of before - bump kotlin to 1.6.10, gradle to 7.1.0, build tools and target sdk to 31, core-ktx to 1.7.0
- add purchase verification based on app's license key
- add option to enable logging
- bump Gradle plugin to 7.0.0
- update publish scripts
querySkuDetailsOnConnected
,queryOwnedPurchasesOnConnected
andautoAcknowledgePurchases
are now var- fix issue where
PurchasesUpdatedListener
would replace with new purchases instead of add or update - price change confirmation flow now uses
skuName
instead ofskuDetails
- use
skuInAppPurchases
andskuSubscriptions
instead of unified `skuNames - fix issue with concurrent queries
autoAcknowledgePurchases
is now part of init config. It's true by default, so no changes in behaviour from previous versionsacknowledgePurchases()
is now public- fix potential crash caused by potential fake data injection
- bump Kotlin to 1.5.20, Gradle plugin to 4.2.2
- rename
BillingEvent.PURCHASE_ACKNOWLEDGED
toBillingEvent.PURCHASE_ACKNOWLEDGE_SUCCESS
- add
BillingEvent.PRICE_CHANGE_CONFIRMATION_FAILED
- add
BillingEvent
helper methods - add
connectionState
getter - add
isFeatureSupported()
- fix issue where
SkuDetails.isSubscription()
would return for in app purchase - remove jCenter() and add mavenCentral
- bump Google Billing to 4.0.0
- bump Kotlin to 1.5.10, Gradle plugin to 4.2.1
- make
ALL_PURCHASE_TYPES
private - bump Google Billing API to 3.0.3
- bump Kotlin to 1.4.31, Gradle plugin tp 4.1.3, build tools to 30.0.3
- bump Google Billing API to 3.0.2
- bump Kotlin to 1.4.20 and Gradle plugin to 4.1.1
- disable minify for release build types so javadoc can be created
- rename
endBillingClientConnection()
toendClientConnection()
to stay persistent with initClientConnection() - add
BillingEvent.isOwnedPurchasesChange
- add
purchasesQueried
andskuDetailsQueried
to determine if queries have been completed yet - add
isPurchasedAnyOf()
- add Javadoc support
- rename
isBillingReady()
, which is nowbillingReady
- add response code parameter to the billing listener
- add more public extensions to
Purchase
andSkuDetails
- add
startConnectionImmediately
to constructor - rename
queryForSkuDetailsOnInit
toquerySkuDetailsOnConnected
andqueryForOwnedPurchasesOnInit
toqueryOwnedPurchasesOnConnected
- add option to call
initClientConnection()
manually, so it's now added as public method - better documentation
- bump google billing to 3.0.1
- bump kotlin to 1.3.2, gradle plugin to 4.1.0
- fix bug where cancelled flow gets reported incorrectly
- fix invoke listeners in try/catch block
- add support for
obfuscatedAccountId
,obfuscatedProfileId
and `setVrPurchaseFlow - bump Kotlin to 1.4.10