Skip to content

Drumm3r/office-break

Office Break

Unit Tests License: GPL v3

Android app for regular movement breaks at the office. Set a timer, start it, and get a random exercise when it expires. After confirming, the timer restarts automatically -- endlessly, until you manually reset.

Features

  • Adjustable timer duration (hours + minutes) via sliders or manual input
  • Configurable repetition range (min/max) with linkable sliders for fixed or randomized reps
  • Circular countdown display
  • Shuffle-bag exercise selection -- cycles through all enabled exercises before repeating, persisted across app restarts
  • Auto-restart after exercise confirmation (configurable -- can be disabled)
  • Foreground service with persistent notification (stays visible until manual reset)
  • Audible beep alert on timer expiry with configurable beep count (1-5) and custom notification sound support
  • Vibration alert on timer expiry
  • Lock screen notification with screen wake-up on timer expiry
  • TTS break announcements -- exercise names read aloud via text-to-speech (localized)
  • Work schedule -- per-day start/end times, break pause with auto-pause/resume, time inheritance via link icon, weekend/off-day detection, night shift support
  • Per-day exercise mode -- optional master toggle binds a default mode (Workout / Mobility / Office) to each weekday, link-inherited from the first unlinked day; today's mode is applied automatically on app foreground, onboarding finish, schedule edits, and toggle-on
  • One-day mode override -- manually picking a mode in the exercise settings stores a transient override for today only (persisted across backgrounding and process death); cleared automatically on timer Stop, end-of-shift, or day rollover; never modifies the weekly plan
  • End-of-shift screen -- friendly "Schönen Feierabend" / "Enjoy your time off" notification when work hours end, so the timer stop is never a surprise
  • Break pause screen -- "Schöne Pause" / "Enjoy your break" screen during scheduled breaks with auto-resume info
  • Freestyle mode -- automatically detected when starting outside work hours; disables auto-stop and break pausing so the timer runs freely for after-work use
  • Custom notification sounds -- pick audio files via SAF, preview before saving, reset to default
  • Persistent volume bar at top of timer screen
  • Home screen widget (Glance) -- today's break count, current streak, live second-by-second timer countdown with paused/expired/idle states, and a Start button that launches a break directly from the home screen
  • Exercise context modes -- three switchable presets (Home Office Workout, Home Office Mobility, Office) with instant mode switching via segmented button; 25 built-in exercises across all modes
  • Exercise management (add, remove, enable/disable per mode)
  • Achievements system with unlockable milestones and share-to-social (image card via share sheet)
  • Stats tracking -- weekly reps, week-over-week comparison, most frequent exercise (all data stored locally)
  • Fitness levels with progression
  • Dynamic difficulty increase with adaptive threshold (optional)
  • Data export and import via JSON backup (SAF integration)
  • Onboarding flow for first-time users
  • Theme switcher (System, Light, Dark)
  • Language switcher (German, English, System)
  • Keep screen on during countdown (optional)
  • Material 3 theming

Exercise Modes

Three context-aware modes, each with curated default exercises. All 25 exercises are always visible; switching modes toggles which are enabled. Users can customize each mode independently.

Home Office Workout

Push Ups, Squats, Deadlifts, Lunges, Sit Ups, Superman Angels, Plank, Glute Bridge

Home Office Mobility

Cat-Cow Stretch, Child's Pose, Downward Dog, Seated Spinal Twist, Hip Circles, Standing Forward Fold, Thread the Needle, Pigeon Stretch

Office

Shoulder Blade Squeeze, Chest Opener, Neck Stretch, Calf Raises, Seated Leg Extension, Wrist Circles, Ankle Circles, Seated Cat-Cow, Seated Core Bracing

Tech Stack

  • Kotlin 2.2.10
  • Jetpack Compose + Material 3
  • Jetpack Glance (home screen widget)
  • Jetpack DataStore (Preferences)
  • kotlinx.serialization
  • kotlinx.coroutines
  • Min SDK 28 (Android 9), Target SDK 36 (Android 16)

Build

./gradlew assembleDebug

Release Build

In Android Studio: Build > Generate Signed Bundle / APK > APK > Release

Run Tests

./gradlew testDebugUnitTest

Lint

./gradlew lintDebug

Install

adb install app/build/outputs/apk/debug/app-debug.apk

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Security

To report a security vulnerability, please see SECURITY.md.

Support

If you find this app useful, consider buying me a coffee:

ko-fi

Also by the developer

mysportsmate -- your digital fitness companion.

License

This project is licensed under the GNU General Public License v3.0.

Please note: While the GPL v3 allows free use, modification, and redistribution, please don't publish rebranded or minimally modified versions of this app on Google Play or other app stores. If you'd like to improve the app, consider contributing back instead.

About

Android app that reminds you to take exercise breaks during office work with a customizable timer and randomized exercises

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors

Languages