-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[in_app_purchase] Update Play Billing library to 7.1.1 #8218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[in_app_purchase] Update Play Billing library to 7.1.1 #8218
Conversation
@reidbaker Ping on this review |
@gmackall I am not going to get to this. Deferring to you for review. |
The billingClient version upgrade process must proceed as quickly as possible. Currently, in_app_purchase 3.2.0 is using billingClient 6.2.0, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly LGTM, added a couple comments. Sorry for the delay on review
...ase_android/android/src/main/java/io/flutter/plugins/inapppurchase/BillingClientFactory.java
Outdated
Show resolved
Hide resolved
...oid/android/src/test/java/io/flutter/plugins/inapppurchase/BillingClientFactoryImplTest.java
Outdated
Show resolved
Hide resolved
...n_app_purchase/in_app_purchase_android/lib/src/billing_client_wrappers/purchase_wrapper.dart
Show resolved
Hide resolved
...app_purchase_android/lib/src/billing_client_wrappers/subscription_offer_details_wrapper.dart
Show resolved
Hide resolved
2ed01f3
to
4e5e3ca
Compare
CI is complaining about versioning, but I believe we should first publish the new version of in_app_purchase_android and only once that lands on pub update the dependency in the base package? Or can this be handled inside a single PR? |
See https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changing-federated-plugins for the process of landing a multi-package PR with interdependencies. |
* **BREAKING CHANGES**: | ||
* Removes the deprecated `ProrationMode` enum. `ReplacementMode` should be used instead. | ||
* Removes the deprecated `BillingClientWrapper.enablePendingPurchases` method. | ||
* Bumps `minSdk` to 21. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would be a breaking change for in_app_purchase
when rolling the dependency there; we strongly prefer not dropping OS support before the SDK itself.
In this case, Flutter 3.24+ only supports Android SDK 21+, so the way to make this change would be to update the plugin's min SDK version to 3.24, which makes this no longer a breaking change.
1273d51
to
f7a56be
Compare
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hold on merging for @stuartmorgan's approval. Specifically if all of the json removal work he wants removed has been done.
@@ -1,6 +1,7 @@ | |||
## NEXT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is worthy of a version bump.
.setDebugMessage(billingResult.getDebugMessage()) | ||
.build(); | ||
} | ||
|
||
static @NonNull PlatformBillingResponse fromBillingResponseCode(int billingResponseCode) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thanks for all of this cleanup!
It looks like bulid.yaml
can be removed, as well as the json_annotation
and json_serializable
dependencies in pubspec.yaml
, but that's all I see that's left.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hold on merging for @stuartmorgan's approval.
This PR can't actually be landed as-is; it's saying that it bumps the in_app_purchase_android
version in in_app_purchase
, but doesn't (and can't in this PR).
I'm going to put a request-changes flag on the PR just to make sure nobody accidentally lands it as is. This is ready to be split into two PRs though (with the minor changes in my previous comment) for landing.
I removed the JSON dependencies and moved the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
flutter/packages@f73cb00...e8f1f63 2025-01-20 mchudy@users.noreply.github.com [in_app_purchase] Update Play Billing library to 7.1.1 (flutter/packages#8218) 2025-01-20 engine-flutter-autoroll@skia.org Roll Flutter from 5517cc9 to b9e86a5 (22 revisions) (flutter/packages#8458) 2025-01-18 stuartmorgan@google.com [pigeon] Update analyzer and formatter (flutter/packages#8456) 2025-01-17 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump the gradle-plugin group across 3 directories with 1 update (flutter/packages#8328) 2025-01-17 magder@google.com [local_auth_darwin] Handle when FaceID hardware is available but permissions have been denied for the app (flutter/packages#8348) 2025-01-16 engine-flutter-autoroll@skia.org Roll Flutter from 40c2b86 to 5517cc9 (28 revisions) (flutter/packages#8441) 2025-01-15 louisehsu@google.com [in_app_purchase_storekit] expose `jsonRepresentation` for Transactions (flutter/packages#8430) 2025-01-15 engine-flutter-autoroll@skia.org Roll Flutter (stable) from 17025dd to 68415ad (4 revisions) (flutter/packages#8434) 2025-01-15 30872003+misos1@users.noreply.github.com [video_player_avfoundation] fix playback speed resetting (flutter/packages#7657) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Updates Play Billing Library to the latest version 7.1.1. Exposes new APIs as per [release notes](https://developer.android.com/google/play/billing/release-notes): - Adds Dart representation of `ProductDetails.InstallmentPlanDetails` - Adds Dart representation of `PendingPurchasesParams` and removes the deprecated `enablePendingPurchases` method on `BillingClientWrapper` (breaking change) - Adds Dart representation of `Purchase.PendingPurchaseUpdate` - Removes the deprecated `ProrationMode` as it has been removed from the native library (breaking change) This PR introduces breaking changes in `in_app_purchase_android`, but does not introduce any breaking changes on the platform interface level. Fixes flutter/flutter#147394
…rchase (flutter#8463) Extracted from flutter#8218.
Updates Play Billing Library to the latest version 7.1.1. Exposes new APIs as per [release notes](https://developer.android.com/google/play/billing/release-notes): - Adds Dart representation of `ProductDetails.InstallmentPlanDetails` - Adds Dart representation of `PendingPurchasesParams` and removes the deprecated `enablePendingPurchases` method on `BillingClientWrapper` (breaking change) - Adds Dart representation of `Purchase.PendingPurchaseUpdate` - Removes the deprecated `ProrationMode` as it has been removed from the native library (breaking change) This PR introduces breaking changes in `in_app_purchase_android`, but does not introduce any breaking changes on the platform interface level. Fixes flutter/flutter#147394
…rchase (flutter#8463) Extracted from flutter#8218.
Updates Play Billing Library to the latest version 7.1.1. Exposes new APIs as per release notes:
ProductDetails.InstallmentPlanDetails
PendingPurchasesParams
and removes the deprecatedenablePendingPurchases
method onBillingClientWrapper
(breaking change)Purchase.PendingPurchaseUpdate
ProrationMode
as it has been removed from the native library (breaking change)This PR introduces breaking changes in
in_app_purchase_android
, but does not introduce any breaking changes on the platform interface level.Fixes flutter/flutter#147394
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style, or this PR is exempt from CHANGELOG changes.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.