Skip to content

6.0.0-rc.2

Choose a tag to compare

@chouaibMo chouaibMo released this 23 Jun 21:24
· 5 commits to master since this release

Warning

v6 is currently in a release-candidate phase — use 6.0.0-rc.2, not 6.0.0. 6.0.0-rc.2 is the official build to integrate against for early integration and testing while v6 stabilizes. Use it to validate your migration and report any issues; the stable 6.0.0 will be announced once the RC cycle completes.

implementation("io.purchasely:core:6.0.0-rc.2")
implementation("io.purchasely:google-play:6.0.0-rc.2")
// implementation("io.purchasely:player:6.0.0-rc.2") // optional

Purchasely Android SDK 6.0.0-rc.2

The second release candidate of the v6 major version. It builds on 6.0.0-rc.1 with bug fixes and one API rename. The full set of v6 breaking changes is documented in the migration guide; the sections below cover only what changed since rc.1.

⚠️ Breaking Changes (since rc.1)

  • setDefaultPresentationResultHandler → setDefaultPresentationDismissHandler (rename, same signature). Matches iOS and reflects that it delivers a full PLYPresentationOutcome (with presentation populated), not a bare result. The handler now also correctly fires for deeplink presentations (previously it never did). The analytics presence marker is renamed accordingly (DEFAULT_PRESENTATION_RESULT_HANDLER → DEFAULT_PRESENTATION_DISMISSED_HANDLER).

✨ Highlights & Fixes

  • Observer-mode purchase outcomes — when a paywall purchase/restore is handled by your action interceptor (returns SUCCESS) and reported via synchronize(), display(...) now resolves to a PURCHASED outcome with the plan (or RESTORED), instead of CANCELLED with a null plan. Mirrors Full-mode behavior.
  • User switch refresh & dismissal — fixed the subscription refresh and dismissal flow on user switch; stale subscription-refresh jobs are now cancelled so a fast identity change no longer races an in-flight refresh.
  • Logout → login attribute leak — logout cleanup (built-in attributes and, when requested, user attributes) now runs outside the cancellable refresh job, so a fast logout() → login() sequence no longer lets the new user inherit the previous user's attributes. Built-in cleanup runs off the caller thread to avoid StrictMode/jank.
  • Transition dimensions honor 0 — a drawer/popin height or popin width configured to 0px / 0% is now rendered as-is instead of silently falling back to the surface default (drawer 60%, popin 50%, width match_parent). An absent dimension still uses the default.

🛠 Build Requirements

  • Unchanged from rc.1: Minimum Gradle 9.3.0, Kotlin 2.2.x (K2), Java target 11.