YACO Update History



  • Wifi monitoring did not switch off when the screen was switched off, causing unnecessary CPU load and thus battery. Was partially fixed in 1.8.1, now (as far as I know) completely


  • YACO crashed on devices without bluetooth device (thank you, Евгений!)


  • fast fix before the weekend: fixed crash that happened when the battery was below minimum when the device was switched on


  • internal version with Picture-in-Picture display in car mode, but it is not meant for that kind of usage and gets confused. Perhaps I will try later, it looks nice. Anyway, I don’t need the system’s implementation for that, so I can also skip the Oreo code and do some DIY job. At first, it looked like it could do the job, and I like to try new technologies.


  • added a thin space between numbers and the units in the GPS data, makes it better readable
  • prohibited crash in the configuration when going back (not reproducible, so I can only hope it helps, the user did not reply to my query what he did exactly)
  • when the phone’s display was off when the Wifi disconnected, there was still some code running that checked the Wifi data rate even if it was not connected any more using Wifi… nothing serious, but CPU waste.
  • fixed a rare crash (race condition) when the “mobile data per timespan” was used
  • todo: the “which also cares that the device does not start to sleep” of the car overlay does not work as expected, need to find a different way.


  • YACO did crash when a device without GPS was used (who would have expected someone would install it on a TV? ;)) Thank you, Jaromír, for the report! I apologize for 2 updates on the same day, but I like the users to be happy with as little problems as possible!


  • if a Wifi or Mobile connection disconnected while the screen was off, it could happen that there were two data rate items visible, or the “wrong” one
  • night filter is automatically removed in car mode (well you want to stay awake, don’t you?)
  • better vertical alignment of the item texts in a line
  • some fine alignment of the separators
  • on some devices (is it non-Oreo or not, cannot tell) the day of week did not update at midnight
  • replaced ellipses (when text length was limited) by a dot to use less space
  • refactored the inner workings from intents to interfaces that clients can hook to, resulting in much, much cleaner code. Found several bugs in the meantime, and unfortunately I’m sure I added new… the fate of software developers.
  • optimized CPU usage a bit, and
  • optimized memory footprint a HUGE amount (workaround for a bug in Android that caused YACO to lose lots of MB!)
  • reduced recyclable (temporary) memory consumption caused by logging even in the release version (and logging switched off)
  • experimental (clock and GPS speed only): partially transparent car mode overlay (which also cares that the device does not start to sleep)


  • if partially transparent background was selected: in landscape mode, the data connections did paint the background double, thus being darker (or lighter) than the rest (thank you, MVB (most valuable bugfinder) Bill 😉
  • sometimes the mobile datarate was not shown or updated correctly, and when switching between WiFi and Mobile, the items did become more and more
  • known bug: Oreo causes the YACO overlay to be gone in the morning, most likely due to some DOZE effects. Oh well. Not found the cause yet.

1.7.0: large update… the switch to Oreo caused a lot of bugs, sorry. Refactored some internal code to simplify it.

  • YACO now re-starts again after boot (my goodness – Google wanted to reduce CPU load on boot time, but forced people to create workarounds that actually do more!)
  • re-organized mobile items a bit: first the icon and the carrier/SSID, then the signal quality, then the activity items
  • the “data volume” item was not using the correct font
  • new notification icon and app icon – I hope you like it!
  • app shortcuts found due to Oreo in my S8 😉 and corrected/enabled
  • connected bluetooth devices always did show up
  • fixed bug in slider controls in recent Android versions
  • several parameter settings (unit systems for example) were only effective after disabling and re-enabling YACO
  • I put GPS info, Bluetooth items in the same line as the data activity, which is now a FlexView, so it can wrap if it needs to. And it does not paint anywhere except where items are, reduced hiding possible “important” data in the background
  • settings now correctly display the “back” arrow when it’s applicable
  • fixed a bug in red/blue filter in the morning, causing an endless loop


  • the new “below status bar” option did insert a black bar above the text – now it’s transparent
  • the new “below status bar” option did always align the items to the left
  • the signal strength icon did not paint when it was selected without percentage
  • possible crash when the “active devices” icon of the Always-On-Display was touched (only OREO? This used to work up to the update)
  • if there’s one of the supervised devies active, this is displayed in the status and notification bar



  • while I was at it: fixed problem of slider painting over itself (actually, two sliders on top of each other) – a customer reported the problem in ‘Personal Sunrise’, and now I was able to reproduce it in the Oreo Emulation Machine. Thanks, Walter!


  • fixed Notification Channels for Oreo. As I do not have an Oreo device (just the emulators), I am very thankful for any report about strange behavior or improvement suggestions!
  • fixed Oreo at all… ;( Too many “innocent” changes. Also, YACO placing on top not puts it below the standard icons of Oreo, thus the text is not readable any more. Time for a new Smartphone operating system that is less restrictive.
  • one thing still to do: the sliders do not paint correctly…
  • fixed possible crash when switching off the screen (thanks, Keith!)


  • never copy&paste code from the WWW without being tested thoroughly… the moon phase code did not result in the correct phases (1-2 days off). Nobody noticed? 😉 Possibly too many clouds in the last weeks 😉
  • fixed crash when data connection data rate was selected, but no other data like SSID (thanks, Roman)
  • fixed bug that showed “<no rights>” temporarily for a data connection although the permission was given
  • YACO now reacts to a broadcast that allows my “Personal Sunrise” app to switch off the blue filter for the alarm and the time after it
  • workaround for Nexus 7 bug displaying “NOT CHARGING” arrow instead of DISCHARGING.


  • added Week of year (localized or ISO compliant)
  • reduced configuration complexity by combining items and their formats (in standard items)


  • fixed a null pointer crash when the screen went off before the overlay was initialized (thank you, Jeremy!)
  • removed test code for weather provider – it makes no sense as displaying a weather forecast in 5 icons it not very informative. Saves 500 MB of code.


  • fixed a crash in a Sony device with a null pointer
  • the blue filter took a bit long to be set/unset (a miscalculation caused it to take 5 hours instead of 5 minutes… Duh! Well now I use 10 seconds to reduce CPU consumption)
  • should not display battery percentage -2.147.483.647 any more 😉


  • … and proguard in combination with code and resource shrinking does cause crashes on startup due to missing resources. Sigh sigh.


  • an issue of the Android Developer Studio could have caused devices with Android < 5 (Lollipop) to crash. Sigh.


  • Displays active devices on Always-on-Screen (Samsung) – very valuable as I think. Only those devices are shown that are switched on in the “active devices” section of the standard item group.


  • fixed red filter not switching on/off at sunset in DOZE mode
  • fixed signal strength display not appearing if it was selected without text


  • added ‘Moon Phase’ icon (so it’s some kind of “christmas edition”)
  • added ‘GPS state’ icon
  • fixed some small internal bugs


  • A blue filter (“red filter”?) for relaxing in the evening, fixed with sunrise/sundown times of your location. Not as good as the built-in ones (cannot be, unfortunately), but Samsung (S8 at least) it is more than imperfect as it needs an enabled GPS for the sunrise/set times – it DOES NOT remember the location!
  • used the profiler a bit and improved CPU load – less battery usage!
  • added small animations when it’s nice but does not use much CPU time


  • Had some time to check more of the app for Development Environment introduced bugs, and found some others:
  • At first start, some items were not displayed unless YACO was switched off and on once
  • Issues a hint now if there’s no corresponding connection if you change WiFi or mobile items, but their network is not active
  • Settings “state” did not reflect the current state any more
  • Used a new color picker – the old one was too slow and clumsy
  • … and a few more bugfixes.


  • Wifi activity icon did also add the USB activity (this is a limitation in Android if you have not given YACO the right to read usage stats – opt in to data stats once, then you are asked to give the permission, then set the data stats option to ‘none’ again)
  • Never allow Google to suggest a new Development Environment version: 1.6.1 crashed when the colors could have been chosen as the whole build process and some libraries did change unexpectedly.
  • some permission checks have not been triggered in the last version


  • clarifies some hints and function (someone was astonished to select some “mobile data” items which still did not appear – no wonder, he was connected using Wifi! The same the other way around…)
  • added fixed unit dimension for data rate – easy to miss it’s MB instead of GB. So a single unit can now be selected.
  • left/right layout did not work when “draw over whole background” was selected


  • bluetooth connectivity, Android >= 18: a simple icon in the “standard items” section, and/or a more detailed line with a list of connected devices (and their types, represented by icons)
  • Icon if the NFC adapter is enabled, Android >= 18
  • Icon if the Airplane Mode adapter is set
  • Icon is the “do not disturb” mode is active (and if, which mode it is), Android >= 23 (unfortunately)
  • internal improvement: most item keep states on re-layout, so setting options is more “seamless”
  • internal improvement: by putting all items in groups, code complexity was reduced and I have more flexibility for the future
  • the proximity sensor triggered action is now a move so that the contents of the items are still visible
  • added optional click sound to the power connection state change


  • proximity sensor support (delayed the process to become visible by a second, which leaves more time to read the contents below without finger on top)
  • fixed a crash in the service that happened at the update process, as last greeting of the old version
  • both signal strength bar scales immediately appear (if needed, with a question mark) when the item is chosen
  • improved configuration (slightly better structure, grouped items into logical groups, back arrow in the action bar)
  • improved permission check in the configuration
  • at first installation, the app did not show any items until a change was done in the settings – definitely unexpected behaviour
  • possibly improved carrier name detection (wait and see… beta!)
  • Configuration did not show up on at least my Android 4.4.1 tab
  • added “percentage” to the signal strength icon for more detailed information, uses tables separately for 2G, 3G and 4G signal strength values (GSM networks only), gives good impression about quality
  • signal strength icon sometimes showed a ‘?’ intermittently
  • signal strength icon has 4 bars (Androids too, with one bar for ‘no signal’, which makes no sense to me, so no highlighted bar == strength of 0)
  • proximity sensor auto-hide is now optionally as using a sensor consumes CPU time (1-2% on my S5 – does not reduce battery much, but it does), improved it to use less CPU load


sorry, 2 updates in a short time:

  • fixed bug (crash) in WiFi settings on some devices
  • global data rate setting was disabled when the up/download monitor was unchecked
  • As compensation, I added a nice feature: if you want to hide YACO temporarily, just put your hand above the proximity sensor (top of the phone). It will hide, and reappear if you remove the hand 😉


  • Finished Connection data, added global data consumption and other goodies, tethering and VPN detection, … The work is worth it!
  • Improved the menu structure
  • Added an action (vibration and/or LED lighting if the device is connected or disconnected). Sounds superfluous, but when the QI wireless station is small and it happens that the device is not 100% correct on top of it that it it not being loaded. Now I feel when it’s correct.
  • On my DualSIM phone, it looks like the following – and I do not have all features enabled…:(the date format is fixed in German format, so it’s not in the English form although the language chosen for the shot is English)


  • Added Connection data (WiFi and Mobile connection):
  • Mobile: Type of Connection (EDGE, HSDPA, …), Roaming State, Provider Name. As I  own a DualSim device, this is also supported (Android >= 22).
  • WiFi: SSID, IPV4 address, connection speed and frequency


  • autumn project: internally refactored drawing code to make it easier for me in the future – no layout calculation any more, done by Android
  • while sitting in a plane flying home (thanks EasyJet ;)), I missed permanent GPS information, so I added a line with optional GPS information (height, speed, satellites used in fix, and climb/sink rate).Unfortunately now YACO needs GPS access permission, but this only really disturbs when installing on pre-Android 6-devices, otherwise it is queried when one of the new options is activated, and does not irritate the user when he wants to install YACO.

    • nice feature is that the whole GPS line disappears if the GPS is switched off, and reappears when GPS is active, so it does not need any screen area or CPU/battery resource if GPS is not active


      • made listing the fonts of the system (why does Google not offer an official way for such a “standard” task of an operating system?!) safer, a file that was assumed to be present was not – YACO did crash at a customer’s device (thanks, Bill)


  • added font selection (thanks Marco, great idea)
  • added distance from frame (thanks again for the idea)


    • fixed layout problems if the character count or widths changed (from 9 to 10 o’clock or such) – thank you, K, for your patience finding that problem!


  • fixed crash if the Accessibilty service did report a NULL package (thank you, Jeremy, for the report)


      • battery information starts blinking when some issues occur:
        – if the battery state is below minimum (if check is enabled) or
        – if the battery is bad, overheated or the voltage is too high (then a sign “!!” is appended)
      • the battery load arrow has more states: it is diagonal on normal load/unload and vertical (like the current one) when loaded with more than 500 mA or unloaded with more than 750 mA – if the device supports this information correctly. And the diagonal arrow is easier to read. (Only Android >= Marshmellow due to the fact that the diagonal arrows are not defined in the font at least in my Android 4.4 device)


  • Time format can optionally be forced to 12 or 24 hour format (no am/pm, I guess that’s clear)
  • Battery state can optionally be given a threshold value – below that value, the text is painted in red


  • supports Date and Day of Week (a suggestion of a Japanese I cannot read the name ;-))
  • battery load state is now an arrow instead of a ‘+’ or ‘-‘.
  • reduced memory and CPU usage by caching and only updating the value items when needed
  • new and nicer config page
  • ENJOY… I hope that’s enough until late in autumn (summer is better to be on the outside than to sit in front of the screen)


  • Support for Nougat’s new notification entry layout
  • German Translation
  • Auto-Ducking did wait for 60000 seconds instead of 60


  • ‘seconds’ did not count up


  • detects (user) changes in time format, time zone, time value – immediately reflects the changed option.
  • fixed time format error when the time format was a 12-hour time format and YACO was started at an 12-hour value < 10: result was missing space to the battery symbol (or non-centered text) when the 12-hour value of the hour became >= 10. Thanks Kota for the bug report!


  • added an option to disable the launcher menu. This is not as easy as it sounds due to Android’s activity stack… Suggestion of Roman, thank you.


  • … and updated the starter “menu” to FloatingActionButtons, which is more international (no texts) and fits much better to material style (and the app’s colors) than buttons. Should be self-explaining.


  • the new icon was not accepted as I thought, as users and some people I asked told me. Well now to a compromise, readable on black and white screens
  • it also fits perfectly into the drop-down list of the notifications
  • needed to use a new color picker as the old one did not calculate the layout correctly at one customer (thank you again, Bill)


  • Internal: updated to Build SDK 25 (Android 7) – cross your fingers! One of the advantages: the needed permanent, but unnecessary icon in the notification bar is not visible any more.
  • YACO temporarily disables itself for a minute when the accessibility permission page is opened from YACO’s “Info” settings page to ease the configuration…
  • You can use the Intents “com.chk.permanentclock.DUCK_DISABLE” and “com.chk.permanentclock.DUCK_ENABLE” to show/hide the overlay without changing the active state permanently. These are the same intents used internally for the ducking if a permission dialog pops.
  • You can use the Intents “com.chk.permanentclock.DISABLE” and “com.chk.permanentclock.ENABLE” to switch the overlay on and off permanently, just like the switch button in the settings
  • Uses Material Design color for the icon (the one before is still preferred by my daughter…)
  • Showing the app’s icon alpha-blended in the background of the menu reduces contrast problems on home screens with problematic background

1.1.3 (release 115: 1.1.3a)

  • Popup menu from launcher shortcut to call the Settings or switch the overlay on or off (permanently) – thank you, Bill, for the idea!
  • Added dummy activities to (temporarily = “duck”) the overlay from external applications (i.e. launcher) without changing the mode, that is, YACO stays active (see ‘ducking’ intents in 1.1.4)!
  • Changed the icon to something more professionally looking 😉

If there’s a Beta version available, here’s the link: https://play.google.com/apps/testing/com.chk.permanentclock