{"id":1329,"date":"2016-12-28T20:39:37","date_gmt":"2016-12-28T19:39:37","guid":{"rendered":"https:\/\/android.chk.digital\/?page_id=1329"},"modified":"2018-01-19T08:39:17","modified_gmt":"2018-01-19T07:39:17","slug":"","status":"publish","type":"page","link":"https:\/\/android.chk.digital\/de\/yaco\/","title":{"rendered":"Untitled","raw":""},"content":{"rendered":"","protected":false,"raw":""},"excerpt":{"rendered":"","protected":false,"raw":""},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_en_post_content":"<h2>YACO - Yet Another [Clock] Overlay<\/h2>\r\nWhen I watch streams\u00a0or use any other fullscreen app, I miss the clock and - as the tablet is a few years old now - also the battery state. So I searched for an app which \"overlays\" the screen with a transparent window and a small area with the information I wanted.\r\n\r\nThere are some overlay apps around, of course. But too complicated (for my purpose), some randomly crash or disappear, or use more CPU load than I would like to give them. So it was: DO IT YOURSELF. Trivial, minimal invasive. Only a few options. <em>(Well that was the original intention, until someone suggested to include network info, which opened the app to a flood of information)<\/em>\r\n\r\nBasically, it's simple.\r\n\r\n<strong>It should be.<\/strong>\r\n\r\nBut as soon as you think something like this, you notice it's non-trivial. Good intentions (of Google's\u00a0Android developers) are the stumbling stones in the way (*). The (transparent) overlay was no problem, but as soon as <em>YACO<\/em> ran under Android 5 (Marshmallow) and higher, and an app asked for\u00a0important permissions, there was a window \"screen overlay detected\" or such, without mentioning which app caused the overlay. Numerous Web pages are written around this subject, having no solution.\r\n\r\n<img class=\"wp-image-1336 size-medium alignleft\" src=\"https:\/\/android.chk.digital\/wp-content\/uploads\/2016\/12\/Clipboard01-173x300.jpg\" width=\"173\" height=\"300\" \/>Duh. A good idea, but it should tell the user <strong>WHICH APP<\/strong>\u00a0is causing this. Otherwise, when he finds out (by uninstalling\/disabling the app or searching the web), he'll be angry at the developer, who is perfectly innocent. The first time it appeared it took me some time that it was my own app (though I did not scorn at myself...).\r\n\r\nMy solution: <em>YACO<\/em> has a notification tray entry with which you can disable the screen overlay for 5 minutes. So once you see that \"Screen overlay detected\" message, just open the navigation drawer, disable <em>YACO<\/em> and continue. <em>YACO<\/em> will re-appear after a few minutes.\r\n\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\nVersion 1.1 has included a new feature: you can enable\u00a0the app as 'accessibility' app, which means it can monitor the activities and switch off the overlay so that it does not block the permission confirmations. The downside is that you need to trust me not to use the data I could collect (monitor active package), but I promise I do not use it except to disable or enable the overlay window, and that information is neither stored nor sent anywhere (except in the log file for program processing information that you can send me in case of a program malfunction).\r\n\r\n(*) I have my share with my Kitty Timer app and Personal Sunrise Alarm Clock. Both apps did or do suffer due to limitations the Android developers add to fight system (ab)usage with timers in order\u00a0to reduce battery usage.\r\n\r\n<hr \/>\r\n\r\n<strong>The App\u00b4s Evolution<\/strong>\r\n\r\nCurrently, the app has much more optional items.\r\n\r\na) when I flew back from this year's vacation, I missed permanent <strong>GPS<\/strong> info (number of satellites for fix, height, speed, climb-\/sink-rate) in Maps. So I added this... Once GPS is available (and the GPS data to be displayed), a new line appears with that data (all items separately selectable)\r\n\r\nb) newest items are connection info of <strong>WiFi<\/strong> and <strong>mobile<\/strong> connection:\r\n<ul>\r\n \t<li><strong>WiFi<\/strong>: Up-\/download Activity arrows, VPN Icon, SSID, frequency, connection speed (not internet speed!), signal strength,\u00a0Up-\/download Activity arrows<\/li>\r\n \t<li><strong>Mobile<\/strong>: Up-\/download Activity arrows, VPN Icon, Tethering Icon, carrier name, ROAMing hint (***), connection type (available formats: explicitly like 'HSPAP', shortened 'H+', generation 'G3') signal strength (dBm or 2 iconic ways)<\/li>\r\n \t<li><strong>both<\/strong>: up\/download rates (per second, minute, hour)<\/li>\r\n<\/ul>\r\nAnd, in addition, on DualSIM devices (&gt;= Android 5.1), also\r\n<ul>\r\n \t<li><strong>Voice<\/strong>: Carrier name, signal strength, roaming warning (***).<\/li>\r\n<\/ul>\r\nc) and Bluetooth info: connected items with their type.\r\n\r\n(***) optionally blinking for a few seconds if it changes\r\n\r\n<hr \/>\r\n\r\n<h3>\u00a0Some experiences to share:<\/h3>\r\n<ul>\r\n \t<li>Why oh why are the most interesting functions hidden in Android? Every (correct and thorough) StackOverflow comment on \"how to get the signal strength\" is about 10 Java lines minimum (\"if isGSM() bla else blubb\"). And just working around the fact that Google does exactly that in the Android sources, just not accessible without reflection! Sigh. Could save a lot of people a lot of time experimenting.<\/li>\r\n \t<li>DualSIM support in Android 5.1? Only using Java reflection, and a lot of studying of the Android source code. Cross your fingers...<\/li>\r\n \t<li>The Android signal icon is hopefully optimistic (tweaked a bit to make even weak signals shine bright): every signal above a signal level of 12 of 31 has full bar count! Is that realistic? Never. So YACO has a \"realistic\" signal level icon indicator to offer.<\/li>\r\n \t<li>And today I got an (automatic) mail from Google telling me that apps that declare usage of the ACCESSIBILITY SERVICE that I use for the auto-hide feature is reserved for use only to support disabled people. Well let's see if YACO is thrown out of the Play Store for mis-use of the Accessibility service.<\/li>\r\n<\/ul>\r\n<a href=\"https:\/\/android.chk.digital\/yaco\/yaco-update-history\/\">YACO Update History<\/a>\r\n\r\n<hr \/>\r\n\r\n<h3>\u00a0Used OpenSource or other licenses:<\/h3>\r\n<ul>\r\n \t<li>Click Sounds by <em>Mike Koenig (from <a href=\"http:\/\/soundbible.com\">http:\/\/soundbible.com<\/a>)<\/em><\/li>\r\n \t<li>href=\"http:\/\/zavoloklom.github.io\/material-design-iconic-font\/index.html\"&gt;<strong>Material Design<\/strong>\u00a0Iconic Font (Open Font License) by\u00a0<a href=\"http:\/\/twitter.com\/zavoloklom\">Sergey Kupletsky<\/a><\/li>\r\n \t<li>... a lot of ideas and help found on the invaluable <a href=\"https:\/\/stackoverflow.com\">stackoverflow.com<\/a> pages<\/li>\r\n<\/ul>\r\n&nbsp;","_en_post_name":"yaco","_en_post_excerpt":"","_en_post_title":"YACO","_de_post_content":"","_de_post_name":"","_de_post_excerpt":"","_de_post_title":"","edit_language":"de","footnotes":""},"class_list":["post-1329","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/pages\/1329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/comments?post=1329"}],"version-history":[{"count":25,"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/pages\/1329\/revisions"}],"predecessor-version":[{"id":1870,"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/pages\/1329\/revisions\/1870"}],"wp:attachment":[{"href":"https:\/\/android.chk.digital\/de\/wp-json\/wp\/v2\/media?parent=1329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}