Override presented offering context paywalls without offering#2612
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2612 +/- ##
==========================================
+ Coverage 78.38% 78.41% +0.03%
==========================================
Files 301 301
Lines 11229 11241 +12
Branches 1561 1561
==========================================
+ Hits 8802 8815 +13
+ Misses 1741 1740 -1
Partials 686 686 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
JayShortway
left a comment
There was a problem hiding this comment.
Looks good! A suggestion and a question.
| ctor public TestStoreProduct(String id, String name, String title, String description, com.revenuecat.purchases.models.Price price, com.revenuecat.purchases.models.Period? period, optional com.revenuecat.purchases.models.PricingPhase? freeTrialPricingPhase, optional com.revenuecat.purchases.models.PricingPhase? introPricePricingPhase); | ||
| ctor public TestStoreProduct(String id, String name, String title, String description, com.revenuecat.purchases.models.Price price, optional com.revenuecat.purchases.models.Period? period, optional com.revenuecat.purchases.models.PricingPhase? freeTrialPricingPhase); | ||
| ctor public TestStoreProduct(String id, String name, String title, String description, com.revenuecat.purchases.models.Price price, optional com.revenuecat.purchases.models.Period? period, optional com.revenuecat.purchases.models.PricingPhase? freeTrialPricingPhase, optional com.revenuecat.purchases.models.PricingPhase? introPricePricingPhase); |
There was a problem hiding this comment.
The deleted line lacks the optional keyword for the com.revenuecat.purchases.models.Period? period parameter. The added lines all have the optional keyword for period. Any idea why? 🤔
There was a problem hiding this comment.
I removed one of the constructors for the TestStoreProduct that made it non-optional: https://github.com/RevenueCat/purchases-android/pull/2612/files#diff-18a1e4e397d6d9a1ac93514cf38e78a9b038cb703d536ed5162cc44c0f2d848aL23-L39. I do think that shouldn't really matter, but I guess the path it follows now in this case would go to the top-level constructor instead of that constructor. Metalava probably generated symbols for that constructor, but I think the API itself should remain compatible?
There was a problem hiding this comment.
Thanks! Yea I think so too 🤔
…ub.com:RevenueCat/purchases-android into override-presented-offering-context-paywalls-without-offering
| val offering = options.offeringSelection.offeringIdentifier?.let { offerings[it] } | ||
| ?: offerings.current |
There was a problem hiding this comment.
Using offeringSelection would allow it to smart cast, avoiding the need to handle a nullable offeringIdentifier.
| val offering = options.offeringSelection.offeringIdentifier?.let { offerings[it] } | |
| ?: offerings.current | |
| val offering = offerings[offeringSelection.offeringIdentifier] ?: offerings.current |
There was a problem hiding this comment.
I think that doesn't work becuase offeringSelection.offeringIdentifier is nullable (Because it can be OfferingSelection.None).
There was a problem hiding this comment.
Sorry I meant offeringId. This should work no?
val offering = offerings[offeringSelection.offeringId] ?: offerings.currentThere was a problem hiding this comment.
Oh yes yes, that works! Will do the change. Thanks!
| ctor public TestStoreProduct(String id, String name, String title, String description, com.revenuecat.purchases.models.Price price, com.revenuecat.purchases.models.Period? period, optional com.revenuecat.purchases.models.PricingPhase? freeTrialPricingPhase, optional com.revenuecat.purchases.models.PricingPhase? introPricePricingPhase); | ||
| ctor public TestStoreProduct(String id, String name, String title, String description, com.revenuecat.purchases.models.Price price, optional com.revenuecat.purchases.models.Period? period, optional com.revenuecat.purchases.models.PricingPhase? freeTrialPricingPhase); | ||
| ctor public TestStoreProduct(String id, String name, String title, String description, com.revenuecat.purchases.models.Price price, optional com.revenuecat.purchases.models.Period? period, optional com.revenuecat.purchases.models.PricingPhase? freeTrialPricingPhase, optional com.revenuecat.purchases.models.PricingPhase? introPricePricingPhase); |
There was a problem hiding this comment.
Thanks! Yea I think so too 🤔
…verride-presented-offering-context-paywalls-without-offering
**This is an automatic release.** ## RevenueCat SDK ### 🐞 Bugfixes * Use `Block store` to backup anonymous user ids across installations (#2595) via Toni Rico (@tonidero) ## RevenueCatUI SDK ### Paywallv2 #### 🐞 Bugfixes * Fixes price formatting discrepancies on Paywalls for `{{ product.price_per_[day|week|month|year] }}` (#2604) via JayShortway (@JayShortway) ### 🔄 Other Changes * Revert dokka 2 and gradle 9 update (#2618) via Toni Rico (@tonidero) * Introduce runtime annotations library and add stability annotations for increasing UI performances (#2608) via Jaewoong Eum (@skydoves) * Override presented offering context paywalls without offering (#2612) via Toni Rico (@tonidero) * Add APIs for hybrid SDKs to set presentedOfferingContext (#2610) via Toni Rico (@tonidero) * Bump Baseline Profiles to 1.4.0 and update profiles (#2611) via Jaewoong Eum (@skydoves) * Migrate deprecated kotlinOptions to compilerOptions (#2607) via Jaewoong Eum (@skydoves) * [AUTOMATIC][Paywalls V2] Updates paywall-preview-resources submodule (#2613) via RevenueCat Git Bot (@RCGitBot) * Migrate amazon & debugview modules to KTS (#2327) via Jaewoong Eum (@skydoves) * Update to Dokka 2.0.0 (#2609) via Toni Rico (@tonidero) * Add log when restoring purchases finds no purchases with some troubleshooting (#2599) via Toni Rico (@tonidero) Co-authored-by: revenuecat-ops <ops@revenuecat.com>
Based on #2610 This actually makes use of the presented offering context to pass a modified offering to the paywall. This data will be sent as part of the post receipt when a purchase is made.
Description
Based on #2610
This actually makes use of the presented offering context to pass a modified offering to the paywall. This data will be sent as part of the post receipt when a purchase is made.