[APP][2021.03.02] Holey Light - Samsung/Pixel Notification LED Emulator [v1.00]

Search This thread

faisalis10

Senior Member
Mar 26, 2012
333
64
Kaduna
Anyone noticing huge battery drain with holey light on one ui 2.1

Holey Light is working just fine for me on my S10+ One UI V2.1 (just updated this morning & Factory Reset) - No issues with the screen On or Off.


Sent from my Galaxy S10+ using XDA Labs

---------- Post added at 09:49 PM ---------- Previous post was at 09:08 PM ----------


You just updated to 2.1 today right?
It's probably way too early to get a sense of the battery usage on a new Android Version - Give it a few days & if you don't want to Factory Reset (I ALWAYS do with a new Android Version) - At least Boot into Recovery & Wipe Cache.


Sent from my Galaxy S10+ using XDA Labs

Nope i didn't update today. I updated like last week. But yesterday i tempered with the settings a little bit. So i noticed huge battery drain. I deleted and re-installed. I'll notice how it goes
 
Last edited:

shaggyskunk

Recognized Contributor
Nov 22, 2011
19,406
15,793
IDK
Nope i didn't update today. I updated like last week. But yesterday i tempered with the settings a little bit. So i noticed huge battery drain. I deleted and re-installed. I'll notice how it goes

Thought you were in Canada?
But yes if you updated to 2.1 - You should at least Boot into Recovery & Wipe Cache - But I always Factory Reset after any Android version update & I've never had any issues.

Sent from my Galaxy S10+ using XDA Labs
 

faisalis10

Senior Member
Mar 26, 2012
333
64
Kaduna
Thought you were in Canada?
But yes if you updated to 2.1 - You should at least Boot into Recovery & Wipe Cache - But I always Factory Reset after any Android version update & I've never had any issues.

Sent from my Galaxy S10+ using XDA Labs

I used to be in Canada. But i moved. Forgot to change location. I just cleared cache. I don't want to format. Don't want to go through the stress of re-installing my stuff. Thanks
 

shaggyskunk

Recognized Contributor
Nov 22, 2011
19,406
15,793
IDK
I have to admit that I should read more carefully. I have launch one more time the configuration wizard and now I have what I have expected, just as before... sorry to have bothered you with that.

No worries - Great that you have it sorted out ??

Sent from my Galaxy S10+ using XDA Labs
 

zgrieger

Member
Jun 6, 2010
10
1
Anybody having issues with the light being dimmed while the screen is off? I have my text notifications set to notify bright white, but when I get them, they're barely visible until I wake the phone up.
 

audio75

Member
Jan 3, 2010
5
1
Wanted to share my findings, it cost me a little bit of my night so, here goes... I have an S10+, smg975u1 with Android10-2.1. I am running Holey 0.67
I have a Tasker gesture setup so I don't have to press my power button to on/off my screen. Due to this gesture/event, my Holey started not going to AOD blanked with only notifications. I suspect this is caused by the newest Android security update which was pushed to me. So anyway, I lost my blank AOD, and had to setup a workaround:
I didn't do anything with Holey, didn't clear caches, data, etc. What I did was to use Tasker to setup a task which allowed my usual gesture (shake) to trigger the event, which per Tasker (for any who want to retrace my same steps)
task 1, "Turn Off" (Dim OFF, Lock OFF) the display
I then found it setting my screen timeout to 1sec
Created task 2 in the same event, it waits 2sec then sets the Display Timeout to my desired 2min,0sec.
I'm back to a happy place with this workaround.
(Oh and yes, I had to move the notification -5.50px horizontally to center it over the front camera)

UPDATE: This strangely didn't last. I got AlwaysOnEdge, paid the nominal fee. It works, no fuss. I will return to CF's Holey Light (would happily pay for it!) because HL is easier to setup colors for example.
 
Last edited:
  • Like
Reactions: Keule-Tm

jfk_77

Member
Nov 12, 2019
18
1
Is this app supposed to be working under LineageOS 17.1 (Android 10) or is it dependent on Samsung framework ?

I believe there is a conflit with AOD. The Lineage 17.1 build I got doesn't have the options required by Holey Light, the app keeps asking me to set those unknown values. As a result I can't make it work when my screen is off, namely the whole purpose to get this.

Any help/update would be welcome.
 

fishnetfancy

Member
Jun 25, 2020
33
10
I believe there is a conflit with AOD. The Lineage 17.1 build I got doesn't have the options required by Holey Light, the app keeps asking me to set those unknown values. As a result I can't make it work when my screen is off, namely the whole purpose to get this.

