-
Notifications
You must be signed in to change notification settings - Fork 54
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
Uses Sequence
instead of Stream
to avoid errors due to unavailable Java 8 APIs
#1943
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1943 +/- ##
=======================================
Coverage 81.87% 81.87%
=======================================
Files 260 260
Lines 8492 8493 +1
Branches 1226 1226
=======================================
+ Hits 6953 6954 +1
Misses 1041 1041
Partials 498 498 ☔ View full report in Codecov by Sentry. |
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 is great! Maybe just removing the required version annotations... Tested it and seems to work as expected 💪
// be used synchronously, otherwise the bufferedReader will be closed before the stream is used. | ||
// This is using a lambda with a Sequence instead of returning the Sequence itself. This is so we keep | ||
// the responsibility of closing the bufferedReader to this class. Note that the Sequence should | ||
// be used synchronously, otherwise the bufferedReader will be closed before the Sequence is used. | ||
@RequiresApi(Build.VERSION_CODES.N) |
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 believe this is probably not needed anymore, as you mentioned over slack.
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.
Alright, will create a follow-up PR to clean these up if we decide they're not needed.
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.
For reference: #1944
**This is an automatic release.** ## RevenueCat SDK ### 🐞 Bugfixes * Uses `Sequence` instead of `Stream` to avoid errors due to unavailable Java 8 APIs (#1943) via JayShortway (@JayShortway) ### 🔄 Other Changes * Increase integration test timeout (#1946) via Toni Rico (@tonidero) * Removes `@RequiresApi(N)` from `FileHelper` and related classes (#1944) via JayShortway (@JayShortway) * [Paywalls V2] Minimizes Java API (#1942) via JayShortway (@JayShortway) * [Paywalls V2] Makes `TextComponent` public (#1939) via JayShortway (@JayShortway) * Introduces an `@InternalRevenueCatAPI` annotation (#1938) via JayShortway (@JayShortway) * [Paywalls V2] Moves any non-component file to a new `common` package. (#1937) via JayShortway (@JayShortway) * [Paywalls V2] `LocalizationKey` is an inline value class now. (#1936) via JayShortway (@JayShortway) * [Paywalls V2] Adds `PaywallComponentsData` (#1935) via JayShortway (@JayShortway) * [Paywalls V2] Adds `StickyFooterComponent` (#1934) via JayShortway (@JayShortway) * [Paywalls V2] Adds `PurchaseButtonComponent` (#1933) via JayShortway (@JayShortway) * [Paywalls V2] Adds `PackageComponent` (#1932) via JayShortway (@JayShortway) * Ensure the correct error message is shown when failing to open a Uri in paywalls (#1922) via JayShortway (@JayShortway) * [Paywalls V2] Adds `ButtonComponent` (#1931) via JayShortway (@JayShortway) * [Paywalls V2] Adds `StackComponent` (#1930) via JayShortway (@JayShortway) * [Paywalls V2] Adds `ComponentOverrides` (#1929) via JayShortway (@JayShortway) * [Paywalls V2] Adds `ImageComponent` (#1928) via JayShortway (@JayShortway) * [Paywalls V2] Adds `TextComponent` (#1927) via JayShortway (@JayShortway) * [Paywalls V2] Adds all enum properties (#1926) via JayShortway (@JayShortway) * [Paywalls V2] Adds `SizeConstraints`, `Size`, `Padding` and `Shadow` properties (#1925) via JayShortway (@JayShortway) * [Paywalls V2] Adds `CornerRadiuses`, `Shape` and `MaskShape` properties (#1924) via JayShortway (@JayShortway) * [Paywalls V2] Adds `ImageUrls` and `ColorInfo` properties (#1923) via JayShortway (@JayShortway) Co-authored-by: revenuecat-ops <[email protected]>
Motivation
Stream
is a Java 8 API, which needs desugaring to function correctly across devices and API levels. This can lead to crashes such as RevenueCat/purchases-flutter#1213, which is only surfacing now because we fixed error-swallowing in #1894.Changes
Fortunately, Kotlin's
Sequence
is a near drop-in replacement forStream
. This PR implements that replacement.