feat(ads): update admob sample app#3264
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3264 +/- ##
=======================================
Coverage 79.38% 79.38%
=======================================
Files 357 357
Lines 14347 14347
Branches 1959 1959
=======================================
Hits 11389 11389
Misses 2154 2154
Partials 804 804 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
polmiro
left a comment
There was a problem hiding this comment.
Tried it out locally with Android Studio 👌🏻
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| ) | ||
| }, | ||
| modifier = Modifier.weight(1f), | ||
| enabled = !status.contains("Loading"), |
There was a problem hiding this comment.
Substring match on error text can disable Load permanently
Low Severity
The Load button uses !status.contains("Loading") to determine its enabled state, but status is set to "Failed: ${error.message}" on ad load failure. If the AdMob LoadAdError.message happens to contain the substring "Loading", the Load button becomes permanently disabled until the user navigates away. A check like status == "Loading..." or a separate isLoading boolean would be more robust.
Additional Locations (2)
**This is an automatic release.** ## RevenueCat SDK ### 🐞 Bugfixes * [EXTERNAL] fix: ensure activity is attached before showing in-app messages (#3274) contributed by @matteinn (#3275) via Toni Rico (@tonidero) * Ensure MediaPlayer has dedicated thread owner that is not the main thread (#3148) via Jacob Rakidzich (@JZDesign) * Fix heartbeat monitor and Slack notifications for nightly integration tests (#3259) via Rick (@rickvdl) ## RevenueCatUI SDK ### Paywallv2 #### ✨ New Features * Feat: Restore gating in paywalls UI (#3171) via Jacob Rakidzich (@JZDesign) ### 🔄 Other Changes * security: pin GitHub Actions to SHA hashes (#3272) via Alfonso Embid-Desmet (@alfondotnet) * Bump activesupport from 8.0.2 to 8.0.4.1 (#3270) via dependabot[bot] (@dependabot[bot]) * Merge release PR after deploy (#3269) via Antonio Pallares (@ajpallares) * Require PR approval before release tagging (#3268) via Antonio Pallares (@ajpallares) * Bump json from 2.18.1 to 2.19.2 (#3261) via dependabot[bot] (@dependabot[bot]) * feat(ads): update admob sample app (#3264) via Peter Porfy (@peterporfy) * feat(ads): add vanilla-ad-tracker-sample (#3263) via Peter Porfy (@peterporfy) * [Purchase Tester]: Persist appUserId on login screen across app launches (#3266) via Will Taylor (@fire-at-will) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Mostly release automation and versioning changes, but it modifies CI/orb references and deploy/merge automation, which could affect the release pipeline if misconfigured. > > **Overview** > Cuts the `9.28.0` release by removing `-SNAPSHOT` across version sources (`.version`, `gradle.properties`, `Config.frameworkVersion`) and updating sample/test-app dependency pins to `9.28.0`. > > Updates release documentation: publishes Dokka docs to the `9.28.0` S3 path, updates `docs/index.html` redirect to `9.28.0`, and rolls `CHANGELOG.latest.md` into a new `9.28.0` section in `CHANGELOG.md`. > > Tweaks release tooling/CI: pins `fastlane-plugin-revenuecat_internal` to a specific git ref (and bumps a few Ruby deps), switches the CircleCI `revenuecat/sdks-common-config` orb to a dev commit, and adds a temporary `test_merge_queue` workflow to exercise `revenuecat/merge-release-pr` with `use_merge_queue: true`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5050888. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->


Updates
admob-sampleto match the iOS AdMob integration sample layout. Load/Show buttons are now side-by-side (matching iOSHStack), status text uses a lighter secondary style, native ad screens now show a status line, and the error testing screen uses inline auto-dismissing feedback instead of a Toast.Also fixes the README: removes stale version requirements, corrects inaccurate copy about how tracking works, and adds a Banner section showing both wrapper API variants (
adView.loadAndTrackAdvsadTracker.loadAndTrackBannerAd).Note
Low Risk
Low risk: changes are limited to the
admob-sampledocs and Compose UI behavior (button layout/status messaging) without altering core SDK or adapter logic.Overview
Updates the
admob-sampleCompose screens to match the iOS sample UX: Load/Show buttons are now side-by-side, status text uses a lighter secondary style, and load/show enablement is driven by in-memory ad state (no more “no ad loaded” toasts).Improves native and error-test flows by adding explicit status lines and wiring
AdListener.onAdFailedToLoadinto the UI, while removing most transient toast-based feedback.Refreshes the sample README by removing stale version requirements, correcting tracking guidance to emphasize adapter-provided extension APIs, and documenting the two equivalent Banner API entry points (extension vs
adTracker.loadAndTrack*()).Written by Cursor Bugbot for commit afc8256. This will update automatically on new commits. Configure here.