Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: aload0/Reef
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.0.3
Choose a base ref
...
head repository: aload0/Reef
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.0.4
Choose a head ref
  • 4 commits
  • 24 files changed
  • 2 contributors

Commits on Jan 8, 2026

  1. feat: Refactor routine management system to support multiple active s…

    …essions
    
    This commit overhauls the routine management architecture, replacing the single-active-routine model with a more robust system capable of handling multiple simultaneous sessions. It consolidates logic into a new `Routines` object and improves cross-process state synchronization.
    
    Key changes include:
    *   **New `Routines` Object**: Replaces `RoutineManager`, `RoutineExecutor`, `RoutineScheduleCalculator`, and `RoutineLimits`. It serves as the centralized logic for CRUD operations, session management (starting/stopping), and calculating limits/usage across all active routines.
    *   **Support for Multiple Sessions**: Introduced `ActiveSession` data class to track multiple concurrent routines. The system now aggregates limits from all active sessions, applying the strictest (lowest) limit for any given package.
    *   **Improved State Synchronization**: Added `ACTION_CHANGED` broadcast and a `BroadcastReceiver` in `BlockerService` to ensure the accessibility service remains in sync with routine state changes even across different process boundaries.
    *   **Refactored `RoutineScheduler`**: Integrated schedule calculation logic directly into the scheduler and updated it to interface with the new `Routines` session management.
    *   **`BlockerService` Enhancements**:
        *   Implements a receiver for real-time session updates.
        *   Uses `DeviceProtectedStorageContext` for early access to preferences if needed.
        *   Enhanced logging for block reasons (Focus Mode vs. Routine Limits).
    *   **UI and UX Updates**:
        *   Updated `RoutinesScreen` and `CreateRoutineScreen` to use the new `Routines` API.
        *   Simplified notification strings and plural handling for app limits.
    *   **Dependency Updates**: Bumped AGP version to `9.1.0-alpha03`.
    *   **Code Cleanup**: Removed legacy utility classes (`RoutineExecutor.kt`, `RoutineLimits.kt`, `RoutineManager.kt`, `RoutineScheduleCalculator.kt`) and streamlined usage tracking logic in `UsageTracker.kt`.
    
    Signed-off-by: invokevirtual <purwarpranav80@gmail.com>
    PranavPurwar committed Jan 8, 2026
    Configuration menu
    Copy the full SHA
    170881f View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2026

  1. Stats calculation fixes, accessibility blockerService fix and spanish…

    … internationalization (#35)
    
    * Refactor screen usage calculation logic
    
    Reworks the logic for calculating app foreground time using UsageEvents, improving accuracy and compatibility with newer Android versions. Introduces separate event queries for lookback and main intervals, and simplifies event handling for ACTIVITY_RESUMED and ACTIVITY_PAUSED.
    
    * Add Spanish translations for app strings
    
    Introduces a new strings.xml file with Spanish translations for all user-facing text in the application, supporting localization for Spanish-speaking users.
    
    * Update build configs and dependencies for Reef and appintro
    
    Added kotlin-android plugin and set JVM target in Reef and appintro build scripts. Updated gradle.properties with new Android build options. Refreshed library versions in libs.versions.toml, including AGP, Compose BOM, Material3, and others.
    
    * Update AndroidManifest.xml
    
    Remove `android:process=":blocker_process` since it makes the blockservice fail
    
    * Add InitializationProvider to AndroidManifest
    
    Added androidx.startup.InitializationProvider to the manifest to support initialization of WorkManager. The provider is set as non-exported and includes meta-data for WorkManagerInitializer, with node removal specified for merging.
    
    * Replace hardcoded strings with resources in UI
    
    Updated MainActivity to use string resources for navigation bar labels and time suffixes instead of hardcoded strings. This improves localization and consistency across the app.
    
    * Update MainScreen.kt
    
    * Add 5-minute option to AppSelectorDialog
    
    Introduced a 5-minute selection to the time options in AppSelectorDialog for improved granularity when setting durations.
    
    * Fix week offset and day calculation logic in AppUsageViewModel
    
    Corrects the calculation of days for week offset and day iteration in AppUsageViewModel. Updates logic to properly add/subtract days and checks for usage data more accurately, ensuring correct navigation and data retrieval for previous weeks.
    
    * Add new focus session and navigation strings
    
    Introduces new string resources for focus session states, slide actions, sample routines, and bottom navigation in both English and Spanish. Also updates several existing strings for consistency and clarity.
    
    * Refactor usage event querying and improve foreground time logic
    
    Extracted event querying into a helper function for cleaner code. Improved logic for tracking package foreground times by handling noisy packages and ensuring accurate duration calculation. This refactor enhances maintainability and correctness of screen usage tracking.
    
    * Remove `kotlin-android` plugin
    
    * Remove `kotlin-android` plugin
    
    * Clean up gradle.properties by removing unused settings
    
    Removed several deprecated Android Gradle properties.
    
    * Update AGP version to 9.1.0-alpha05
    
    ---------
    
    Co-authored-by: invoke <purwarpranav80@gmail.com>
    alv-cor and PranavPurwar authored Jan 18, 2026
    Configuration menu
    Copy the full SHA
    aba5384 View commit details
    Browse the repository at this point in the history

Commits on Jan 27, 2026

  1. chore: Comment out debug log for active sessions check in Routines.kt

    Signed-off-by: invokevirtual <purwarpranav80@gmail.com>
    PranavPurwar committed Jan 27, 2026
    Configuration menu
    Copy the full SHA
    86fc4f2 View commit details
    Browse the repository at this point in the history
  2. feat: Update version to 3.0.4 and add changelog

    This commit increments the version code and name to 3.0.4 and introduces the English changelog highlighting several new features and stability improvements.
    
    Key changes include:
    *   **Version Update**: Bumped `versionCode` to `304` and `versionName` to `3.0.4` in `build.gradle.kts`.
    *   **Feature Enhancements**:
        *   Support for running multiple focus routines and app limits simultaneously.
        *   Added auto-start functionality for Pomodoro rounds and breaks.
        *   Improved Blocker persistence by starting immediately after reboot (Direct Boot support).
        *   DND now toggles automatically and the Pause button is hidden in Strict Mode.
    *   **Stability and Performance**:
        *   Implemented a background safety net to prevent focus sessions from being killed.
        *   Improved app usage tracking accuracy for newer Android versions.
        *   Optimized tab switching and screen animations.
    *   **Localization**: Added Spanish translation and updated French translation strings.
    
    Signed-off-by: invokevirtual <purwarpranav80@gmail.com>
    PranavPurwar committed Jan 27, 2026
    Configuration menu
    Copy the full SHA
    a3fe77c View commit details
    Browse the repository at this point in the history
Loading