CF.lumen adapts the colors on your Android device based on the position of the sun, or your custom configuration. NOTE: v3.15 has a new root driver that does not work on all devices. v3.00 is available from the XDA thread (link far below)
When using the default settings, your display will get a warmer tint (lower color temperature) when the sun is down, vastly reducing strain on the eyes. Blue light makes your brain want to stay awake, and a lower color temperatures reduces the amount of blue displayed; using this in the evening reduces your brain's effort to keep you awake at night. (See f.lux for your PC)
During sleeping hours by default a red filter is used. Red strains your eyes the least, and retains your night vision.
The light sensor can be used to automagically adjust the color: switch to the sleep filter in full dark, or to the day filter (usually none) under bright lights.
Because light sensor quality varies wildly between devices, a calibration option is provided to experiment with.
Several filters are provided. Those named after a color (red, green, blue, amber, salmon) do not limit the display to those colors, but convert the displayed image to grayscale first, then display that image in levels of the selected color. This preserves details that would otherwise be lost.
Grayscale, invert colors, temperature adjustment and custom R/G/B adjustment filters are also provided.
The master color filter setting also has an option for colorblindness enhancement, with settings for protanopia/anomaly, deuteranopia/anomaly and tritanopia/anomaly. These options redistribute colors across the spectrum, in theory enhancing clarity and color detail.
No claims are made to the effectiveness of these filters, but positive reports have been received from testers. Note that these filters were thought up by Google engineers, CF.lumen just includes them.
Upgrading to CF.lumen Pro will support my developments, remove all nags, unlock the option to start at device boot (make sure you test your configuration first), and unlocks notification options. It also enables Tasker integration.
In Pro mode, the notification adds convenient buttons to quickly disable the current filter or switch to sleep mode, and you can switch the notification to when enabled mode, which shows the notification only when a color filter is active.
In non-Pro mode, the notification only asks you to upgrade to Pro. It may seem that notification is just there to annoy you, but it actually prevents Android from randomly killing the background service taking care of all the work. Getting rid of it without getting the service killed can be done by going to Settings -> Apps -> CF.lumen and unticking Show notifications.
Having Chainfire3D Pro (ancient) installed will enable Pro.
When no color filter is active, there should not be any noticeable performance impact. When a filter is active, impact depends on device and what you are doing. On some devices we have tested there was no performance impact at all, on others it was slightly noticeable. It also depends on the driver in use.
Keep in mind that Android's rendering system changes over time. You should be aware that this app may simply stop working on future Android versions without the possibility of a fix.
By far most permissions are used only for Google Maps to set your location, and Google Play to provide for In-App Purchases. I cannot make any claims as to what information the Google components do or do not send to Google servers, but no information is sent to me or anyone else (than Google).
Even more information, discussion, and support, can be found in this app's thread on XDA-Developers: http://forum.xda-developers.com/showthread.php?p=51779367