Repository navigation
Conversation
…irements documentation
…atus, and type entities - Add StreakConfig for configuring streak parameters (window, minimum, cadence). - Introduce StreakPeriod as an abstract class with StreakDay and StreakMonth implementations for daily and monthly periods. - Define StreakStatus enum to represent the lifecycle of a streak run. - Create StreakType enum to categorize different streak types (tracking, no-spend, app-open, under-budget). - Implement StreakEngine for calculating current and best streaks based on qualifying periods and configuration. - Add comprehensive tests for StreakPeriod, StreakConfig, StreakStatus, StreakType, and StreakEngine to ensure correct functionality.
…ing and app cadence settings
… and state management
…uration sheet with tests
…uning sheet Implement state management and interactive UI for tuning streak parameters: - Add StreakConfigCubit and StreakConfigState to load, update, and persist streak window, minimum threshold, and cadence settings to LocalStorage with lower-bound clamping. - Expand StreakConfigSheet with tabbed type navigation, custom steppers, quick cadence presets, and future placeholder cards for no-spend and under-budget streaks. - Add comprehensive unit and widget test suites for cubit state transitions and bottom sheet interactions.
…bit metrics - Add GetQualifyingPeriodsUseCase to query qualifying activity periods - Implement StreakCubit and StreakState to manage monthly streaks, qualifying days, and consistency metrics with reactive transaction watching - Build StreaksPage with Bento-style StreakHero, StreakCalendar, StreakConsistencyCard, and MilestoneProgress widgets - Update AppRouter and test suites for streak navigation and UI interactions
…ce and repository
…ing and update tests
- Added UnderBudget streak type handling in StreakRepositoryImpl. - Implemented tests for UnderBudget streak scenarios, including tracking and status checks. - Updated StreakCubit to manage UnderBudget status and integrate with the UI. - Enhanced StreaksPage to display UnderBudget information and overrun flags. - Added widget tests for UnderBudgetMonthCard and StreakCard to ensure correct rendering of budget-related information.
…ate settings and tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
What:
dailyActivity,appOpen, andunderBudgetstreaks.StreakEngine) and period representations (StreakDay,StreakMonth) with configurable window tolerance, minimum threshold, and cadence spacing./streaks) withStreakHero, interactiveStreakCalendar,MilestoneProgress, andUnderBudgetMonthCard.StreakBadgein the header andStreakCardabove wealth trajectory.StreakConfigSheettuning sheet.How:
Streak,StreakPeriod,StreakConfig,StreakStatus,StreakType, andUnderBudgetMonthStatusentities.StreakEnginewith gap-absorption algorithms, milestone ladder tracking (7, 14, 30, 60, 90, 180, 365), and DST/timezone resilience.GetStreaksUseCase,GetQualifyingPeriodsUseCase, andGetUnderBudgetStatusUseCase.AppOpenLocalDataSourceandAppOpenRepositoryImplfor tracking app launch timestamps.StreakRepositoryImplintegrating transactions, categories, app opens, and persistent preferences.CategoryBudgetCalculatorfor calculating leaf envelope budgets and detecting overrun categories.LocalStorageto persist window, minimum, and cadence settings.StreakCubitandStreakConfigCubitfor reactive state management./streaksroute inAppRouter.StreakBadgeandStreakCardinHomePage.StreakConfigSheetfor real-time parameter tuning.Why:
Type of Change
Code Checklist
fvm flutter test).