Version History


  • On some devices, the provider name was just an string with spaces. Now this is detected and the name fetched otherwise.


  • The up/download data rates are available as 2-line items (with a half-height font). Neat. Thanks Hadogen.


  • Sunrise/sunset items optimized (using less space)
  • On phones without items of (mobile) connections, a phone symbol was shown when GPS was enabled


  • “external memory” now correctly displays values of the SDCard on Samsung devices
  • added sunrise and sunset times to the GPS items (needs GPS, of course)


  • fast fix – when a mem item was selected and then deselected, YACO did disappear


  • added free memory for internal (“i..”) and external (“x..”) memory (thanks Tim for the idea)


  • when changing the text color, some of the drawings – the cached ones – did not change the color up to the next layout update (yeah, Bill again 😉


  • removed one exception logging as it might contribute to a startup exception on Android 8 due to a timeout that is too short (yeah, Bill)


  • workaround for unexpected crash in NetworkStatsManager query – can just catch the exception


  • fixed a crash when switching screen off at the same time when the network changed


  • added GPS coordinate item with a lot of different formats (build 282, thanks Stefan)
  • WiFi data rate displayed “<no rights>” if there was no mobile item chosen (build 283, thanks Christian)
  • even the inactive SIM’s items were displayed not caring about the switch setting (build 283)
  • Car Mode: the red filter is disabled while in Car Mode (build 284)
  • Car Mode: added a “direction” control showing you the direction you drive (build 284)
  • removed VPN icon from mobile connection (makes no sense) (build 285)
  • improved ‘remaining time’ icon by creating two-picture icons (charge till full/discharge till empty) by combining the hourglass and an arrow. I hope it is not too small… (build 285)… removed this – it is too small 😉 (build 286)
  • added an option to put the signal strength indicator at the start of the connection items (after the separator, but before the SSID/carrier name) – a more harmonic look (build 287)


  • sometimes, YACO still took a lot of CPU resources as it still hooked data activity even if the phone was switched off. Still testing on the reliability of the fix
  • remaining time shorter: instead of “1d11h” it displays “1½d” etc, which takes one char less and – as the whole value is a very rough estimation – about as exact 😉
  • time estimation for charging was plain wrong


  • Car mode by Bluetooth device did not force the screen to stay on
  • added an option so that the data rate display does not auto-hide if there’s no traffic (thanks Hadogei)
  • moved the Dual-SIM-only function “display if unused” to the correct place, it was under the “data rate” subcategory, to which it does not belong, so it was easy to misunderstand its purpose
  • some more care about (not) calling functions that might not exist due to missing hardware or wrong OS version


  • Supports user defined format string for date/time/weekday/… (SimpleDateTime format string) – thanks Hadogei
  • And – as my car is a wee bit old (28 years…) and does not support Android Car Mode – I added the feature that the Car Mode of YACO is started when a configurable device (in my case the car radio) is connected via Bluetooth (of course, the radio is not as old as the car ;))
  • And the alias name of a bluetooth devices is used instead of the device name if the user chose one.
  • And an embarassing bug: the midnight alarm was only scheduled one (as consequence of the fact that Android does not allow repeating alarm events that are exact). Sorry, Rick.


  • The Voice  SIM (changing very rarely) is now ensured to be first in order, so (on Dual SIM) followed by data SIM or WiFi. Makes more sense that way
  • Midnight alarm was not triggered, so devices without being switched off and on did not change the date, week-of-year or weekday (thank you, Rick! Welcome to the hall of fame(ous bugfinders))
  • for data usage, reduced the space between the ∑ and the number to a thin space


  • The Wifi activity indicator just flashed, that was of course not intended – it should stay visible for at least a second
  • Optimized memory usage growth by caching the signal strength icons
  • Reduced item size of signal strength indicator by offering a single vertical bar as option
  • Reduced item size of connection type indicator by reducing padding
  • Removed the ugly separator between connection items (someone misses that dotted line?) by some space (at least if the connection type indicator is active), looks nicer and more “grouped”
  • WiFi signal strength was not updated reliably


  • fixed crash if “Show airplane mode icon” is selected, but the READ_PHONE_STATE permission not given. Thank you, Aaron!


  • fixes and extensions to the “estimated remaining charge/discharge time”


  • fixed crash due to missing READ_PHONE permission
  • in Android < 5.0.2 the items were not visible after startup, selecting and deselecting an item was needed
  • feature: the plug state is now visible in addition to the charge state for a few seconds, so the charge state immediately changes to “charging” when the plug is inserted


  • Dual SIM: option to display an “inactive” SIM card – this allows to monitor the signal strength of the second SIM and to evaluate whether switching the SIM would improve the data connection quality.
  • option to display an estimated remaining time (for charging: time remaining to fully charged battery, for discharging: to an empty battery). This is estimated for the last 5 percents of battery charge status, so it is a very rough estimate – but an app without root rights has no chance to read the values for a better estimation (thanks, Bill, for the idea!)
  • fixed a crash when GPS items were selected, but not bluetooth items (thank you Justin)
  • fixed a rare crash (race condition) in the Telephony manager – (thank you, Susanne)


  • 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: