happy_review 0.2.1
happy_review: ^0.2.1 copied to clipboard
A strategic in-app review library for Flutter that triggers review prompts at happy moments, not arbitrary launch counts.
0.2.1 #
- Fix: Prevent multiple dialogs from stacking when
logEvent()is called concurrently (#28). A new_isFlowInProgressguard blocks concurrent flows while still incrementing event counts. - New:
ReviewFlowResult.flowAlreadyInProgress— returned when a secondlogEvent()call arrives while a review flow is active. - New:
DebugSnapshot.isFlowInProgressfield and corresponding row inHappyReviewDebugPanel.
0.2.0 #
- Fix: "Remind later" and "dismissed" no longer count as a shown prompt. Previously, platform policy, cooldown, and max prompts counters were incremented before the dialog was shown — burning a prompt slot even when the user didn't engage. Now, counters are only updated on positive or negative responses.
- Breaking: Debug mode no longer bypasses prerequisites, platform policy, or conditions. It now only enables detailed logging via
debugPrint. Use a relaxedPlatformPolicyto test the dialog flow during development. - Fix:
reset()now re-records the install date after clearing storage, soMinDaysAfterInstallcontinues to work correctly after a reset. - Fix:
PlatformPolicynow includes amacOSfield with iOS defaults. Previously macOS silently fell back to Android rules. - New:
happy_review/testing.dartexportsFakeStorageAdapterandFakeDialogAdapterso consumers can test their integration without a mocking library. - New:
HappyReviewDebugPanelwidget andgetDebugSnapshot()method for inspecting internal state during development.
0.1.0 #
- Initial release.
- Event-driven triggers with configurable minimum occurrences.
- Prerequisites (AND logic) to ensure baseline engagement before triggers fire.
- Per-platform policy rules aligned with Apple and Google restrictions.
- Emotional filter pre-dialog with positive, negative, remind later, and dismiss outcomes.
- Feedback collection dialog for unsatisfied users.
- Adapter pattern for fully customizable dialog UI and storage backend.
- Built-in conditions: MinDaysAfterInstall, CooldownPeriod, MaxPromptsShown, CustomCondition.
- Debug mode for detailed logging during development.
- Kill switch to enable/disable the library at runtime.
- Query methods for event counts, prompts shown, and last prompt date.
- Callbacks for every step of the review flow.