Refactor: Remove unnecessary lint suppressions#3348
Merged
Conversation
Co-authored-by: Cesar de la Vega <vegaro@users.noreply.github.com>
Co-authored-by: Cesar de la Vega <vegaro@users.noreply.github.com>
📸 Snapshot Test1 modified, 587 unchanged
🛸 Powered by Emerge Tools |
Restore original Throwable catch in FileHelper.removeFirstLinesFromFile and SwallowedException suppression + e.cause in billingClientParamBuilders, as the automated narrowing changed error-handling behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
vegaro
approved these changes
Apr 16, 2026
vegaro
left a comment
Member
There was a problem hiding this comment.
reverted two changes, the other ones are safe
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3348 +/- ##
==========================================
- Coverage 79.39% 79.36% -0.04%
==========================================
Files 354 354
Lines 14252 14259 +7
Branches 1950 1951 +1
==========================================
Hits 11316 11316
- Misses 2133 2140 +7
Partials 803 803 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
matteinn
pushed a commit
to matteinn/purchases-android
that referenced
this pull request
Apr 28, 2026
**This is an automatic release.** ## RevenueCat SDK ### 🐞 Bugfixes * fix: move Google BillingClient connection off the main thread (RevenueCat#3369) via Toni Rico (@tonidero) * [EXTERNAL] fix(google): guard showInAppMessages against BillingClient runtime crashes (RevenueCat#3367) by @matteinn (RevenueCat#3368) via Monika Mateska (@MonikaMateska) ## RevenueCatUI SDK ### Paywallv2 #### 🐞 Bugfixes * Add Workflows network layer (RevenueCat#3300) via Cesar de la Vega (@vegaro) ### 🔄 Other Changes * Fix `revenuecat.useWorkflowsEndpoint` compiler flag (RevenueCat#3374) via Cesar de la Vega (@vegaro) * Create paywall from workflow response. Add `USE_WORKFLOWS_ENDPOINT` BuildConfig (RevenueCat#3350) via Cesar de la Vega (@vegaro) * Refactor: Remove unnecessary lint suppressions (RevenueCat#3373) via cursor[bot] (@cursor[bot]) * Bump fastlane-plugin-revenuecat_internal from `a1eed48` to `b822f01` (RevenueCat#3371) via dependabot[bot] (@dependabot[bot]) * Bump fastlane from 2.232.2 to 2.233.0 (RevenueCat#3370) via dependabot[bot] (@dependabot[bot]) * Attempt to fix `AssertionError` "ms is denormalized" in `QueryPurchasesUseCaseTest` (RevenueCat#3361) via Cesar de la Vega (@vegaro) * Update baseline profiles (RevenueCat#3296) via Jaewoong Eum (@skydoves) * fix: reduce precision for flaky HeaderDirectHeroImage snapshot (RevenueCat#3362) via Cesar de la Vega (@vegaro) * Fix test failures reported twice (RevenueCat#3360) via Cesar de la Vega (@vegaro) * refactor: extract `updateStateFromOffering` in `PaywallViewModel` (RevenueCat#3359) via Cesar de la Vega (@vegaro) * [Fix] Include parent tabs component_name in tab-control switch interaction events (RevenueCat#3358) via Monika Mateska (@MonikaMateska) * Refactor: Remove unnecessary lint suppressions (RevenueCat#3348) via cursor[bot] (@cursor[bot]) * fix: always upload CI test results even when tests fail (RevenueCat#3357) via Cesar de la Vega (@vegaro) * refactor: extract `RevenueCatDialogScaffold` (RevenueCat#3355) via Cesar de la Vega (@vegaro) * Fix Slack notifications for nightly integration tests (RevenueCat#3354) via Toni Rico (@tonidero) * UI events for paywall component interactions (RevenueCat#3287) via Monika Mateska (@MonikaMateska) * Bump fastlane-plugin-revenuecat_internal from `20911d1` to `a1eed48` (RevenueCat#3351) via dependabot[bot] (@dependabot[bot]) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Primarily a version bump and release automation updates (docs deploy/redirect and changelog); no functional library code changes beyond updating embedded version constants. > > **Overview** > Cuts the `10.2.1` release by updating version references across the repo (Gradle `VERSION_NAME`, internal `frameworkVersion`, sample/test app dependency pins, and `.version`). > > Updates the docs release pipeline and website redirect to publish and point at `10.2.1`, and refreshes `CHANGELOG.md`/`CHANGELOG.latest.md` with the 10.2.1 release notes. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit a0a325b. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checklist
purchases-iosand hybridsMotivation
Reduce unnecessary lint/detekt suppressions by refactoring code so rules are satisfied without opt-outs. This keeps static analysis meaningful and lowers maintenance risk.
Description
This PR removes 5 suppressions (capped for reviewability) by making small behavior-preserving refactors in
:purchases:FileHelper.kt@Suppress("TooGenericExceptionCaught")fromcatchinremoveFirstLinesFromFile.IOExceptionandSecurityExceptionhandling, preserving logging and rethrow behavior.billingClientParamBuilders.kt@Suppress("SwallowedException")onExceptionInInitializerErrorcatch.e) as cause inQueryProductDetailsParamsBuilderExceptioninstead of onlye.cause, improving diagnosability.BillingClientUseCase.kt@Suppress("ThrowingExceptionsWithoutMessageOrCause")fromgetStackTrace.RuntimeExceptionwith an explicit message before printing stack trace, keeping stack snapshot intent intact.4-5.
GalaxyBillingWrapperFactory.kt@Suppress("ThrowsCount")fromcreateGalaxyBillingWrapper.@Suppress("UNCHECKED_CAST")on reflective instance cast.check(wrapperInstance is BillingAbstract)and extracted exception handlers into helper methods to keep throw count in the factory function compliant and maintain existing failure semantics.Baseline review
config/detekt/detekt-baseline.xml,purchases/detekt-baseline.xml, andexamples/purchase-tester/detekt-baseline.xml.Validation
./gradlew detektAll -x testsdk.dir/ANDROID_HOME), so full Android lint could not be run here.Labels
pr:otherNote
Low Risk
Small refactors in billing-related helpers (reflection wrapper creation and stack-trace logging) with intended behavior preserved; risk is limited to altered exception types/messages in rare failure paths.
Overview
Cleans up billing-related code to satisfy static analysis without suppressions.
GalaxyBillingWrapperFactory.createGalaxyBillingWrappernow avoids an unchecked cast by instantiating via reflection, validating the result with a runtimecheck, and extracting the three failure cases into dedicated helper methods while preserving the same thrown error semantics.BillingClientUseCase.getStackTracenow captures a stack trace using aRuntimeExceptionwith an explicit message (instead of a message-lessThrowable) for clearer disconnect logs.Reviewed by Cursor Bugbot for commit d63f693. Bugbot is set up for automated code reviews on this repo. Configure here.