Skip to content

v2.1.0 - Analytics & i18n Support

Choose a tag to compare

@vietnguyentuan2019 vietnguyentuan2019 released this 03 Jun 18:42

✨ What's New in v2.1.0

⚠️ Breaking Changes (Compose UI layer only)

  • GrantDialog / GrantGroupDialog / GrantAndServiceDialog — string params replaced by GrantDialogStrings
    The individual String parameters on each dialog composable have been replaced by a single strings: GrantDialogStrings parameter.

  • IosPermissionHandler renamed to PermissionHandler (iOS custom handler authors only)
    The interface used to implement custom RawPermission handlers on iOS has been renamed from IosPermissionHandler to PermissionHandler.

✨ New: GrantEventListener — Permission Funnel Analytics

Attach an optional listener to any handler to observe the full permission flow lifecycle (onRequested, onGranted, onDenied, onRationaleShown, onSettingsGuideShown, onSettingsOpened).

✨ New: GrantDialogStrings — i18n via CompositionLocal

Replace per-callsite string overrides with a single app-level provider using GrantDialogStringsProvider.

🐛 Bug Fixes

  • Issue #41 — Double-denial dead-end (Android): Escalates to settings guide when the OS returns DENIED after a rationale has already been shown.
  • Issue #33LOCATION_ALWAYS PARTIAL stuck: Fixed false positive onGranted when background location was denied but foreground was granted.
  • iOS — requestWithCustomUi missing events: Custom-UI flow now correctly emits all GrantEventListener events.
  • iOS — Group Handler Rationale: Fixed inconsistent rationale display for group requests on iOS.
  • iOS — Avoid double location dialogs: Removed spurious requestWhenInUseAuthorization() before requestAlwaysAuthorization() to prevent UI flicker.

♻️ Internal Refactoring

  • Unified state machine: Merged handleStatus() and handleStatusWithCustomUi() into a single logic path.
  • Test Integrity: Refactored unit tests to remove deceptive/meaningless checks and added robust assertions.

✅ Test Suite

  • Reached 610 Android / 578 iOS tests, 0 failures across all 6 modules.
  • New regression tests for Issue #41 and #33.