The Dashboard module is the central analytical hub of the application. It employs a Tabbed Layout strategy where users can switch between different metrics using a custom floating bottom navigation bar.Each sub-screen (Phone Usage, Unlocks, Scroll, Notifications) follows a consistent vertical layout pattern:
Metric Header: A high-level summary of the current data.
Interactive Heatmap: A calendar-based visualization of intensity over time.
Period Selector: A segmented control to toggle between Daily, Weekly, and Monthly views.
Ranked List: A of apps contributing to the metric, grouped into cohesive visual cards.
The UI follows the pattern. Each screen observes a UiState (e.g., NotificationsUiState) emitted by a Hilt-injected ViewModel.
Inputs: The screens accept a UiState data class containing the heatmap data, app list, and current selection parameters.
Dynamic Visibility: The floating bottom bar visibility is tied to scroll gestures via a NestedScrollConnection, hiding on scroll-down and appearing on scroll-up.