Skip to content

v0.1.0

Latest

Choose a tag to compare

@ahsanalidotme ahsanalidotme released this 27 Oct 08:46
02d6d17

LinkTrail Android SDK 0.1.0

Install it with:

implementation("io.linktrail:sdk:0.1.0")

⚠️ Breaking change

  • handleDeepLink now claims only LinkTrail links: *.linktrail.io plus the hosts you list in linkDomains. If you use a custom link domain, add it to linkDomains, or those links won't be handled.
    • URLs that aren't LinkTrail links (your own myapp://, OAuth callbacks, mailto:) now return false, and the SDK makes no network call for them.

Consent and privacy

  • Later consent: granting consent after a denial now routes the deferred link.
  • Denied installs: they send no device id and no idempotency key.
  • An explicit denial always wins: setConsent(false) takes effect even with requireConsent = false.
  • Events in flight: an event already being sent when consent is denied is never sent.
  • SDK state stays on the device: it's excluded from backup and restore, so a restored or new phone counts as a new install.

Reliability

  • Deferred link delivered at least once: it's saved until onLink receives it, even if onLink is registered late. It expires after 7 days.
  • Event queue:
    • only retryable failures are queued;
    • only one flush runs at a time;
    • a corrupt entry no longer wipes the queue;
    • cancellation is handled correctly.
  • configure: it's a safe singleton, and invalid options are clamped with a warning instead of throwing.
  • Device id: it's created once, even when several first calls race.

Diagnostics

  • SDK header: every request sends X-LinkTrail-SDK: android/0.1.0.
  • Logs: log lines are unified with iOS (see LOGS.md).
  • Debug-only overrides: LINKTRAIL_BASE (backend URL) and debug.linktrail.referrer (install referrer) work in debuggable apps only.

Full Changelog: v0.0.5...v0.1.0