Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[APP][2.3+] Lux Auto Brightness

OP Cyb3rGlitch

19th October 2012, 12:58 PM   |  #1  
Cyb3rGlitch's Avatar
OP Senior Member
Thanks Meter: 588
 
589 posts
Join Date:Joined: Apr 2011


Lux - The Original Android Auto-Brightness App

So I thought I should make an XDA thread for Lux, over a year after releasing it to the Play Store!

FULL or FREE


Issues/Suggestions

If you have any issues or suggestions, please add them to the public issue tracker found here. Be sure to search first, duplicated issues will not work in your favour.


News
  • Update to 1.51 released to Play Store!
    - Profiles. Have different behaviour for day and night!
    - Root plug-ins. Custom kernel with RGB control? Make a plug-in to utilise it!
    - Improved notification
    - Low pass filter
    - Cubic interpolation
    - Polish/French/Russian/German/Italian translation
    - Manual sunrise location input
    - Control Dashboard slider with vol. keys
    - Fade duration/step
    - Reduced battery usage
    - Fixes

  • Update to 1.06 released to Play Store!
    - Automatic night mode (uses location for sunset/sunrise).
    - Notification priority
    - Enhanced dashboard and notification UI
    - Enable/disable and refresh Lux via Tasker
    - Bug fixes

  • Update to 0.76 released to Play Store!
    - Fixed brightness issues after call

  • Update to 0.74 released to Play Store!
    - Fixed max/phone brightness preferences swapped
    - Added ignore 0 lux option
    - Made static phone brightness optional

  • Update to 0.70 released to Play Store!
    - New 'ascending' automatic mode for zero jitter!
    - Expandable notification for added control (Android 4.1+)
    - Improved efficiency
    - Install to OS functionality
    - Set min/max brightness bounds
    - Adjustable night mode
    - Improved persistence (Android won't kill it!)
    - Fixed Nexus 7 255 luma bug
    - Fixed Tasker 'on wake' revert bug
    - Compat. mode is now known as 'sleep mode'
    - Night Mode now default Dashboard action (hold for Astro. mode)
    - Misc. tweaks and fixes.

App Description
Lux isn't your ordinary brightness app. It intelligently adjusts the brightness of your display based on the environment you're in. If, for example, you step into a dimly lit room, Lux will automatically lower the brightness of your display to make it not only comfortable to read, but to also preserve battery power.
Lux provides the option to automatically adjust the backlight at fixed intervals (periodic mode), when a change in environment is detected (dynamic mode), or when the phone wakes from sleep. It's also possible to adjust the backlight manually. Simply disable automatic mode and you can use it like a traditional brightness tool!
Perhaps the best thing about Lux is that you can teach it how to behave. If the backlight is too bright or dim for your liking, simply open the provided Dashboard, adjust the brightness slider to the level you desire, then hold the link button. Lux will use this new 'link' as a reference in future.

Give it a go! I want you to test Lux for more than the 15 minute refund period offered by Google. I understand that some devices may not have the best quality light sensor, and that you may need more time to play around with settings. If you find that Lux doesn't suit you after the 15 minutes is up, you can request a refund at any time via e-mail - no questions asked.

★FEATURES★
■ Custom auto brightness.
■ Sub-zero brightness to make reading in the dark significantly less irritating.
■ Battery efficient
■ Handy brightness widget
■ Option to use the camera to read in ambient light.
■ Power-user settings such as choice of interpolation, sensor debugging, and linked sample editing.
■ Backup to SD.
■ 'Ascending' auto mode for phones with inaccurate light sensors.
■ Gradual fade for backlight adjustments.
■ Astronomer mode adds a red filter to the screen to preserve the eyesight of stargazers.
■ Jitter control to prevent constant small changes to the backlight.
■ Automatic night mode, to change the colour temperature of the display for comfortable night time viewing.
■ Add app specific exceptions via sleep mode
■ No ads, or other nuisances.
■ Tasker and Locale support!
Note: Please disable other brightness apps before using Lux. The author is not liable for any issues caused when using this app.

★PERMISSIONS★
TAKE PICTURES AND VIDEOS: Used to read in luma values, if camera input is selected.
DRAW OVER OTHER APPS: Required for night/astro mode.
READ PHONE STATE: Required to prevent Lux from interfering with phone controls in Android 4.1.
MODIFY SYSTEM SETTINGS: Brightness is a system setting, as is toggling the default auto brightness.
RETRIEVE RUNNING APPS: Required to make the 'sleep list' functionality work, so Lux can disable itself when certain apps are in the foreground.
COARSE LOCATION: Required to automatically calculate sunrise/sunset times.
IN APP BILLING: Required for purchasing future device specific root only plug-ins, to enhance functionality.
Last edited by Cyb3rGlitch; 17th November 2013 at 03:47 PM.
The Following 134 Users Say Thank You to Cyb3rGlitch For This Useful Post: [ View ]
19th October 2012, 01:03 PM   |  #2  
Cyb3rGlitch's Avatar
OP Senior Member
Thanks Meter: 588
 
589 posts
Join Date:Joined: Apr 2011
Lux Low-Level Plug-ins

Soon Lux will support plug-ins to bypass Android API limitations. These plug-ins serve to replace the overlay system Lux uses to make adjustments for Night/Astronomer modes and brightness in general. The plug-in library is free to use for non-commercial development, and can be found here:

Lux Plug-in Library | Nexus 4 Sample Plug-in Code

How to make a plug-in

There are two approaches to making a plug-in for Lux. The passive and the active method. The former is as easy as providing a set of superuser commands for Lux to interpret and apply. These command correlate to functions such as setting pixel RGB or brightness levels. This is the type of plug-in the Nexus 4 sample linked above takes.
The active method requires you produce your own code to perform RGB/brightness adjustments. This might include importing a device specific library to do the heavy lifting, and then returning empty superuser commands back to Lux.


Getting Started

Simply import the Lux Plug-in Library source into your IDE as an Android Library Project, and then create a new Android app which extends PassiveDisplay.java.

PassiveDisplay provides hooks into Lux's plug-in framework, which you can use to provide superuser commands for Lux to execute. These commands correlate to functions such as setting RGB values. Take a look at the sample Nexus 4 project to see how it's all done.
Finally, in your new project's AndroidManifest.xml file, add the following:

Code:
    <activity
        android:name="com.vitocassisi.lux.plugin.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver
        android:name="com.vitocassisi.lux.plugin.LuxBroadcastReceiver"
        android:exported="true" >
        <intent-filter>
            <action android:name="com.vitocassisi.lux.plugin.search" />
        </intent-filter>
    </receiver>

    <service
        android:name=".MY_PLUGIN"
        android:exported="true" >
        <intent-filter>
            <action android:name="YOUR_PACKAGE_NAME_HERE" />
        </intent-filter>
    </service>
Be sure to replace YOUR_PACKAGE_NAME_HERE with the name of your plug-in's package, and MY_PLUGIN with your extended PassiveDisplay class.

And that's it! Now you're ready to test!


Enabling Plug-In support within Lux

To enable plug-in support, you must check 'Enable plug-in support' in the Advanced section of Lux settings. Enabling this option forfeits all responsibility of mine for any issues caused while using Lux. Plug-in's can cause very real damage to your device if they're written incorrectly - don't use plug-ins from sources you don't trust!
Testing your plug-in
Testing is critical for creating a good plug-in. You are dealing directly with system files, and can easily cause damage if you do not know what you're doing.

DO NOT RELEASE A PLUG-IN WITHOUT TESTING IT ON THE TARGET DEVICE FIRST!

Ensure that the following work with your plug-in installed:
  • Astronomer Mode
  • Night Mode
  • General brightness adjustment
  • Lux readings functional

BE METICULOUS WITH YOUR IMPLEMENTATION OF isSupportedDevice()!
Modifying system files on the wrong model/kernel may cause irreversible issues!


Licence
Code:
Copyright  2013 Vito Cassisi

You may not use this library except in compliance with the following:
    - It cannot be used for commercial purposes under any circumstances, unless explicit permission is granted in writing from the author.
    - Modifications to this library may not be distributed.

Unless required by applicable law or agreed to in writing, software
distributed under this licence is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Last edited by Cyb3rGlitch; 14th July 2013 at 04:08 PM.
The Following 7 Users Say Thank You to Cyb3rGlitch For This Useful Post: [ View ]
19th October 2012, 01:09 PM   |  #3  
Junior Member
Flag Hamburg
Thanks Meter: 0
 
1 posts
Join Date:Joined: Aug 2012
More
Smile Great App!
I bought the App about 2 months ago and all I can say is that it works really good with my Nexus 7.
I can just recommend buying this - clearly the best solution for Auto brightness on the play store

Regards,

Rashiq
19th October 2012, 01:23 PM   |  #4  
Raghav Sood's Avatar
Member
Flag New Delhi
Thanks Meter: 99
 
63 posts
Join Date:Joined: Aug 2012
Donate to Me
More
Best brightness adjustment app available. It fixed the screen flickering issue on my Nexus 7.
The Following User Says Thank You to Raghav Sood For This Useful Post: [ View ]
19th October 2012, 02:01 PM   |  #5  
Senior Member
Thanks Meter: 72
 
703 posts
Join Date:Joined: May 2009
Im already using it for more than a month, and it works like it said.

Sent from my SCH-I500 using Tapatalk 2
The Following User Says Thank You to ekowanz For This Useful Post: [ View ]
19th October 2012, 03:20 PM   |  #6  
Cyb3rGlitch's Avatar
OP Senior Member
Thanks Meter: 588
 
589 posts
Join Date:Joined: Apr 2011
If anyone wants to beta test the next update, send me a PM.
The Following User Says Thank You to Cyb3rGlitch For This Useful Post: [ View ]
19th October 2012, 03:42 PM   |  #7  
codesplice's Avatar
Senior Member
Flag Huntsville, AL, USA
Thanks Meter: 958
 
2,665 posts
Join Date:Joined: Jun 2008
More
Subscribed. Because this app rocks.

And because the upcoming v0.70 (beta) rocks even harder. (Thanks for letting me test that, btw.)
The Following User Says Thank You to codesplice For This Useful Post: [ View ]
20th October 2012, 08:49 AM   |  #8  
Cyb3rGlitch's Avatar
OP Senior Member
Thanks Meter: 588
 
589 posts
Join Date:Joined: Apr 2011
Just added people who PM'ed me to the beta test.
The Following User Says Thank You to Cyb3rGlitch For This Useful Post: [ View ]
20th October 2012, 09:01 AM   |  #9  
meethere's Avatar
Senior Member
Thanks Meter: 103
 
717 posts
Join Date:Joined: Jan 2012
i want to test beta too.
how it is different than stock auto brightness function?>
The Following User Says Thank You to meethere For This Useful Post: [ View ]
20th October 2012, 09:11 AM   |  #10  
Cyb3rGlitch's Avatar
OP Senior Member
Thanks Meter: 588
 
589 posts
Join Date:Joined: Apr 2011
You can teach Lux to react a specific way under different light conditions, whereas with stock you get whatever the ROM's defaults are.

Edit: Oh, and PM be with your Dropbox account email if you want to beta test.

The Following 2 Users Say Thank You to Cyb3rGlitch For This Useful Post: [ View ]
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes