Skip to content

Latest commit

 

History

History
258 lines (204 loc) · 8.87 KB

File metadata and controls

258 lines (204 loc) · 8.87 KB

🔒 EyeBreak v2.2.0 - Smart Pause & Unified Dashboard Update

Release Date: November 13, 2025

We're excited to announce EyeBreak v2.2.0, bringing intelligent screen lock detection, real-time countdown displays for all reminders, and enhanced user experience improvements!

🌟 What's New

🔒 Automatic Screen Lock Pause (NEW!)

Your timers now intelligently pause when your Mac screen locks!

Key Features:

  • Auto-Pause on Lock: All timers (eye breaks, ambient reminders, water reminders) automatically pause when your screen locks
  • Smart Resume: Timers automatically resume with the exact remaining time when you unlock your Mac
  • Seamless Integration: Works with macOS sleep/wake and screen lock/unlock events
  • No Manual Intervention: Everything happens automatically in the background
  • Preserve Progress: Your countdown state is maintained across lock/unlock cycles

Why This Matters:

  • ⏰ No more wasted break reminders while you're away from your desk
  • 🎯 Accurate timing that respects your actual computer usage
  • 💡 Intelligent behavior that feels natural and intuitive
  • 🔋 Better battery life by pausing unnecessary timers

How It Works:

  1. Lock your Mac (⌘+Ctrl+Q or close the lid)
  2. All EyeBreak timers automatically pause
  3. Unlock your Mac
  4. Timers automatically resume from where they left off
  5. No configuration needed - it just works!

⏱️ Unified Countdown Dashboard (NEW!)

See all your active timers at a glance with our beautiful new dashboard!

Features:

  • All-in-One View: Eye breaks, ambient reminders, and water reminders displayed together
  • Real-Time Countdowns: All timers update every second with accurate countdown displays
  • Visual Status Indicators:
    • 🟢 Green dot = Active and running
    • 🟠 Orange dot = Paused (screen locked or outside work hours)
    • Gray dot = Disabled
  • Smart Status Messages: Clear text showing current state (Active, Paused, Disabled)
  • Professional Design: Beautiful glass-morphism cards with gradients and animations
  • Color-Coded: Each reminder type has its own color (Blue for eye breaks, Orange for ambient, Cyan for water)

What You'll See:

┌─────────────────────────────────────┐
│  👁️  Next Eye Break      19:14     │
│       • Working          remaining  │
├─────────────────────────────────────┤
│  ✨  Ambient Reminder     4:23     │
│       • Active           remaining  │
├─────────────────────────────────────┤
│  💧  Water Reminder      29:47     │
│       • Active           remaining  │
└─────────────────────────────────────┘

Location:

  • Open EyeBreak SettingsGeneral tab
  • Dashboard appears at the top with all timer information
  • Updates automatically every second
  • Always visible for quick reference

Benefits:

  • ✅ Know exactly when your next reminder will appear
  • ✅ See all timers without switching tabs
  • ✅ Understand timer status at a glance
  • ✅ Professional, polished interface
  • ✅ No more guessing if reminders are working

🎨 Enhanced Timer Management

Improved Countdown Accuracy:

  • All timers now calculate remaining time using Date-based precision
  • Countdown continues to display even when timers are paused
  • Real-time updates ensure you always have accurate information
  • No more static interval displays - everything is dynamic

Smart Pause Behavior:

  • Screen lock pause preserves the target reminder time
  • Resume intelligently calculates remaining duration
  • If time has passed during lock, schedules next reminder immediately
  • Seamless experience across all pause/resume scenarios

🔧 Technical Improvements

Architecture Enhancements

  • Combine Framework Integration: Reactive countdown timers using modern Swift patterns
  • Published Properties: Automatic UI updates through @Published state
  • Date-Based Calculations: More accurate than timer-based countdowns
  • Memory Efficient: Single shared timer per manager
  • Screen Lock Detection: Uses DistributedNotificationCenter for system-wide events

