Android app reminding you not to stare at your computer for too long.
Clone or download
ronaldsmartin Release 1.1.0 (#77)
* Animate timer progress changes.

* Switch back to AlarmManager for short alarms.

* Restore AlarmManager's deleted timer observer.

* Injected AlarmScheduler properties can be private.

* Signal to observers immediately when cycle starts.

* Remove unnecessary Cycle.isFinishingPhase property.

* TimerPresenter properties can be private.

* Reorder TimerPresenter methods.

* Fire an intermediate event on timer start to prevent UI lag.

* Refactor PhaseProgress data class.

* Expose Phase progress Observable with a function instead of a property.

* Preserve paused timer mode across configuration changes.

* Update Gradle plugin from 2.2.0-beta3 to 2.2.0-rc1.

* Remove unused vector assets.

* Replace notification action icon vector with PNG asset.

* Bump version number from 1.0.1 to 1.0.2

* Reactivate Support Library-based vector drawable usage.

* Extract values from the vectors that will be animated.

* Define animated vectors for timer FAB.

* Animate timer FAB icon changes.

* Tweak animation timing for timer FAB icon.

* Refresh FAB icon when starting TimerActivity/Presenter.

* Break up vector for timer reset button icon so it can be animated.

* Define animated vector drawable for timer reset button.

* Animate timer reset button on Lollipop and higher.

* Only allow timer buttons to dodge Snackbars, not the whole view.

* Add preference switch for enabling/disabling break recommendations.

* Use exercise recommendation preference when generating phase notifications.

* Notifier properties can be private.

* Update Gradle plugin from 2.2.0-rc1 to 2.2.0.

* Update Gradle from v3.0 to v3.1.

* Update Support Library version from v24.2.0 to v24.2.1.

* Update LeakCanary dependency from v1.4-beta2 to v1.4; remove HAHA dependency.

LeakCanary 1.4 updates its internal HAHA dependency, preventing all the compiler warnings that made me add HAHA to our project to begin with.

* Update Dexter dependency from v2.3.0 to v2.3.1.

* Update Kotlin version from 1.0.3 to 1.0.4.

* Use timer background instead of solid color for splash screen.

* Add preference option for not automatically starting successive timer phases.

* Use timer auto-start preference to determine whether the timer continues when alarms fire.

* Pass actions received by TimerActivity to its presenter to process.

* Add new actions for starting paused timers from notifications.

* Adjust phase complete notification based on user's auto-start preference.

* Update Gradle plugin from 2.2.0 to 2.2.1.

* Use alternative to CoordinatorLayout anchoring to avoid Support Library bug.

* Bump version number to 1.1.0.
Latest commit 05cf51a Oct 15, 2016

Icon 20 twenty 20


An Android app to serve notifications for the 20-20-20 Rule. Keep yourself healthy with short activity breaks!

Get it on Google Play

20 twenty 20 uses an MVP-based architecture built with Kotlin, Dagger 2, and RxJava, and a host of other open source libraries. Hopefully its source will be as useful to you as the app itself!


Thanks to my friends and testers: