A minimalist but powerful productivity timer designed to keep you focused and free of distractions.

Overview

Build Status Crowdin

Goodtime

Get it on Google Play Get it on F-Droid

A minimalist but powerful productivity timer designed to keep you focused and free of distractions.
Alternate between focused work sessions and short breaks, all handled by the app.
Get rid of procrastination and improve your time management!

split your work into focused sessions and then reward yourself with a break
after multiple work sessions, take a longer break

Features

  • No ads
  • No tracking or personal data collection
  • Free & Open Source
  • Lightweight: ~2 MB download size
  • Battery friendly
  • Configurable timer
  • Pause, skip or add 60 seconds
  • Long breaks after a number of completed work sessions
  • Detailed statistics
  • AMOLED-friendly user interface
  • Immersive fullscreen mode
  • Keep the screen on
  • Custom notification sounds
  • Auto start work or break without user interaction
  • Disable sound and Wi-Fi connection during the work sessions
  • Colored labels
  • Timer styles
  • Daily reminder
  • Manually add sessions
  • Edit completed sessions
  • Backup export and import
  • Export statistics to CSV
  • Screensaver mode
  • Themes
  • Separate notification sound for work and break
  • Insistent notifications

Translations

You can help translate or improve existing translations at Crowdin. Thank you!

Trouble with Goodtime getting killed by Android?

Different phone OEMs (phone vendors) have an aggressive take towards apps that rely on background work and alarms to save some battery life. It is recommended that you disable the battery optimization for this app in order to get accurate alarms. In the worst case, if you still have issues, try to keep the phone plugged in and/or the screen on while working.

Read more about this topic on www.dontkillmyapp.com

Suggestions, questions, contact

For any suggestions or questions, please contact me and I'll be glad to help!

You may also browse the issues to see if your question or request already exists and open a new issue if necessary.

Licence

Goodtime is free and open source software, licensed under the Apache License, Version 2.0. Copyright 2016-2019 Adrian Cotfas.

Comments
  • Removing a tag crashes the app

    Removing a tag crashes the app

    I made a tag for no reason in particular, and when I attempt to delete it the app crashes. Not sure if this is because I'd already had sessions on that tag or not.

    opened by daraul 15
  • Timer should run as separate service

    Timer should run as separate service

    I often use my phone for tasks while working, which means that the Goodtime app winds up in the background and Android sometimes decides to pause it. (To reproduce this consistently, enable Settings > Developer options > Don't keep activities.) This means that I'll sometimes notice half an hour later that there's still 15 minutes left of a 25-minute session.

    I tried to fix this myself, but I got confused trying to understand how the preferences are set up. Is there a particular reason that some of the preferences (e.g. mSessionTime, mBreakTime, mDisableWifi) are stored in variables and saved into the bundle instead of using mPref.get*() each time they're needed?

    opened by wolfgang42 11
  • It apears that Goodtime skips the long break after 12 sessions

    It apears that Goodtime skips the long break after 12 sessions

    First off, I want to thank you for this app. It's very clean, nice and is foss.

    However, I noticed what appears to be a bug. I just finished my 12th session and I got a 5 min break (instead of a 15-minute one). The small cup of coffee says that 12 sessions are completed. I don't think the 8th was skipped.

    opened by ThracianKnight1907 8
  • Adding a stop/close option

    Adding a stop/close option

    First of all, thank you for this app! I'm using it everyday.

    However, I noticed that when I finished a task and wanted to take my break, or during a break I skiped the session, the current session was not saved in the statistics.

    It would be cool if you could add a stop option, like a double-click to close a session, or a break.

    opened by linguoguo 8
  • Long break is triggered after second work session

    Long break is triggered after second work session

    I've activated long breaks in the app and set the number of session before a long break to 4. The problem is that after just two sessions a long break is activated instead of a short one. I'm using 2.0.10 of the app on Android version 9.

    opened by axelfriberg 8
  • Implement a flashing notification

    Implement a flashing notification

    First of all, thanks so much for making this great app!

    I use this app in the fullscreen mode with the screen on, so the phone shows a visual reminder that I'm on a timer. However because I usually work with headphones on, I don't hear the vibration notification (and can't use sound because it would disturb people around me). I was therefore wondering whether it would be possible to add a "flashing" notification option that would signal the time is up by inverting the colors of the screen repeatedly (so black text on white alternating with white text on black). This would be noticeable and wouldn't disturb the people around me.

    Thanks in advance for considering!

    opened by GjjvdBurg 7
  • Preferences cleanup

    Preferences cleanup

    As seen in #22, the way preferences are handled is a bit confusing and disjointed. This change puts all of the preference getters in a separate Prefs class, which has several benefits:

    1. Removes members of MainActivity that were storing some of the preferences, along with the code to bundle and unbundle them.
    2. Puts all of the preferences in a single place where they can easily be seen.
    3. Removes code duplication where some preferences were gotten in multiple places. If these default was to be changed the getters would have had to have been altered in multiple places; with this change only the one place in the Prefs class needs to be altered.

    I'm submitting this as a PR separate from the fix for #22 as I haven't implemented that yet and I wanted to avoid merge conflicts later on.

    opened by wolfgang42 7
  • UI redesign

    UI redesign

    I have some redesign ideas to improve Goodtime.

    1. Overflow menu is typically used to display a menu. Goodtime uses it for letting a user select a label. IMHO I keep using it how I would use overflow menu in rest of the Android environment to open a menu. And inside the statistics a different icon is being used for labels.
    2. I should be able to see a the labels and their number of pomodoro completed.
    3. The bottom bar may possibly let me go to statistics directly.

    Some possible suggestions from my side.

    1. Use same icon for labels.
    2. What about if we use an Exposed Dropdown list instead of a dialog? This would not require much hand movement.
    3. Statistics button in the bottom bar.
    4. Display label at the top of the timer.
    5. Display x number of label stats in bottom.

    Maybe we could hide these in full screen and display when a user clicks on the screen. Maybe we could display this permanently in the non-full-screen view in case user wants to see it.

    If you think these ideas are something you would be willing to incorporate then I can try to find some time to send pull requests.

    opened by sudhirkhanger 6
  • LED notifications not working?

    LED notifications not working?

    On a Huawei Y6 (2017) with Android version 6.0 (patch level: August 5, 2018), the LED notifications don't seem to work: the LED doesn't light up when the time ends. I'm running with Vibration: None and Notification sound: off. Even with Vibration active, the LED doesn't light up.

    help wanted 
    opened by afita 6
  • Hackathon Proposal: FOSS Gamification

    Hackathon Proposal: FOSS Gamification

    Things that could be done:

    • Dissect the elements of these app
      • https://play.google.com/store/apps/details?id=com.dotsaft.sat.pomodoromoon
      • https://play.google.com/store/apps/details?id=com.wlxd.pomochallenge
    • Design the application layout (UI) to be compatible with Goodtime
    • Writing the app to be compatible with Goodtime's default workflow
    opened by DonaldTsang 6
  • Remarks on text in UI

    Remarks on text in UI

    I open this issue to gather some more untranslated strings (following #122 now closed) and formulate some remarks on text in UI.

    Non localized strings :

    • Menu > Open Source Licences > Licenses (as seen in #122)
    • Menu > About > About
    • In intro, Back and Next buttons tooltip on long press

    Inconstistancies:

    • In French, Upgrade translates to "Mise à niveau" or "Mettre à niveau" (Upgrade can be a word or a verb respectively). I did not touch your translation of "Version Premium" but it is not litterally equivalent. Perhaps the english string would also benefit from being more explicit as Premium Version?
    • Menu > Statistics > Select label > all --> Should be All with caps
    • Date format in statistics does not adapt to language
    • I assume Insistent notification is not the same as Persistant notification. Insistant repeat, while persistant stay forever without repeating. I think a notification cannot be insistant, as a thing, it does not have will of its own. Something more impersonal would be better, like 'Repeat notification until aknowledged' or a better formulation.
    • Moves the timer while the screen is on : I don't understand what this feature does. The timer goes on if screensaver on, Only if this feature is turned on? For me it is unclear what this option does with this formulation.
    opened by simonporte 6
  • Long breaks not activating?

    Long breaks not activating?

    I have my short breaks set to 5 minutes and 15-minute long breaks set to activate after every 4 sessions. But I've noticed that the long breaks aren't activating at the proper time. Either I see the long break at an unexpected time (say, after 7 sessions), or I only get 5 minute breaks; I'm not certain which one is happening because it's difficult to test without actually doing the Pomodoros. Skipping ahead by swiping right on the timer does show the breaks at the expected intervals though.

    The only possibility that came to mind was the need to reset the timer on each new day, which I do anyways, but is probably already the default after the app is closed (if it isn't, perhaps we could get this as a setting to avoid the need to remember to reset?). I haven't seen any bug reports on a similar problem, so since I've already gone through the settings, I suspect the problem with getting long breaks is either due to a hidden feature (e.g. maybe I'm waiting too long after some Pomodoros) or a bug.

    opened by gitthepie 2
  • In fullscreen mode with minutes-only timer, it is hard to judge if the timer is running after app start

    In fullscreen mode with minutes-only timer, it is hard to judge if the timer is running after app start

    I use fullscreen mode in combination with the minutes-only timer design. However, when I open the app, it is hard to judge if the timer is actually running or currently paused (which is the case after opening the app), because it does not move and you can not see the notification bar to check whenever the phone is in DND mode. If I then press the timer twice to go into the real pause mode, it blinks - which is a clear indication of pause. For the initial display though, it would be nice to see that the timer is not running - maybe indicate that with a little symbol or text below the timer, that the session has to be started.

    opened by reox 1
  • Sometimes the sessions are not saved

    Sometimes the sessions are not saved

    I tried adding logs in the project but could now figure out the reason why... But if you try to stop the sesssion from the notification(or sometimes from the mainactivity) then too it's not saving the session. The code execution comes to the addSession function but doesn't work

    opened by RevealedSoulEven 0
  • FR: option to have the notification sound only in earphones

    FR: option to have the notification sound only in earphones

    Hi

    I work in a silent environment, but have my earphones connected to the phone. My phone is in silent mode, vibrations only. Would it be possible to have an option to play the end of timer sound on the earphones. I think now they are not playing because the phone is in silent mode. If I turn on "override sound profile", I think the phone will ring both in the earphones and through the speaker, like an alarm. I would like the app to notify me with a sound in my earphones, like any music app.

    Thank you for the great app

    opened by Zahrun 0
  • Material You support

    Material You support

    Just wanted to ask you to consider if Material You might be a good fit for this project. I think it'll be great with the present style of minimal branding and could also serve as a nice marketing point.

    opened by lokesh-krishna 0
Releases(v2.5.4)
  • v2.5.4(Dec 12, 2021)

  • v2.5.3(Dec 3, 2021)

  • v2.5.2(Nov 13, 2021)

    2.5.2

    • statistics: fix crash when rotating the screen with the add/edit session dialog opened
    • replace Google OSS licenses library to fix the F-Droid updates
    Source code(tar.gz)
    Source code(zip)
  • v2.5.1(Nov 11, 2021)

  • v2.5.0(Nov 3, 2021)

    2.5.0

    • replaced the Ringtone Picker with an improved version
    • added more labels colors to a total of 20
    • statistics: add marker when clicking on charts
    • add configurable workday start
    • updated translations
    • improved productivity reminder: can select days of the week
    • convert codebase to Kotlin and refactoring
    • use billing version 4 (for the Google Play version)
    • various UI improvements and bugfixes
    Source code(tar.gz)
    Source code(zip)
  • 2.2.8(Jun 13, 2021)

    2.2.8

    • bugfix for finished session dialog showing when starting a session from the notification #230

    2.2.7

    • change the label to "Productivity"
    • Goodtime Training will be labeled as "Training"
    Source code(tar.gz)
    Source code(zip)
  • 2.2.6(Feb 1, 2021)

  • 2.2.5(Dec 13, 2020)

  • 2.2.4(Sep 8, 2020)

  • 2.2.3(Aug 14, 2020)

  • 2.2.2(Aug 9, 2020)

  • 2.2.0(Aug 2, 2020)

    • simplified the main UI and made the label selection more intuitive
    • the in progress notification icon is now according to the session type
    • added a flashing screen notification option
    • tap the pie chart to switch from time values to percentages
    • added a one minute pre-notification option for work sessions
    • some bugfixing
    • added disable battery optimization button on the main screen
    • refreshed the upgrade/donate section UI
    Source code(tar.gz)
    Source code(zip)
  • 2.1.17(Jul 24, 2020)

    • fixed a crash occurring when a label was deleted
    • bugfix for keeping the screen on option: default was on but not working until a re-toggle was made

    Changes from 2.1.16

    • updated translations
    Source code(tar.gz)
    Source code(zip)
  • 2.1.15(Jun 29, 2020)

  • 2.1.14(May 14, 2020)

  • 2.1.13(May 4, 2020)

  • 2.1.12(Apr 30, 2020)

    • Long break: bugfix for the trigger
    • Long break: counter is now reset if the user resets today's finished sessions
    • Statistics: show time as default in the overview; show current month as default in the pie chart
    • Statistics: fix for inaccurate history Y-axis
    • Settings: keep the screen on on by default
    • Main: increase the size of the gestures area
    • Finished session notification: handle potential crash in the selection of sounds
    Source code(tar.gz)
    Source code(zip)
  • 2.1.11(Apr 20, 2020)

  • 2.1.10(Apr 19, 2020)

    • add a pie chart to the statistics showing the distribution of work per label for today / this week / this month/ total
    • bugfix for session not being saved to statistics when a session is stopped manually
    • some tweaks in the time pickers, update dependencies' version and some clean-up
    Source code(tar.gz)
    Source code(zip)
  • 2.1.9(Apr 11, 2020)

    • add option to override the sound mode; notifications will behave as alarms (as before 2.1.7)
    • bugfix: timer color not updated if a break session was stopped
    • bugfix for pre-Marshmallow devices: disable sound and vibration not working
    • daily reminder switch and time picker dialog appearance improvement for pre-Lolipop devices
    Source code(tar.gz)
    Source code(zip)
  • 2.1.8(Apr 3, 2020)

  • 2.1.7(Mar 18, 2020)

  • 2.1.6(Mar 17, 2020)

    • revert of previous changes related to AudioManager (headphones vs no headphones)
    • notification sound stream type changed from "alarm" to "notification"
    Source code(tar.gz)
    Source code(zip)
  • 2.1.5(Mar 14, 2020)

    • notifications: when headphones are connected, play the notification sound only on them
    • notifications: green(finished work) and red(finished break) led colors
    • fix for "Save custom profile" button not visible when entering session durations
    • color the break timer gray to differentiate work from break sessions at a glance
    • about page: add link to my other apps
    • updated translations
    • hide "Disable WiFi" setting for Android 10 or later devices since this functionality was deprecated
    Source code(tar.gz)
    Source code(zip)
  • 2.1.4(Jan 3, 2020)

    • added vibration patterns
    • improved the UX of creating a custom profile for the durations
    • when manually adding a session, the time from the dialog will be according to the current time
    Source code(tar.gz)
    Source code(zip)
  • 2.1.3(Dec 11, 2019)

  • 2.1.2(Dec 8, 2019)

  • 2.1.1(Oct 24, 2019)

  • 2.1.0(Oct 22, 2019)

    • the app has a slightly smaller footprint
    • you can now rearrange and archive labels
    • increased the max length of a label
    • added custom profiles
    • it is now easier to switch between profiles from the bottom right button(More Options)
    • it is now easier to disable the battery optimization for the app using the shortcut from the settings
    • targeted Android 10 and updated library versions
    • updated translations
    • various bugfixing
    Source code(tar.gz)
    Source code(zip)
  • 2.0.11(Jul 16, 2019)

    • fix upgrade bug
    • fix bug when the sound and WiFi wasn't restored when a work session was skipped
    • restore sound and WiFi on separate threads
    • fix potential crash on session finished
    • update Arabic translation
    • integrate "rate this app" dialog
    • add a circular progress bar to the upgrade screen
    • update translation for Portuguese, Danish, Greek, Hindi, Swedish, Turkish and Vietnamese
    • refactoring, clean-up to remove duplicate code
    • add tutorial with animations
    • add tutorial to About
    • update dependencies version
    • add fade-in animation on the main screen
    Source code(tar.gz)
    Source code(zip)
Owner
Adrian Cotfas
Adrian Cotfas
Task Timer - An android app that helps you to keep a track of how much time you spend on each task

Task Timer - An android app that helps you to keep a track of how much time you spend on each task

Hassan Al-Shammari 1 Feb 24, 2022
A digital wellbeing Android app that helps minimise distractions when you don't want them

Bundel is a digital wellbeing Android app, helping you to focus by grouping up notifications and only releasing them in batches, at set times. This minimises context switching and improves productivity, while decreasing the impulse to continuously check your phone.

Code with the Italians 238 Dec 27, 2022
Android app that helps you keep track of the medical supplements you need to take and how you spend your days

Android app that helps you keep track of the medical supplements you need to take and how you spend your days, similar to a bullet journal. It also allows you to reflect on your day, week, year, etc.

Rachelle Hu 4 Nov 10, 2022
Taskify - An app to manage your daily tasks and boost your productivity. Taskify is built using kotlin and follows all modern android Development practices and hence is a good learning resource for beginners

Taskify Taskify is an app to manage your daily tasks and boost your productivity Video Introduction ?? This is a small introduction video about Taskif

Vaibhav Jaiswal 101 Jan 4, 2023
A console-based productivity app involving both To-Do Lists and Goal tracking

This is a console-based productivity app involving both To-Do Lists and Goal tracking. It allows users to create To-Dos, check them off, and filter the display between complete/incomplete items

Joel Jossie 3 Dec 25, 2022
TIRO - Time Is Running Out : Productivity app and widget for Android

TIRO-2022 TIRO - Time Is Running Out : Productivity app and widget for Android The purpose of this app is to let you know how much remaining time you

Alubecki 2 Aug 28, 2022
Productivity Note App utilizing Jetpack Compose

DailyDoc Productivity Note App utilizing Jetpack Compose Currently working on improving UI features and will be applying these directly to the main br

Bryan L 31 Dec 16, 2022
Daily Doc is a Productivity Note App utilizing Jetpack Compose

Daily Doc is a productivity app to help you keep track of your daily progress inspired by 100-day-challenges.

Bryan L 31 Dec 16, 2022
A productivity tracker app published on Google Play

producktivity-tracker A productivity tracker app published on Google Play. Includes Google AdMob and in-app-purchases to disable ads. This project was

null 1 Mar 9, 2022
A minimalist clone of the popular Social Media Platform "Instagram"

InstaLocal A minimalist clone of the popular Social Media Platform "Instagram" powered by Firebase and written in Kotlin. The app allows users to sign

Raktim Bhuyan 1 Nov 7, 2021
With this simple app, you can keep track of your favourite cryptocurrency on your wrist.

Capstone project crypto Tracker ?? Final Product (05-06) V1.1 "somebody toucha my spaghet" feature set State Note Track the current price of a crypto

Stefan de Kraker 2 Aug 20, 2022
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Components Architecture in a Modular Word Android Components Architecture in a Modular Word is a sample project that presents modern, 2020 app

Madalin Valceleanu 2.3k Jan 3, 2023
A simple weather application focused on material UI and API data calls.

YAWA-WeatherApp YAWA is a simple single screen, single activity weather app with material UI. This repository is mainly focused on people who want to

Debayan Ghosh Dastider 2 Sep 1, 2022
🚀 Sample Android Clean Architecture on Rorty App focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Clean Architecture Android Clean Architecture in Rorty is a sample project that presents modern, approach to Android application development u

Mr.Sanchez 0 Dec 28, 2021
This project is focused on the sample using the API's new preview version of Android-L, use of transitions, shadows etc...

Android L preview example Description This project is focused on the sample using the API's new preview version of Android-L, use of transitions, shad

Saul Molinero 165 Nov 10, 2022
A distribution of performance-oriented Bukkit patches that aims to keep stability and vanilla behaviour

Patina A distribution of performance-oriented Bukkit patches that aims to keep stability and vanilla behaviour. You can find explanation of configurat

null 107 Dec 26, 2022
This app aims at helping people keep track of their job applications, and remind them regularly about the same.

Applications Tracker Lately I have been applying for many roles, and it has become a hard task to keep track of all the applications. Spreadsheets are

Kartik Pant 4 Feb 20, 2022
Keep track of popular & top rated movies and see movie details

Movies Keep track of popular & top rated movies and see movie details Features Keep track of popular & top rated movies See movie details Libraries Je

Amr Saraya 1 May 1, 2022
💰 Expense Manager is simple, intuitive, stable and modern app that is just designed for you.

Expense Manager is simple, intuitive, stable and modern app that is just designed for you. Everything you need at your fingertips to manage the expenditures and budgets.

Behzod Bozorboev 13 Oct 20, 2022