Skip to content

Remove result from presentPaywall methods#916

Merged
tonidero merged 2 commits into
paywallsfrom
remove-result-present-paywall-methods
Jan 2, 2024
Merged

Remove result from presentPaywall methods#916
tonidero merged 2 commits into
paywallsfrom
remove-result-present-paywall-methods

Conversation

@tonidero

@tonidero tonidero commented Jan 2, 2024

Copy link
Copy Markdown
Contributor

Currently the presentPaywall and presentPaywallIfNeeded methods return a boolean indicating whether a purchase happened in the paywall. This API is confusing and not extensible and it wasn't properly working in iOS, see: #886. This first PR removes the return value from the method. In a future PR we will add proper result handling for the paywalls. Until then, the clients won't know what happened when the paywall was presented and will need to rely on the Purchases.getCustomerInfo() method to respond appropriately.

This is a breaking change from the previous beta.

paywallResult -> result.success(paywallResult instanceof PaywallResult.Purchased)
requiredEntitlementIdentifier
);
result.success(null);

@tonidero tonidero Jan 2, 2024

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In iOS, we were already just returning null (which was causing #886), so no changes needed there.

@tonidero tonidero marked this pull request as ready for review January 2, 2024 15:07
@tonidero tonidero requested a review from a team January 2, 2024 15:07
@tonidero tonidero merged commit 2d36abb into paywalls Jan 2, 2024
@tonidero tonidero deleted the remove-result-present-paywall-methods branch January 2, 2024 18:06
@tonidero tonidero mentioned this pull request Jan 5, 2024
tonidero added a commit that referenced this pull request Jan 5, 2024
### New features
* 📱 Initial support for cross-platform RevenueCat Paywalls 🐾 🧱 (#852)

#### Instructions:
- For Android, you need to change your `MainActivity` to subclass
`FlutterFragmentActivity` instead of `FlutterActivity`. Also, the min
sdk version of the new package is `24`. Please make sure your app's
`android/build.gradle` minSdkVersion has that or a higher version.
- Add `purchases-ui-flutter` in your `pubspec.yaml`:
```yaml
dependencies:
  purchases_ui_flutter: 6.15.0-beta.4
```

#### Usage:
```dart
import 'package:purchases_ui_flutter/purchases_ui_flutter.dart';

await RevenueCatUI.presentPaywallIfNeeded("pro");
```

#### Limitations:
- Currently only full screen paywalls are supported
- There is no way to detect paywall events other than using
`addCustomerInfoUpdateListener`

#### Breaking changes from previous beta:
- Paywalls functionality has been extracted into a new dependency called
purchases_ui_flutter. Add purchases_ui_flutter to your pubspec.yaml.
Before this release, it was part of the main RevenueCat SDK
`purchases_flutter`.
- A new import is required to use this functionality: `import
'package:purchases_ui_flutter/purchases_ui_flutter.dart';`
- Usage has changed the class from `Purchases.presentPaywall` to
`RevenueCatUI.presentPaywall`.
- `presentPaywall` and `presentPaywallIfNeeded` now don't return a
result. To detect purchases, please use `Purchases.getCustomerInfo` from
the `purchases_flutter` SDK. A return value will be added in future
releases.

### Other Changes
* Fix pub score for `purchases-ui-flutter` (#924) via Toni Rico
(@tonidero)
* Update `paywalls` to latest `main` (#923) via Toni Rico (@tonidero)
* Rename `purchases_flutter_ui` to `purchases_ui_flutter` (#921) via
Toni Rico (@tonidero)
* Separate paywalls into a different package (#919) via Toni Rico
(@tonidero)
* Remove result from presentPaywall methods (#916) via Toni Rico
(@tonidero)
* Update to use PHC PaywallHelpers instead of custom activity (#903) via
Toni Rico (@tonidero)

@NachoSoto NachoSoto left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome

} else {
print("Purchase failed");
}
await Purchases.presentPaywall();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants