[Paywalls V2] Adds progress indicator to buttons#2198
Conversation
📸 Snapshot Test4 modified, 2 added, 256 unchanged
🛸 Powered by Emerge Tools |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2198 +/- ##
=======================================
Coverage 80.54% 80.54%
=======================================
Files 277 277
Lines 9456 9456
Branches 1334 1334
=======================================
Hits 7616 7616
Misses 1280 1280
Partials 560 560 ☔ View full report in Codecov by Sentry. |
tonidero
left a comment
There was a problem hiding this comment.
Nice work on this! left some comments but I think it's looking good!
| } | ||
| } | ||
|
|
||
| Layout( |
There was a problem hiding this comment.
Hmm TBH, I do wonder if it makes more sense to just wrap the StackComponentView inside a Box and put the indicator on top and centered within the parent. I think that would be much simpler, even if it adds another composable, wdyt?
There was a problem hiding this comment.
Yea I tried that first, but I couldn't force the progress indicator to not be larger than the StackComponentView. That's why I added the narrow preview.
If the StackComponentView is less tall than the CircularProgressIndicator, the CircularProgressIndicator should shrink. I tried various combinations of IntrinsicSize and matchParentSize(), but none of that worked. The Box would always allow the CircularProgressIndicator to be as big as it wants. So that's why I resorted to a Layout, to have more control.
There was a problem hiding this comment.
Ahhh right... yeah I think that makes sense. Thanks for explaining! Might be worth leaving a comment just in case.
| val progressIndicator: (@Composable () -> Unit)? by remember { | ||
| derivedStateOf { | ||
| if (isClickable) { | ||
| null |
There was a problem hiding this comment.
Haven't tested this but I'm wondering, if the button changes TO being clickable, this would change to not draw the indicator directly right? Does the animation look ok when the button stops loading?
There was a problem hiding this comment.
Yea you're right, and we don't even need to set it to null since it will be invisible anyways. Much cleaner as well: e61fa93.
| } | ||
| } | ||
|
|
||
| Layout( |
There was a problem hiding this comment.
Ahhh right... yeah I think that makes sense. Thanks for explaining! Might be worth leaving a comment just in case.
**This is an automatic release.** ## RevenueCat SDK ### ✨ New Features * Add `hasPaywall` property to `Offering` (#2212) via Antonio Pallares (@ajpallares) ### 🐞 Bugfixes * Fix empty options in NoActive subscriptions screen (#2168) via Cesar de la Vega (@vegaro) ## RevenueCatUI SDK ### Customer Center #### ✨ New Features * Create `CustomerCenterListener` (#2199) via Cesar de la Vega (@vegaro) #### 🐞 Bugfixes * Reload Customer Center after a successful restore (#2203) via Cesar de la Vega (@vegaro) * Fixes CustomerCenter state not refreshing when reopening (#2202) via Cesar de la Vega (@vegaro) ### 🔄 Other Changes * Improves PaywallsTester multi-API-key support (#2218) via JayShortway (@JayShortway) * [EXTERNAL] Bump Emerge Gradle Plugin and Snaphsots version (#2211) via @runningcode (#2217) via JayShortway (@JayShortway) * [AUTOMATIC][Paywalls V2] Updates Compose previews of all templates (#2207) via RevenueCat Git Bot (@RCGitBot) * [Paywalls V2] Enables template previews again (#2215) via JayShortway (@JayShortway) * Adds support for switching between 2 API keys to PaywallsTester (#2213) via JayShortway (@JayShortway) * Adds a `LocalPreviewImageLoader` `CompositionLocal`. (#2201) via JayShortway (@JayShortway) * Logs from RevenueCatUI are now tagged with `[Purchases]` too. (#2206) via JayShortway (@JayShortway) * [Paywalls V2] Ignores template previews for now. (#2209) via JayShortway (@JayShortway) * [Paywalls V2] Some more template previews optimizations (#2208) via JayShortway (@JayShortway) * chore: Delete key from customer center survey event (#2204) via Facundo Menzella (@facumenzella) * [Paywalls V2] Extract ImageLoader to use a single one (#2146) via Toni Rico (@tonidero) * [Paywalls V2] Adds progress indicator to buttons (#2198) via JayShortway (@JayShortway) * Avoids triggering "unscheduled" workflows when triggering workflows via the CircleCI API (#2200) via JayShortway (@JayShortway) * [Paywalls V2] Adds a note on publishing to the missing paywall error. (#2193) via JayShortway (@JayShortway) * Adds X-Kotlin-Version header. (#2197) via JayShortway (@JayShortway) * [Paywalls V2] Adds docs on ignored arguments for Paywalls V2 in more places. (#2195) via JayShortway (@JayShortway) * chore: Add backend integration test for events (#2189) via Facundo Menzella (@facumenzella) * [Paywalls V2] Adds CI job to update template previews (#2192) via JayShortway (@JayShortway) --------- Co-authored-by: revenuecat-ops <ops@revenuecat.com> Co-authored-by: Cesar de la Vega <cesarvegaro@gmail.com> Co-authored-by: Toni Rico <antonio.rico.diez@revenuecat.com>
This is the Android equivalent of RevenueCat/purchases-ios#4787.
Description
This adds a progress indicator to the
ButtonComponentView. It calculates the indicator color in the same way as we do on iOS. I created a newGradientBrushintermediate type that allows for reading the gradient colors after the brush has been constructed. This is used to determine the progress indicator color when theStackComponentViewhas a gradient background.I didn't want to add the logic to
StackComponentView, as that one is big enough already, and my first attempt at doing so resulted in multiple layout issues. Also, ideally it is unaware of the progress indicator. Perhaps in the future, we can add a slot API toStackComponentView, but we're not there yet.