Emulates notification LED on Samsungs/Pixels around the in-screen camera

Holey Light Screenshot
Holey Light Screenshot
Holey Light Screenshot
Holey Light Screenshot
Holey Light Screenshot
Holey Light Screenshot
Holey Light Screenshot
Update
Mar 27, 2023
Developer
Category
Installs
500,000+
Rate
0
Samsung and Google Pixel only!

100% Free - 100% GPLv3 Open Source - 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

Source
Source code is available on GitHub.

Setup
Initial setup can be a bit tricky for a first-time user, but a setup wizard is included that guides you through the process.

Permissions
This app absolutely requires several permissions to be able to function. If you are concerned about that, you can always check out the source code (or not use the app).

- Accessibility: the app needs an accessibility service to render the emulated LED on-screen, and track the correct position to display in screen "off" mode.
- Notifications: a notification service is needed to be able to know about the notifications before we can show them
- Companion device: in a weird quirk of Android, this permission is required to be able to read the wanted LED color of notifications
- Battery optimization exemption: without this, Android would randomly disappear our emulated LED
- Foreground service: both an accessibility and notification service are used as described above
- Wake lock: you decide when and how the app draws on the screen, sometimes this requires making sure the CPU isn't sleeping
- All package access: we render other app's icons and access some of their base information to be able to differentiate different notifications from each-other