Code Quality

  • Clean Architecture: Well-organized manager classes with clear responsibilities
  • Reactive Programming: State changes automatically propagate to UI
  • Error Handling: Graceful handling of edge cases
  • Type Safety: Full Swift type system benefits
  • Documentation: Comprehensive code comments and documentation

🐛 Bug Fixes

  • Fixed: Ambient reminder timer not showing accurate countdown
  • Fixed: Water reminder timer displaying static intervals
  • Fixed: Timers continuing to run when Mac screen is locked
  • Fixed: Resume behavior after screen unlock not preserving state
  • Improved: Countdown display formatting for consistency

📊 Performance Improvements

  • Optimized countdown update frequency (1-second intervals)
  • Reduced CPU usage during idle periods
  • More efficient date calculations
  • Better memory management with weak references
  • Smoother UI animations and transitions

🎯 User Experience Enhancements

Better Visibility

  • All timer information consolidated in one place
  • Clear visual feedback on timer status
  • Professional status indicators (dots + text)
  • Real-time updates provide confidence timers are working

Smarter Behavior

  • Automatic pause when you're not using your Mac
  • No interruptions during screen lock
  • Intelligent resume with preserved state
  • Respects Smart Schedule and screen lock simultaneously

Professional Polish

  • Beautiful animations and transitions
  • Color-coded timer displays
  • Consistent design language
  • Accessible status messages

🚀 Getting Started

View the Unified Dashboard

  1. Open EyeBreak Settings
  2. Click on the General tab
  3. See the "Active Timers" card at the top
  4. Watch your countdowns update in real-time!

Understanding Status Indicators

  • 🟢 Green + "Active" - Timer is running normally
  • 🟠 Orange + "Paused (Screen locked)" - Mac is locked, timer paused
  • 🟠 Orange + "Paused (Outside work hours)" - Smart Schedule is pausing
  • ⚪ Gray + "Disabled" - Timer is turned off

No Setup Required

  • Screen lock detection works automatically
  • All timers pause and resume without configuration
  • Just lock/unlock your Mac as normal
  • EyeBreak handles everything intelligently

📝 Files Modified

Managers

  • BreakTimerManager.swift - Added screen lock detection
  • AmbientReminderManager.swift - Countdown tracking and pause logic
  • WaterReminderManager.swift - Countdown tracking and pause logic

Views

  • SettingsView.swift - New UnifiedCountdownCard component

New Components

  • UnifiedCountdownCard - Main dashboard component
  • CountdownRow - Reusable timer display row

🎓 How It Works

Screen Lock Detection

Mac Screen Locks
    ↓
System Event Detected
    ↓
All Timers Pause
    ↓
Preserve Target Times
    ↓
Mac Screen Unlocks
    ↓
Calculate Remaining Time
    ↓
Resume Timers Intelligently

Countdown System

Timer Scheduled
    ↓
Store Target Date
    ↓
Update Every Second
    ↓
Calculate Remaining = Target - Now
    ↓
Display in UI (MM:SS format)
    ↓
Repeat Until Timer Fires

🔮 Future Improvements

We're already planning the next updates:

  • Statistics Dashboard: Track your break history with charts
  • Break Activities: Interactive exercises during breaks
  • Posture Reminders: Gentle reminders to adjust sitting position
  • Custom Break Sounds: Upload your own notification sounds
  • Focus Mode Integration: Better macOS Focus mode support

🙏 Acknowledgments

Thank you to our users for the feedback that inspired these features! Special thanks to those who requested:

  • Automatic pause during screen lock
  • Better visibility of timer countdowns
  • All-in-one timer dashboard

📚 Documentation

For more information:

🐛 Found a Bug?

Please report issues on our GitHub Issues page.

💬 Feedback

We'd love to hear your thoughts! Share your feedback:


Upgrade today and experience smarter, more intuitive eye care reminders! 🎉

Version Info

  • Version: 2.2.0
  • Build: 2025.11.13
  • Release Date: November 13, 2025
  • Compatibility: macOS 14.0 (Sonoma) or later
  • Size: ~5 MB
  • Language: English
  • License: MIT (Open Source)

EyeBreak - Your Eyes Deserve a Break 👁️✨