diff --git a/packages/in_app_purchase/in_app_purchase_platform_interface/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_platform_interface/CHANGELOG.md index cd4b86d7f39a..e01f5277b6f1 100644 --- a/packages/in_app_purchase/in_app_purchase_platform_interface/CHANGELOG.md +++ b/packages/in_app_purchase/in_app_purchase_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.3.0 + +* Added new `PurchaseStatus` named `canceled` to distinguish between an error and user cancellation. + ## 1.2.0 * Added `toString()` to `IAPError` @@ -12,4 +16,4 @@ ## 1.0.0 -* Initial open-source release. \ No newline at end of file +* Initial open-source release. diff --git a/packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/types/purchase_status.dart b/packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/types/purchase_status.dart index 78695066702d..ed54e97442a2 100644 --- a/packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/types/purchase_status.dart +++ b/packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/types/purchase_status.dart @@ -26,4 +26,9 @@ enum PurchaseStatus { /// the purchase by calling the `completePurchase` method. More information on /// verifying purchases can be found [here](https://pub.dev/packages/in_app_purchase#restoring-previous-purchases). restored, + + /// The purchase has been canceled. + /// + /// Update your UI to indicate the purchase is canceled. + canceled, } diff --git a/packages/in_app_purchase/in_app_purchase_platform_interface/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_platform_interface/pubspec.yaml index 64574e0cf306..fc306acbd41e 100644 --- a/packages/in_app_purchase/in_app_purchase_platform_interface/pubspec.yaml +++ b/packages/in_app_purchase/in_app_purchase_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/plugins/tree/master/packages/in_app_purch issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 1.2.0 +version: 1.3.0 environment: sdk: ">=2.12.0 <3.0.0" diff --git a/packages/in_app_purchase/in_app_purchase_platform_interface/test/src/types/product_details_test.dart b/packages/in_app_purchase/in_app_purchase_platform_interface/test/src/types/product_details_test.dart index ce49d9992131..737f0d00b392 100644 --- a/packages/in_app_purchase/in_app_purchase_platform_interface/test/src/types/product_details_test.dart +++ b/packages/in_app_purchase/in_app_purchase_platform_interface/test/src/types/product_details_test.dart @@ -4,6 +4,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:in_app_purchase_platform_interface/in_app_purchase_platform_interface.dart'; +import 'package:in_app_purchase_platform_interface/src/types/purchase_status.dart'; void main() { group('Constructor Tests', () { @@ -27,4 +28,22 @@ void main() { expect(productDetails.currencySymbol, r'$'); }); }); + + group('PurchaseStatus Tests', () { + test('PurchaseStatus should contain 5 options', () { + const List values = PurchaseStatus.values; + + expect(values.length, 5); + }); + + test('PurchaseStatus enum should have items in correct index', () { + const List values = PurchaseStatus.values; + + expect(values[0], PurchaseStatus.pending); + expect(values[1], PurchaseStatus.purchased); + expect(values[2], PurchaseStatus.error); + expect(values[3], PurchaseStatus.restored); + expect(values[4], PurchaseStatus.canceled); + }); + }); }