Add optional flag to Wakelock.release() to specify whether we should wait for proximity sensor to go negative before turning on the screen.
Clear the "waiting for proximity sensor to go negative" state when the power key is pressed.
Part of the fix for b/2243198 (Black screen lockup after ending call)
Change-Id: I813fdb7aa4192cd3384a25be9e59d7d4b90da53a
Signed-off-by: Mike Lockwood <lockwood@android.com>
Do not cancel screen brightness animation in forceUserActivityLocked unless screen is turning off.
Also not turn the screen on if PowerManager.preventScreenOn(false) is called while proximity sensor is active.
Fixes b/2254818 (dim display) where due to a race condition the screen is stuck in a dim state.
Change-Id: If6f805609c8d463631b9e22805e5242714ce34c0
Signed-off-by: Mike Lockwood <lockwood@android.com>
This prevents the device from sleeping while a deferred proximity sensor
event is pending.
Fixes b/2260005 (Proximity sensor can fail due to missing wakelock)
Change-Id: Ia4825f548b5b7d8a0b184f720b32c2f21b77b96e
Signed-off-by: Mike Lockwood <lockwood@android.com>
This allows the driver to behave differently depending on if the lighting is being
managed by the light sensor or by a user preference.
Change-Id: I4b9325f82b7aded0ce5cfc6c07658666bbdae331
Signed-off-by: Mike Lockwood <lockwood@android.com>
This is part of a fix for bug b/2248320 (Lock screen does not time out after
Change-Id: Iba7f8a7b9997ecb0e4da37667600055f9a35531c
Signed-off-by: Mike Lockwood <lockwood@android.com>
This ensures that we do not get cheek presses immediately after a call is ended.
Fixes bug b/2246824 (prox sensor subtleties when call ends)
Change-Id: I97d39b7689d9ea2e94ea9aceeb93bf15228ec095
Signed-off-by: Mike Lockwood <lockwood@android.com>
when processing light and proximity events.
This should fix loss of 2 second hysterisis for light sensor (b/2243521)
Change-Id: Ia3ce331e67d803eb5e51810cb7161b7c528312d7
Signed-off-by: Mike Lockwood <lockwood@android.com>
Fixes bug b/2202165. The light sensor was interfering with the screen off animation.
Change-Id: I1bc566a164af689b60b066e6cb3dcbf7959bc50a
Signed-off-by: Mike Lockwood <lockwood@android.com>
This allows us to adjust immediately when we receive a correct light sensor reading
after the screen turns on.
Change-Id: I627047365640761727348e577c9164a6d6be2772
Signed-off-by: Mike Lockwood <lockwood@android.com>
This should fix a "black screen" bug that Motorola identified.
mProximitySensorActive was being set to true due to a proximity sensor change being posted
just after we disabled the proximity sensor.
Now we ignore proximity changes after the phone app releases the proximity lock after the call is done.
Change-Id: I417d423de3d43515389b1b7b008cdcb795cd10f6
Signed-off-by: Mike Lockwood <lockwood@android.com>
This is to prevent a noisy proximity sensor from causing the screen to turn on and off
in rapid succession, which can trigger race conditions in the keyguard manager.
Change-Id: I2c6e54e4b41716e038854ed9a827c901579c8865
Signed-off-by: Mike Lockwood <lockwood@android.com>
The logic that disables user activity while turning off the screen should not affect proximity sensor.
Fixes bug b/2228734 (in-call, prox sensor gets confused)
Change-Id: Ieca126e6f79bf7baa5741981aea72d306ba03edc
Signed-off-by: Mike Lockwood <lockwood@android.com>
Fixes a race condition between the keyguard and power key that sometimes resulted
in the power key failing to turn off the screen.
Fixes bug b/2212852 (Power button does not put phone to sleep)
Change-Id: I92498c5fddf2bfc32b105ea1a7ea14a06d83888e
Signed-off-by: Mike Lockwood <lockwood@android.com>
Now the manual brightness mode only applies to the LCD backlight and
button and keyboard backlights are always managed automatically.
Fixes bug b/2195798 (Passion capacitive key backlights don't always come on)
This change only affects the framework based auto-brightness implementation.
Hardware auto-brightness is not affected.
Change-Id: Ib88310d642d498591e8879c8269d630ff3f7c8af
Signed-off-by: Mike Lockwood <lockwood@android.com>
For framework light sensor support (does not affect hardware based approach).
Change-Id: I6896a7c5b3fd3ed136c4f25c63a0e5813c349f68
Signed-off-by: Mike Lockwood <lockwood@android.com>
This cleans up the code in preparation for some other auto-brightness changes
and fixes support for devices without light sensors.
Change-Id: I3d4802cf860a865ffd86a8bb57cd57b46359433d
Signed-off-by: Mike Lockwood <lockwood@android.com>
Fixes a deadlock that occurred because mAnimatingScreenOff was left set to true
after aborting turning off the screen.
This change removes the mAnimatingScreenOff flag and checks for
(mScreenBrightness.animating && mScreenBrightness.targetValue == 0) instead.
Fixes bug b/2219706
Change-Id: I081f08c14ad7585a953fb567867238b1f3db841f
Signed-off-by: Mike Lockwood <lockwood@android.com>
This fixes a problem that resulted in bogus battery statistics for the prox and light sensors
due to the sensors being enabled in an app's context and disabled in the system context.
Fixes problems reported in bug b/2211960
Change-Id: Ib0d3d9d06f043b386d3b8d494b9bad5bd40bb6e1
Signed-off-by: Mike Lockwood <lockwood@android.com>
Fixes bug b/2158297 (lock screen should time out after 7 seconds)
Change-Id: Ia3f7ef6464129ab78283923dbfd7f7472136e676
Signed-off-by: Mike Lockwood <lockwood@android.com>
Fixes bug b/2202165 (Often I when pressing power to turn off I get the lock screen)
Change-Id: I53f8350203d57fbb5f143edc44985879caadd78f
Signed-off-by: Mike Lockwood <lockwood@android.com>
Fix problem with ignored sensor events right after screen turns on.
Do not flash button backlights when device is booting.
Process the first light sensor change after waking the screen immediately rather than debouncing.
Cancel mAutoBrightnessTask when light sensor is disabled.
Change-Id: Iffc5e090b239432b7643812fa8ecb5f69da1679d
Signed-off-by: Mike Lockwood <lockwood@android.com>
We will use the System.SCREEN_BRIGHTNESS_MODE Settings value instead.
Add SCREEN_BRIGHTNESS_MODE_MANUAL and SCREEN_BRIGHTNESS_MODE_AUTOMATIC constants.
Change-Id: I01935be3fcb48cf76392d2c594205cb47babc5b2
Signed-off-by: Mike Lockwood <lockwood@android.com>
The dock app is forcing the screen to a particular brightness level. This
causes the window manager to often call into the power manager with the
new brightness. This causes us to go in to updateLightsLocked() to figure
out and apply the real brightness to use. When the screen is off the
real brightness always remains 0, but even if it didn't change from the
last one we would start an animation which would when done put the system
to sleep and fight with the user trying to turn the device on.
Now, if the new target brightness is the same as the last one, we leave the
animation as-is -- either running or not as appropriate.
Change-Id: I067d55ea2b39e294c5d5291587a4d8727c0b8083
This allows us to support binary proximity sensors that only return 0.0 and 1.0
Change-Id: Ifaf3a4e6fc720cb246ac3558e3e733b4b612c95b
Signed-off-by: Mike Lockwood <lockwood@android.com>
This fixes a problem that resulted in the screen staying off indefinitely if the prox sensor
is active at the beginning of a bluetooth call and could result in the screen staying off
in other similar circumstances.
Change-Id: Icfa0046d3179f9bb2247e7a3c1f9ff073312667a
Signed-off-by: Mike Lockwood <lockwood@android.com>
to prevent apps from changing the hardware behind its back.
Fixes b/2041941 Lock screen flashes the screen very bright before dimming
Change-Id: Ice757f7ae87902bdfb3634471cf44f020ebfaae4
Signed-off-by: Mike Lockwood <lockwood@android.com>
This eliminates the assumption that the proximity sensor will always return
zero distance when it is active.
Change-Id: I6245b074e4c42aeae3a181e6a5087554517046d2
Signed-off-by: Mike Lockwood <lockwood@android.com>
Add changes to have the ability to turn on and off the
automatic light sensing for the device. This is fully configurable
and is by default not present. Vendors should override the ALS setting
to enable the automatic lighting controls.
These changes will add a check box to the Brightness settings menu to give control
to the user to allow the device's display lighting to be controlled via the slide bar
or the auto lighting system.
If the user selects auto then the slide bar will become invisible. Manual mode
will present the slide bar to the user.
Change-Id: I146a6d75b99b08c9b839218ce6b85adf21f9fd73
Signed-off-by: Dan Murphy <D.Murphy@motorola.com>
Signed-off-by: Mike Lockwood <lockwood@android.com>
Turn off keyboard backlight immediately when keyboard is closed.
Changing keyboard visibility state signals user activity except in the case
where the keyboard is closed and the screen is already off.
Fixes bugs b/1351141 and b/1319625
Change-Id: If4bf2c1dd8e0c2bc08196e443b6103a6041f27e1
Signed-off-by: Mike Lockwood <lockwood@android.com>