Track Work Time – Version History

Here you can get information about what changed in which version. If this is not enough for you, feel free to access the Git commits!



  • fix: make sure the report selection is not empty (which may lead to a crash)
  • fix: prevent ungranted or removed permissions from crashing the app via a service running in the background (but disable the service and inform the user via a toast message)
  • include the permissions granted at crash time into the crash report (which the user may choose to send, this is not done automatically)



  • update widget design (contributed by Hadrien Bècle)
  • fix restore introducing a different backup directory (in the middle of the restore process!) so the backup files can’t be found anymore
  • while editing/adding events, prevent empty task selection (which would lead to an error)
  • set target to API level 34 (Android 14) and fix some things which broke because of it (e.g. foreground location service)



  • fix wrong time calculation after a day’s custom target work time was deleted
  • fix error after changing the backup target directory (the newly selected directory was only active after a complete app restart, now it is used immediately after selecting it)
  • make disabled tasks easily identifyable in the task list
  • initiate a backup before doing a restore, so an erroneous restore is always reversible (special files suffixed with the current timestamp are used as target for this “hidden” backup)
  • log all visible Wi-Fi networks if the user activates the corresponding option (this is disabled by default, and the log is saved on the device itself) – this may be handy for debugging issues with automatic clock-in via Wi-Fi



  • fix automatic backup (don’t use library anymore, it seems to fail silently on some devices)
  • fix weird animation in event list (contributed by WildOrangutan)
  • show date coloring also for future days/weeks
  • open the app when quick settings tile is long-pressed (instead of showing the system settings for the app)
  • make it clear that questions and feedback are possible in English or German



  • fix possible crash when the settings activity is opened again and there is a saved state
  • fix possible crash when a task wasn’t found by its ID
  • add in-app documentation for the newly available broadcast intents



  • target Android 13 and request now additionally required “notification permission” (only if the app runs on Android 13)
  • generate unique report filenames (helps when archiving the report files)
  • publish broadcast intents when events are created, updated or deleted
    • using these broadcasts, other apps can do something based on events in TWT – see main page for details
  • don’t allow the last task from the list to be deleted (events need a task)
  • correctly display the restored tasks after a backup was restored
  • fix displaying flexi time when its value is exactly 00:00
  • fix calculation of exported time frame (in some cases, a day too much was exported)
  • fix raw export of changed daily targets



  • fix problem with data access and backup mechanism (initialization was not working correctly) – this had the effect that for some users, no working times were displayed anymore although all was still there in the app’s database, and the backup mechanism didn’t work anymore (neither backup nor restore)



  • fix possible problem when using the quick settings tile
  • fix possible problem when pausing/resuming the app while the “edit event” screen is open
  • fix reports: display the correct time when clocked in at report generation time
  • fix crash when no file manager app was found (for selecting a directory)
  • truncate times to whole minutes when reading from the database so the reports show the same sums as the main table (but the seconds are still preserved in the database so a future enhancement can make use of them)
  • update targeted version to Android 12L (API version 32)
  • add option to stop updating the persistent notification while clocked in (helps some users who reported “jumping” notifications but reduces the amount of information in the notification if activated)
  • add menu item to reselect the data directory
  • don’t display working times of “00:00 – 23:59” in future weeks while clocked in



  • add possibility to jump to other dates/weeks in the main table by tapping on the week number in the upper left corner (previously the user had to swipe often)
  • fix reports: in some cases, data from old reports was included in newly generated ones, possibly corrupting the new CSV file



  • simplify excluding the app from battery optimization so it can operate in the background (only two taps instead of browsing through all apps in the system settings and manually toggling battery optimization)
  • fix: if the “edit event” activity doesn’t know which event or even which week is meant, go to main activity (was a problem sometimes when switching between apps while this screen was open)



  • add report for changed target times
  • add possibility to create periods of clocked time in event list (in addition to creating single clock-in or clock-out events)
  • add launcher shortcuts for clocking in and out
  • add quick settings tile for clocking in and out
  • add option to also display the time amounts in decimal format inside the main table
  • add link to widget: open app when touching the widget on the “Worked: …” text
  • add option for length of check interval for automatic clock-in/clock-out by Wi-Fi (1-60 minutes)
  • add option for Pebble notification instead of automatically querying for a connected Pebble (which was not working correctly when not using the original Pebble app but e.g. GadgetBridge)
  • remove two libraries handling dates and times (replacing it with a standard mechanism)
  • fix main table: also show the whole week’s flexi time on Monday (was only shown beginning on Tuesday)
  • fix memory leaks
  • fix problem: update UI immediately on locale change in Android settings (an app restart was necessary before)
  • fix problem when network (cell tower) location was not available on Android 12+
  • fix problem when the “edit event” screen was active and the app was put into the background and resumed later



  • offer multi-insert also for daily target times – this way, vacation/holiday periods can be managed much easier
  • also backup and restore the app’s options (shared preferences)
  • optimize permission granting workflow, especially for newer Android versions
  • fix notification jumping around in the status bar, now the ordering of notifications should be stable (at least for most users)
  • fix some smaller bugs which were reported by users (thank you!)
  • update dependencies



  • handle the case when the user revokes the app’s access to the shared storage directory in Android’s system settings: the user is asked again when the directory access is needed again
  • support incoming intent action “org.zephyrsoft.trackworktime.StatusRequest” for fetching current status: is the user clocked in, and if so, with which task and how much time remains for today?
    • incoming intent has to have the extra “reply_intent” (this action will be used for the broadcast of the status data)
    • outgoing intent has the extras status (“clocked-in” or “clocked-out”), minutes-remaining, current-task-name, current-task-id (the latter two only if currently clocked in)
    • more information on the app’s homepage
  • revert notification icon to briefcase shape (has become a circle accidentally because the launcher icon which was used for both launcher and notification has a round shape now)



  • major overhaul of data storage mechanism: external storage permission is not needed anymore, instead Android’s Storage Access Framework is used
    • this requires the user to explicitly select a directory where TWT’s data should be stored (sorry for the dialog after the update)
    • if the user doesn’t want to select a directory, the app is still usable, but any functionality accessing the storage re-triggers the dialog asking for a directory
    • the log files stay in the app’s private storage area and can be exported using a new menu item (this was contributed by Peter Mandeljc)
    • safety note: the daily automatic backups can only be created if a directory is allowed for the app – if not, no automatic backups will be made
  • make report screen remember user selections (contributed by Peter Mandeljc)
  • add in-app preview for generated reports (contributed by Peter Mandeljc)
  • mark days with different target time kinds (so apparently wrong calculations can be cleared up easier)
    • green = regular non-working days (this means days which are not marked as working days in the options)
    • light blue / turquoise = holiday / vacation / manually marked non-working days
    • orange = changed target time
  • fix the remaining work time displayed in the notification
  • enable navigation inside the app using the “back” arrow in the top bar (but the device’s “back” button still works, too)
  • add a new round icon and some more icons in the app’s menu
  • make clock-in by third-party apps use default task if none was explicitly selected (contributed by Peter Mandeljc)
  • add icons on week navigation buttons (contributed by Peter Mandeljc)
  • fix handling of negative initial flexi time (negative amounts were counted as positive)
  • fix backup/restore mechanism for the case when no text was given for targets
  • fix crash when using GadgetBridge instead of orginal Pebble app
  • fix some bugs which were reported by anonymous users using the app’s built-in mechanism (thank you, it helps if you report problems!)



  • fix crash when deleting many events at once
  • fix crash when a backup was imported which has been created by version 1.0.x of the app
  • fix crash in combination with the widget (contributed by dliw)
  • fix calculation with multiple time zones (contributed by dliw)
  • add section to privacy policy explicitly describing the usage of location data
  • internal optimizations



  • add permission ACCESS_FINE_LOCATION which is required by Android 10+ for automatic clock-in by Wi-Fi (the app’s functionality is unchanged: it doesn’t access fine-grained location data – but the names of the visible Wi-Fi networks can’t be fetched without this permission)



  • include the text of the privacy policy directly into the app



  • better description of & asking for necessary permissions (add explanation dialog before permissions are requested)
  • rename “About” menu item to “About / Help”
  • update about / help text (add direct link to privacy policy)



  • rebuild permission management for Android 10 and newer
  • increase logging in case of errors
  • update help text (add section about backup options)



  • fix crash on resume when app was previously paused with event list open
  • fix crash when persistent notification could not determine clock-out time
  • update build system



  • fix writing files (e.g. logs or backups) under Android 11
  • update help text



  • fix crash when “remove restrictions” was used on newer Android versions
  • fix time assignment in reports (contributed by dliw)
  • migrate build system from Travis-CI to Github Actions



  • fix main table which didn’t display any data when flexi time was disabled (contributed by dliw)
  • fix reports which didn’t work due to automated code alteration (contributed by dliw)



  • FLEX event type replaced by per-day target values (adjustable by tapping on the dates) => database scheme change (contributed by dliw)
  • code base cleaned up, removed deprecated functions, added view binding, replaced date4j by ThreeTenABP, migrated to AndroidX (contributed by dliw)
  • added navigation drawer on the left side (contributed by dliw)
  • restored possible top buttons can be activated by new preference, default off (contributed by dliw)
  • added widget which can start/stop tracking and display current time amount (contributed by WildOrangutan)
  • added automatic flexi time reset after configurable time periods (contributed by WildOrangutan)
  • refactored and added tests (contributed by WildOrangutan)
  • fixed automatic daily backup so it is also executed when the app is not opened for a longer time
  • updated inline help & about page
  • internal improvements
  • dependency updates



  • new event type FLEX to change/specify the expected working time on a daily basis (contributed by Dirk Braunschweiger)
  • week swiping instead of old-fashioned buttons for navigation in time (contributed by Peter Rosenberg)
  • enhanced, more reliable WiFi based tracking (contributed by Peter Rosenberg)
  • fix notification sound going off periodically (contributed by Peter Rosenberg)
  • restructured report screen (contributed by Peter Rosenberg)
  • new report: times by task per day (contributed by Peter Rosenberg)
  • dependency updates



  • fix notification actions on Oreo devices (contibuted by Peter Rosenberg)
  • fix wifi tracking interruptions (contibuted by Peter Rosenberg)
  • dependency updates



  • fix crash on permission request in some circumstances
  • fix crash on sending logs (Android 8+)
  • fix problem setting the week’s total (sum can’t be negative)



  • repair the previously forgotten reports for Android Nougat and newer (sorry!)
  • fix automatic clock-in and clock-out via location and WiFi on Android Oreo and newer – there is a persistent notification now, but it can be disabled if you find it annoying: swipe it to the right and hold it there shortly, then tap on the cog symbol and disable it
  • fix a shortcoming of a library used by TWT for date and time calculations



  • automatic backup (on device) every 24 hours – so users still have a copy of their data even if the app does not start properly
  • report for all data (not just the current or the last week/month/year – feature request)
  • repair reports for Android Nougat and newer (Google’s change in Android required a change in the app)
  • transmit crash reports via secure connection to the developer (if the user accepts it, nothing is sent automatically)



  • fix a bug reported by Vili Seppänen (related to being clocked in over midnight)



  • graphically improved look (contibuted by Peter Rosenberg)
  • Pebble notifications (if a Pebble smartwatch is connected to the phone)


  • no new visible features, but new versions of the libraries used internally


  • added action buttons to the notification (on Android 4.1+) to start a new clocking period or clock out without the need to switch to the main TWT app
  • switched to flat design (partly contributed by Christoph Loewe)
  • show overtime for the current day in notification when working time is over
  • workaround for bug in Android 5.0 (technical details)


  • backup to SD card + backup to Google servers if the user enables it (contibuted by Peter Rosenberg)
  • new option to count down to 0:00 flexi time on every work day and not only on the last work day of the week (partly contibuted by Peter Rosenberg)
  • new option to only generate events when the first tracking method clocks in and when the last tracking method clocks out (so enabling more than one automatic tracking method makes sense)


  • fix background service crashes in case a user has deleted all tasks


  • changed list item layout of spinners (contributed by Peter Rosenberg)
  • replaced spinner for type with radio buttons in event edit dialog (contributed by Peter Rosenberg)
  • changed list item layout of event list (contributed by Peter Rosenberg)
  • centered time picker of event horizontally (contributed by Peter Rosenberg)
  • fix event editor crash in case a user has deleted all tasks


  • added reporting module for: all events, times per task, times per task (subdivided per week), times per task (subdivided per month)
  • split the one “clock in / clock out” button into two for more intuitive handling
  • added ability to preselect a default task in main screen and event editor
  • added week navigation buttons, removed swipe support – “today” button contributed by Christoph Loewe
  • added option to include flexi overtime in time calculation on the week’s last working day
  • fixed displaying times for simple configurations (without flexi time)
  • fixed a bug in the event editor


  • third-party apps like Llama or Tasker can now trigger clock-in and clock-out events in TWT (see main page to find out how it works)
  • new menu option: insert default times (to manage flexi time correctly for holidays and vacation)


  • fix possible crash when there are no events in the past


  • fix crash when wi-fi manager returns nothing (should not happen according the Google’s documentation, but it does)
  • fix crash when a non-ending decimal fraction was the result of the total work time calculation
  • fix time calculation for future periods (e.g. a planned vacation)


  • new tracking method: automatically clock in when a specified wi-fi network is available – contributed by Christoph Loewe
  • new icons – contributed by Anja Eberhardt
  • new option: block location-based events before/after already existing events (to prevent repeated events when traveling from or to work)
  • minor bug fixes


  • added the possibility to use the current device position as settings for the work place location
  • be more fault-tolerant with user input


  • execute logical checks on app start and disable illegal option sections (so there are no option constellations are left that went through unchecked before)
  • allow also periods as separator (and not only colons) in time-valued options


  • don’t vibrate on location-based events when the phone is muted
  • check options for logical inconsistencies (like auto-pause end is before auto-pause start)
  • added an about dialog
  • correct the initial start activity when coming from the home screen or from the notification: directly open the main activity and skip e.g. the event list which may have been still open


  • fixed a crash when the auto-pause feature was enabled, but no start and end times were provided


  • a problem in the broadcast receiver should not cause the whole application to crash


  • fixed a problem with the event list context menu


  • week day separators appear in event list
  • event list starts scrolled to the bottom
  • less blurred notification icon


  • first version released to the public