• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[APP][2.3+] Lux Auto Brightness

Search This thread

flash5000

Senior Member
Jul 11, 2009
264
172
Tasker working now, don't know why exactly, sorry for the confusion.

Thanks for the update!
 

Cyb3rGlitch

Senior Member
Apr 12, 2011
599
663
I'm going to need translators soon. If you understand how Lux works, and have good language skills in both English and the language you're willing to translate to, please PM me. Also note that by performing the translation, you grant me full and unrestricted use of said translation for any purpose (obvious, I know, but I should make that clear).

If the translations are of high quality, there may be a small gift involved. :)
 
  • Like
Reactions: imilic and Ci-Fi

flash5000

Senior Member
Jul 11, 2009
264
172
I've one more issue to report (latest market version, using dynamic mode, on HTC Sensation with CM10):
Most of the time when I power on the screen, brightness goes instantly to the min value I set for 0 lux. It seems that the app takes a long time to obtain a sensor reading and in the meantime assumes a lux value of zero. I need to open the lux dashboard and press the refresh button for Lux to adjust the brightness.

I would appreciate to have an option to keep the last brightness value until there's a valid sensor reading. Is this possible?
 

Cyb3rGlitch

Senior Member
Apr 12, 2011
599
663
I've one more issue to report (latest market version, using dynamic mode, on HTC Sensation with CM10):
Most of the time when I power on the screen, brightness goes instantly to the min value I set for 0 lux. It seems that the app takes a long time to obtain a sensor reading and in the meantime assumes a lux value of zero. I need to open the lux dashboard and press the refresh button for Lux to adjust the brightness.

I would appreciate to have an option to keep the last brightness value until there's a valid sensor reading. Is this possible?

It should already do that. It sounds like your light sensor is reporting 0 lux initially. Can you confirm this by changing the brightness of the 0 lux value to something like 45%, and see if that's what gets set?

Cheers.
 
  • Like
Reactions: imilic and Ci-Fi

flash5000

Senior Member
Jul 11, 2009
264
172
It seems you are correct. The sensor reading is only updated when pressing the refresh button, it seems...

---------- Post added at 02:02 PM ---------- Previous post was at 01:53 PM ----------

It should already do that. It sounds like your light sensor is reporting 0 lux initially. Can you confirm this by changing the brightness of the 0 lux value to something like 45%, and see if that's what gets set?

Cheers.

Seems you're right, it's working as described.

Interestingly, I don't have this problem with Velis Autobrightness, it seems to do something differently. Any ideas?
 

Cyb3rGlitch

Senior Member
Apr 12, 2011
599
663
It seems you are correct. The sensor reading is only updated when pressing the refresh button, it seems...

---------- Post added at 02:02 PM ---------- Previous post was at 01:53 PM ----------



Seems you're right, it's working as described.

Interestingly, I don't have this problem with Velis Autobrightness, it seems to do something differently. Any ideas?

It may be a bug. I'm taking a look now.
 

lexluthor

Senior Member
Feb 7, 2007
1,932
205
Root integration fails on my stock/rooted Verizon Galaxy S3. Superuser does have Lux as allowed. See another GS3 user with this problem, so hopefully you can fix it quickly.

Once it works, will root integration allow me to turn off persistent notification and still not get Lux killed ever? That would be great.

Also, can you explain what the new ascending mode is as compared to dynamic that I've been using?
 
Last edited:

Cyb3rGlitch

Senior Member
Apr 12, 2011
599
663
Root integration fails on my stock/rooted Verizon Galaxy S3. Superuser does have Lux as allowed. See another GS3 user with this problem, so hopefully you can fix it quickly.

Once it works, will root integration allow me to turn off persistent notification and still not get Lux killed ever? That would be great.

Also, can you explain what the new ascending mode is as compared to dynamic that I've been using?

Integration means Lux can never get killed, because it becomes a system app. Of course, you should only do this if you really need to (hence it being in advanced settings). So yeah, you can remove the notification if you integrate it.

Ascending mode is similar to dynamic mode, but it will only ever adjust brightness upward. The advantage is that you don't get jitter (for crappy sensors), and it won't constantly adjust if you're constantly moving in and our of shadows (e.g. on a train). Whenever your phone resumes from standby, it'll re-adjust to the current environment, then only change upward again.
 
  • Like
Reactions: imilic and Ci-Fi

bleuxeon

Senior Member
Jan 25, 2012
800
282
Near COGNAC (FR)
2 Quick questions :
- GSam Battery Monitor reports that Lux makes wide use of gyroscope :confused:
How does gyroscope helps Lux?

- On Galaxy S2 the sensor reports 1lx while your eyes can still cleary see arround:D...
Could it be possible to add a fonction in Lux that would switch to camera reading when light sensor has reach its lower limit?

Thanks
 

Attachments

  • Screenshot_2012-10-21-15-32-38.jpg
    Screenshot_2012-10-21-15-32-38.jpg
    33.4 KB · Views: 765
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 160
    unnamed.png


    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.
    14
    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=".[B]MY_PLUGIN[/B]"
            android:exported="true" >
            <intent-filter>
                <action android:name="[B]YOUR_PACKAGE_NAME_HERE[/B]" />
            </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.
    11
    Lux v1.99.8 released (staged rollout)

    - Added CF.lumen support (don't need CF.lumen active, just install the driver). Acts as a plug-in for all Android 4.4+ devices. Please buy the pro version to support his work.
    - System autobrightness enabled during calls
    - Option to shake at lockscreen to increase brightness
    - Option to prevent drop in brightness in landscape
    - Enforced persistent notification, added system removal method
    - Fixed dashboard width issue
    - Fixed notification priority resetting at boot
    - Misc. fixes
    11
    Hey everyone. Sorry to hear that people are having issues with the paid version. I'm working on hotfixes at the moment. A lot of these bugs don't appear on my test devices, which is why regressions happen seemingly randomly. I'm working hard on finding a reliable way to reproduce and test these issues to prevent this happening again.
    9
    Apologies to everyone for not being around lately. I've been answering support via email.

    A new release is rolling out on the market to 5% of users. Please use the 'Send Feedback' button in Lux preferences if you experience issues. Also, feel free to email me with any questions or concerns.