Any help/update would be welcome.
I am also using LOS 17.1 (What A Wurst) and can't even get the installation wizard to finish. It reports the following error:

Holey Light does not appear to support your device. If you are using an S10 variant please report this code to the XDA thread:

Code:
 [ unknown ]
Edit: I can get the installation wizard to complete by leaving off the option to display notifications when the screen is off. All options can be set and the app can be configured. It seems the only problem with LOS is the missing AOD entry in System Setttings.
 
Last edited:

Archydos

New member
Sep 19, 2014
2
0
Suddenly the notification light has shifted to the right. Part of the ring is "hidden" behind the punch hole, and the right side is shifted too far off the right. This seems to only happen to the red color, from the colors I've assigned. All other colors being used seem to be correctly aligned.
 

arf8

Senior Member
Mar 30, 2014
632
71
It's a song and dance to get past the connect to device step.

Anyway when setting Hide AOD to full it does not hide the clock etc on the lock screen. Not quite sure what is causing this.

S10+

my tips appreciated.
 
Last edited:

PIRATA!

Senior Member
Dec 6, 2010
2,714
173
Hello there!

Works good on my S10e European dual sim edition...most of the times :)

When it doesn't work, if I enter/load the app, I get a pop-up saying that step 3/4 has to be granted...but I already did!

Everything works good again once I reactivate that.

Any clue?

Sent from my SM-G970F using Tapatalk
 

flonou

New member
Oct 7, 2010
1
0
Hey, is this compatible with official samsung clear view case ? I like the fact that I can get led like notification when the screen is "off" (meaning with AOD) and I was wondering if the clear view case would break that
 

Top Liked Posts

  • There are no posts matching your filters.
  • 180
    100% Free - 100% GPLv3 Open Sauce - No ads - No tracking - No nags - Optional donation

    Holey Light
    is a LED emulation app. It animates the edges of the camera cut-out (AKA punch-hole) as replacement for the sadly missing LED on many modern devices.

    Additionally, it provides a notification display for when the screen is "off", replacing - or working in conjunction with - the Always-On Display feature. As this display is not around the camera hole, it is aptly named the Unholey Light.

    Supports all Samsung devices with in-screen camera hole, and several Google Pixels.

    Features
    • Emulates notification LED
    • Four different display modes: Swirl, Blink, Pie, Unholey Light
    • Configurable animation size, position, and speed
    • Customizable color for each notification channel
    • Selects initial notification color by analyzing dominant color of app icon
    • Displays during screen "off", sub-1% battery use per hour in Unholey Light mode
    • Separate configuration modes for different power and screen states
    • Ability to mark notifications as seen based on various triggers
    • Respects Do-Not-Disturb and AOD schedules
    • Can hide AOD completely, partially, and/or keep the clock visible
    • Additional AOD Helper package for further battery usage reduction
    All teh details and all teh sauce!

    It's all on GitHub!

    Download

    You can grab it from Google Play.

    Feedback

    You can feedback here. Or in the GitHub issue tracker. Or talk to me on Telegram. I guarantee no response or fix.

    The workings of the app are quite intricate, so describe what is happening in minute detail.

    TODO

    You can find the TODO list in the issue tracker.

    Enjoy!
    Or not.
    48
    Changelogs and release notes have been moved to GitHub
    33
    v0.40 is here

    So, it was quite a journey to get to this point, and I am sad to report I am not fully satisfied with the results so far. But I have more than exhausted the time I have available for side projects, and I need to focus on work for a while now. There are further gains to be had, I'm sure, possibly someone else will figure it out while I'm doing other things :)

    The past weekend I've dedicated entirely to investigating power and CPU use, how AOD functions, etc. A lot has been done on the main code-base to reduce its usage (such as replacing live animations with pre-rendered sprite sheets), but on that front we have reached the point of diminishing returns. There's not much more to be improved in that part of the code. It was a lengthy merry-go-round, as fixing things in one place would break things in another. Here's some technical mumbo jumbo for all y'all to enjoy.

    First, there was the move to accessibility services. Should have been using those from the start, but I decided against it because (a) I botched up my first attempt, (b) it is frowned upon by Google (but apparently still grudgingly accepted for now), and (c) it's just unclean. On the other hand, Google has nerfed all the other ways to overlay (in favor of their upcoming "bubbles" contraption), so there's little choice left. This allowed for simplification of part of the codes and getting rid of the fake lockscreen, in favor of piggybacking on AOD. Unfortunately that itself has not brought all the improvements I had hoped. We still need to use the CPU quite a bit, and though we now have the advantage of the screen being in a lower power state and other apps being more restricted from running (both improving battery life), I've still clocked it at 3.5% (worst-case, down from 5.5%) per hour. Obviously this is only when you actually have notifications, otherwise it doesn't any battery at all.

    It is my understanding right now (and this may in time prove to only be partially correct, or even completely incorrect), that AOD periodically offloads an image (the background, notifications, clockface without hands) to the display, and a separate process (sidekick? outside of Android? dedicated hardware?) updates the screen with the smaller changes (such as the clock hands). This allows the main CPU to be fully asleep while you still see a clock with a moving second hand on screen, using sub-1%/hour battery power. AOSP has supporting code for this, so it's possible. Additionally, I've experimented with hiding AOD by drawing black on top of it - and the clock's hands remain visible while everything else disappears. Interesting stuff, for sure (stay tuned for more tales of interest).

    Overlays apparently are not part of this 'saved' image (I'm sure I saw a reference to how this is done somewhere in AOSP source, but I can't find it anymore, good job bookmarking that), so as the screen goes into its lowest power mode, they disappear. To counter this, we need to keep updating the screen (I had a work-around for this at some point, but it needs further investigation still). Some of you noticed the swirl didn't "time out" as the blinker did, that is because the swirl updates at a higher FPS. That high FPS keeps an internal lock deep in Android active, preventing the lowest power mode from being enabled. I've spent quite(!) some time trying to get to that lock, but to no avail. The only alternative is updating the view layout regularly, which also pokes that lock (after going through a long path of many other functions): this keeps the app's CPU usage down, but I later discovered this triggers high CPU usage in system_server, and so it was a net loss. There have been several instances of me saving 10-20% in one place just to have it pop up somewhere else, just because we don't have a direct path to the code inside Android we actually want to trigger. In the end, I've upped the FPS of the slower animations to 5-10, which seems to keep the screen happy (at least for me), as long as I don't have a better solution.

    I've also done some experiments with a shell runner (code that needs to be started through adb with a PC, or through root if you have it), which had some interesting results. Though inconvenient, it does give us access to a number of permissions we can use to manipulate power states. Unfortunately, for most of it there still doesn't appear to be a way to actually do so - no path to the correct Android internals. If I have the time it any point in the future, I'll dig a bit deeper into that, but my opinion right now is that it'll probably require proper root and changing (overlaying) some system files and/or settings.

    I've decompiled and analyzed a lot of Samdroid's packages, but so far haven't found the holey grail :) (See what I did there? Now I need to make a new app with that name...)

    PS: This one will be going up on Play ASAP
    PPS: For those reading on GitHub, the sauce is up, but I have not updated all the info yet, and that may not happen today
    PPPS: I saw some translations come by, please update them to the texts from this version and re-post, thanks. GitHub pull request would be even better, but I understand if that's not your cup of tea
    PPPPS: For the devs: there's some interesting stuff and comments in the code if you look closely

    As always with these releases, it was probably working fine this afternoon and I botched something major up just before releasing this update, so come at me with your bugs and observations :)

    Most significant changes (this includes things already in v0.26)
    - Screen off + battery functionality enabled
    - Migration from fake lockscreen to AOD-base
    - Migration from application to accessibility overlay (Google frowns on this, though)
    - Any notification can now be used for LED. The ones that don't ask for LED show up under Colors as black by default.
    - Lottie renderer has been replaced by a sprite-sheet based rendered (up to 5x CPU reduction)
    - Battery saving animations added (up to 3x CPU reduction), blinking and pie-chart (decided based on full or on-tap AOD)
    - Several leaks and crashes have been fixed (and undoubtedly new ones created)
    30
    Good news everyone! I have it all running smoothly now. The code need some cleanup, dead code removal, fixing up some bad test code into "meh" production code, some installation helpers, etc, but I have the basics all working as I want them.

    Going to run it overnight to see what the drain is... release hopefully tomorrow.
    25
    Now that I've figured how AOD works, I mostly finished up the AOD hiding (even without the addon package, but the latter is still better on battery if there are no notifications), now I just need to clean up the UI (oh no!) and provide ample in-app instructions and guidance, then I can release that to Play and continue on the other features (such as schedule/dnd, etc).

    This cleaning up is my least favorite part of devving. It already works fine for my own uses now.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone