158 Commits

Author SHA1 Message Date
Dianne Hackborn
81de8b99f5 Fix issue #5642121: Proximity sensor didn't turn the screen on in call
Turning animations back on exposed this.  The problem is that when the
screen brightness changes, it initiates a brightness animation.  When
we force the screen to black as we wait for it to be ready to display,
it sees that an animation is running so stops it and thinks this means
it should now turn the display off.

To fix this, don't modify the screen brightness while we are waiting
to show the screen.  This is good anyway because the whole point is to
avoid showing the screen until ready, and modifying the brightness at
that point would turn it on prematurely.

Change-Id: I84b296f8ca5705c2d237ea7741cdeb95c5521df9
2011-11-28 16:57:37 -08:00
Mathias Agopian
47f1fe5285 decrease the light-sensor rate to 1Hz (from ~15Hz) for ALS purposes.
the intent here is to save power.

Change-Id: I6cc1cae865cc46551afcfcec9ca03faaa5b6936f
2011-11-08 17:19:55 -08:00
Dianne Hackborn
e02c88af79 Work on process management.
Introduce a new concept of "B" services.  All running services are
classified as either A or B.  B services are later in the LRU list.
Their oom_adj is after the home app.  This allows us to better pick
services to kill based on how long they have running, and should
reduce the amount that we end up killing the home app.

This temporarly turns on a debug log when the oom_adj of a process
is changed.  Sorry, I know it is noisy.  This is needed to try to
track down why some processes are being killed.

Also add a flag to the SyncManager's service binding to allow the
syncing process to be more aggressively killed if it has done UI.
This is to address cases we have seen where sync is causing an 80MB
gmail process to be kept around, preventing other process from running.
Now what will happen is that the syncing process will aggressively be
killed by the system, and can then be restarted in a much lighter-weight
state.

Do a little tweak in the power manager to allow us to still do smooth
brightness changes even when the fancy TV off animation is in use.

And get rid of a debug log in the window manager that was accidentally
left in.

Change-Id: I64a8eeaaa1f096bab29c665fbff804c7f1d029e2
2011-10-28 17:15:08 -07:00
Mike Lockwood
ae92eb3496 Revert "PowerManagerService: Enable light sensor debug output"
This reverts commit 22d12ab14cefa8d9a59e63945f57b4f809849c76.

Bug: 5505809
2011-10-25 10:11:46 -04:00
Mike Lockwood
320a10ad8c Reset cached light sensor values when toggling auto-brightness mode
Now the screen brightness will readjust to ambient lighting when toggling
auto-brightness on and off in Settings or the Power Widget.

Bug: 5486091

Change-Id: Ic98939fe1c59cb8def0f84266e48ca00329d6b30
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-25 09:16:28 -04:00
Mike Lockwood
55174b663b Revert "PowerManagerService: Remove assumption that light sensor will always send a value as soon as it is enabled."
The correct behavior for the light sensor is to immediately report a value
when it is enabled, so this change should not be necessary.

Bug: 5426212

This reverts commit 5dca30affc517879315b3a928c78756cbc9cf689.
2011-10-25 08:34:29 -04:00
Mike Lockwood
22d12ab14c PowerManagerService: Enable light sensor debug output
Bug: 5426212

Change-Id: I46ca01eee8d69f7bd6fc63e53506ba42c3fe537d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-21 09:05:05 -04:00
Mike Lockwood
5dca30affc PowerManagerService: Remove assumption that light sensor will always send a value as soon as it is enabled.
Bug: 5426212

Change-Id: Iebe51609233ef17c108bbec680369793abbae1be
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-13 16:29:29 -04:00
Dianne Hackborn
474fd74b88 Keep screen brightness at 0 while waiting for the UI to be displayed.
Change-Id: I957135c5423db6d83f4f30232481a1b6d77165fa
2011-10-10 18:40:22 -07:00
Dianne Hackborn
400110902e Fix issue #5355844: PowerManager does not call screenTurningOn after boot.
Be more explicit about initialization -- power manager never sends
screen update when first initializing, phone window manager retreives
current screen state and applies that itself when initializing.

Change-Id: I8294ed36d700e186c1637754df8c8183721c15dd
2011-09-22 13:37:48 -07:00
Dianne Hackborn
beae3bd6d3 Improvements to power manager turning on screen.
The keyguard/window manager recently got a facility to report when it is
okay to turn the screen on, when it knows the lock screen is displayed.

The power manager was using this wrong, just using it to drive the
flags given to the input system.  Duh.

This change now uses the information to determine when to turn the screen
brightness up from 0.  For an OLED screen, this is the time when the
user can actually see anything on the screen.

For LCD screens this may not be optimal, because the LCD may start running
before its backlight is turned on, so if you look carefully you may see
stuff before it is lit up.  On the other hand, it is good to turn on the
display as early as possible (before waiting for the keyguard) because it
can take a little bit of time to get that and the touch screen going.  By
only waiting on the display brightness, we allow turning on the screen
in the kernel to proceed in parallel with ensuring the keyguard is displayed.

Change-Id: I7ee4ce19fd4efd5b51872b855af6263f53cd6c30
2011-09-21 13:15:02 -07:00
Dianne Hackborn
38e29a61d0 Fix issue #5242779: Device not responding to touch on unlock screen
Rework how we decide when it is okay to turn on the screen by having
the policy call back to the power manager when it knows the lock screen
has been drawn.

Change-Id: Ie8f3f72111dcf7f168723e6dce24e0343b4afe5d
2011-09-18 14:52:52 -07:00
Mike Lockwood
eb6456b31e Move Power Manager minimum screen brightness to a framework resource
Bug: 5279179

Change-Id: I445e78c774ad08be6582fa8870487a5210465a08
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-09-13 15:24:02 -04:00
Mike Lockwood
db97f60054 Fix logic for power button overridding the "wait for prox negative state" after a call
When in a phone call, we keep the screen off while the prox sensor returns positive
and the device is oriented in a vertical position.
If the call is terminated on the other end, we keep the screen off
until the proximity sensor returns negative.
We do this to avoid having the screen turn on as soon as the other end
hangs up while the phone is still next to your head.

However, we allow the power button to wake the screen while waiting for the proximity
sensor to go negative as a precaution in case there is a problem with the proximity sensor.
But unfortunately that logic broke due to a change in the call path used to turn the screen
on from the power button (it previously called userActivity, now it uses a wake lock).
This change adds code to handle the new code path so the power button will wake the screen
while we are waiting for the proximity sensor to go negative after a call.

Bug: 5184524

Change-Id: I7d1e0f0d1f78680c552a05d68a392647823250ab
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-09-02 11:59:08 -04:00
Dianne Hackborn
29aae6f36e Fix issue #4279860: previous UI flashes before showing lock screen...
...(when turning display on after recently turning it off)

Also clean up when we decide to turn the screen on to improve that
transition.  There are still problems here with turning it on
before the wallpaper gets dispayed.

Change-Id: I2bc56c12e5ad75a1ce5a0546f43a845bf0823e66
2011-08-23 17:44:52 -07:00
Dianne Hackborn
a924dc0db9 Start window manager refactoring.
Move all of the pieces into a new com.android.server.wm package.

Change-Id: I942b7bcfb84ee0f843f47d58e55ffc5a93c0da94
2011-02-17 14:22:17 -08:00
Joe Onorato
1a542c7b8e The CHEEK_TOUCH stuff never worked. Remove it.
Bug: 3104906
Change-Id: Ia37236ba1775fc3ec8c111e2e0b85b105e0dea6a
2010-11-08 13:02:58 -08:00
Joe Onorato
d28f753c94 Turn off the ALS when the user setting doesn't ask for automatic brightness.
Bug: 3118027
Change-Id: I24a97adce55b7b403edcbd331bdc8b0fc593b76f
2010-11-06 12:56:53 -07:00
Jeff Brown
c4b5bf3c76 am 7ab5d2d9: am a87ea46c: Fix bugs related to cheek event suppression.
* commit '7ab5d2d951792c9b1a1e7cfb279280c2d076506f':
  Fix bugs related to cheek event suppression.
2010-11-02 02:34:15 -07:00
Jeff Brown
a87ea46cb0 Fix bugs related to cheek event suppression.
Two issues:

1. First, due to an inverted conditional in the input dispatcher, we were
   reporting touches as long touches and vice-versa to the power manager.

2. Power manager user activity cheek event suppression also suppresses touch
   events (but not long touch or up events).  As a result, if cheek event
   suppression was enabled, touches would not poke the user activity timer.
   However due to the above logic inversion, this actually affected long
   touches.  Net result, if cheek suppression was enabled in the power manager
   and you held your thumb on the screen long enough, the phone would
   go to sleep!

Cheek event suppression is commonly turned on when making a phone call.
Interestingly, it does not seem to get turned off afterward...

This change fixes the logic inversion and exempts touches from the cheek
suppression.  The reason we do the latter is because the old behavior
was actually harmful in other ways too: a touch down would be suppressed
but not a long touch or the touch up.  This would cause bizarre behavior
if you touched the screen while it was dimmed.  Instead of brightening
immediately, it would brighten either when you lifted your finger or
300ms later, whichever came first.

Bug: 3154895
Change-Id: Ied9ccec6718fbe86506322ff47a4e3eb58f81834
2010-11-01 20:51:58 -07:00
Jim Rodovich
d102fea962 PowerManagerService: Avoid paralysis when light events are reported frequently.
Avoid resetting the debounce timer for automatic brightness if a new light event
is received that agrees with the direction of change of the previous event(s).

Change-Id: Id4d71f6db46ded46b24eb44cb8de9b2cfedb3f06
Signed-off-by: Mike Lockwood <lockwood@google.com>
2010-10-28 10:22:47 -04:00
Joe Onorato
e7bc4f5e45 am a1e74744: am 11e2e9b0: Merge "Don\'t turn the button backlights on if the screen is off. Part 2." into gingerbread 2010-10-26 07:28:51 -07:00
Joe Onorato
06eb33acb7 Don't turn the button backlights on if the screen is off. Part 2.
These are the logs from when I just reproduced it here.  This means that we got an event after the
screen turned off.  So isScreenTurningOffLocked() is working, but we need to also check that we're
not off.  This bug is happening because lightSensorChangedLocked is calling
mButtonLight.setBrightness() directly instead of going through updateLightsLocked, which is where
I added that check to not turn the buttons on of the screen is off.

D/PowerManagerService( 1243): onSensorChanged: light value: 1280
I/power   ( 1243): *** set_screen_state 0
D/PowerManagerService( 1243): enableLightSensor false
D/PowerManagerService( 1243): onSensorChanged: light value: 320
D/PowerManagerService( 1243): lightSensorChangedLocked 320
D/PowerManagerService( 1243): lcdValue 55
D/PowerManagerService( 1243): buttonValue 255
D/PowerManagerService( 1243): keyboardValue 0
D/SurfaceFlinger( 1243): About to give-up screen, flinger = 0x8dcf! 0

Bug: 3117801
Change-Id: I722d66cafba71b183cc987b7383d4ad7e171ba82
2010-10-25 14:21:06 -07:00
Joe Onorato
a2a764b9fa am b34fe2f0: am 60607a90: Make sure that when the screen is off, we don\'t try to turn the buttons on too.
Merge commit 'b34fe2f0258eb1ed512b682206b7fe65116f1dbd'

* commit 'b34fe2f0258eb1ed512b682206b7fe65116f1dbd':
  Make sure that when the screen is off, we don't try to turn the buttons on too.
2010-10-24 09:30:05 -07:00
Joe Onorato
60607a9012 Make sure that when the screen is off, we don't try to turn the buttons on too.
Bug: 3117801
Change-Id: I763f114a2b0426660d29bbda04ea7db12c1137e8
2010-10-23 14:49:57 -07:00
Joe Onorato
f186dafdfe am 5747eebf: am a8d477f0: Merge "Pressing the power button quickly needs to turn the screen on and off correctly." into gingerbread
Merge commit '5747eebf6eb5ea91480dc576c45c752685383e37'

* commit '5747eebf6eb5ea91480dc576c45c752685383e37':
  Pressing the power button quickly needs to turn the screen on and off correctly.
2010-10-19 09:53:47 -07:00
Joe Onorato
3d3db601cd Pressing the power button quickly needs to turn the screen on and off correctly.
This does the animation with the power manager lock held, which isn't great, but is safe.

Bug: 3102208
Change-Id: Ib0af3fab1cf6ba47053c10ae8b701376d63802ff
2010-10-18 16:08:16 -04:00
Joe Onorato
b25d5be54b am 258d0e80: am 0d65a3fc: Merge "Screen on/off animation tweaks" into gingerbread
Merge commit '258d0e805ee63685b807b5dae43efc5ecc97179e'

* commit '258d0e805ee63685b807b5dae43efc5ecc97179e':
  Screen on/off animation tweaks
2010-10-16 08:59:20 -07:00
Joe Onorato
609695dab0 Screen on/off animation tweaks
- Pass to surface flinger whether we want animations or not.
- Don't use the animation when the screen goes off because of the prox sensor.
- Turn the screen-on animation back off
- Also, now the animation setting controls whether or not we do the animation.

Bug: 3097475
Bug: 3098508
Change-Id: I205d5564d6668b33a8dc1c40d8cc06c4aad305cf
2010-10-14 17:49:01 -07:00
Joe Onorato
eb86aaaab3 am 9a12a3c8: am ba799098: Merge changes I76513387,I335fb671 into gingerbread
Merge commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96'

* commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96':
  Remove dead code, and make the animation a setting.
  turn off the electron beam
2010-10-13 23:34:21 -07:00
Joe Onorato
c88a1f955c am 14854820: am c0ad216c: Merge "Add a configuration option to turn on the screen when you unplug the device." into gingerbread
Merge commit '14854820eac895a925791fb41ccd330447fd4f02'

* commit '14854820eac895a925791fb41ccd330447fd4f02':
  Add a configuration option to turn on the screen when you unplug the device.
2010-10-12 16:27:22 -07:00
Joe Onorato
b08a1af667 Remove dead code, and make the animation a setting.
When we don't do the brightness fade, turn off the electron beam instead.

Change-Id: I76513387c4fb420a67e59e005f6e8c3bc72f7f08
2010-10-12 14:16:11 -07:00
Joe Onorato
7031e7a60d am 5be893a7: am 446547af: Merge "Don\'t throw when userActivity fails because of the permission check." into gingerbread
Merge commit '5be893a71aa72f54660496dd01cfad66adb86b8f'

* commit '5be893a71aa72f54660496dd01cfad66adb86b8f':
  Don't throw when userActivity fails because of the permission check.
2010-10-12 13:22:41 -07:00
Joe Onorato
6d74765662 Add a configuration option to turn on the screen when you unplug the device.
Bug: 3068624
Change-Id: I7366ece2528b31feee920f4600a475e81a0f3709
2010-10-11 15:16:28 -07:00
Joe Onorato
4b9f62d1a2 Don't throw when userActivity fails because of the permission check.
Just log.  But don't log too often.

Bug: 3083024
Change-Id: I66f942a67ed6c481afb4079045c66931a4c81688
2010-10-11 13:42:00 -07:00
Joe Onorato
2cddeb4b82 am 2c164747: am f7872780: Merge "PowerManagerService needs yet another flag..." into gingerbread
Merge commit '2c164747d364c3e51964d03ecefc5752c7c0c6ba'

* commit '2c164747d364c3e51964d03ecefc5752c7c0c6ba':
  PowerManagerService needs yet another flag...
2010-10-07 12:22:03 -07:00
Joe Onorato
8274a0e536 PowerManagerService needs yet another flag...
... to make sure that if you press the power button to turn off the
screen, that the prox sensor won't turn it back on.

Bug: 3011618
Change-Id: Id16c1d65417539d4592f485b1c3efb737540c3cd
2010-10-05 17:39:01 -04:00
Joe Onorato
557ed7aa29 am 0457db37: am ab2e6284: Merge "Use the private version of userActivity." into gingerbread
Merge commit '0457db37de22d430df0e55a7552dcfe81b701627'

* commit '0457db37de22d430df0e55a7552dcfe81b701627':
  Use the private version of userActivity.
2010-09-30 19:48:31 -07:00
Joe Onorato
a39ccb6c4a Use the private version of userActivity.
We were flunking the enforcement of DEVICE_POWER since apps don't need that permission to use a wake
lock.

Bug: 3051596
Change-Id: I1910d8402adb3e9a4d8635de5d2a301f6286f216
2010-09-30 16:47:09 -07:00
Joe Onorato
d4c2a2f187 am 198297b4: am f01a8730: Merge "Revert "Revert "Check for the DEVICE_POWER permission in userActivity.""" into gingerbread
Merge commit '198297b495d975cd4889f5136cd69368bd319eed'

* commit '198297b495d975cd4889f5136cd69368bd319eed':
  Revert "Revert "Check for the DEVICE_POWER permission in userActivity.""
2010-09-29 22:13:21 -07:00
Joe Onorato
0c32c09cd3 Revert "Revert "Check for the DEVICE_POWER permission in userActivity.""
This reverts commit 4da4827504df019d4e64dd864f70526ff6d384a0.
2010-09-29 10:20:59 -07:00
Mike Lockwood
5d5bf48c98 am 05e11050: am a25eabad: Merge "Revert "Check for the DEVICE_POWER permission in userActivity."" into gingerbread
Merge commit '05e110506156a1b782232833b907afb428802b69'

* commit '05e110506156a1b782232833b907afb428802b69':
  Revert "Check for the DEVICE_POWER permission in userActivity."
2010-09-28 20:21:48 -07:00
Mike Lockwood
4da4827504 Revert "Check for the DEVICE_POWER permission in userActivity."
The change broke SetupWizard and probably other apps

This reverts commit 059f8f93e6e89f80dfb85cfdbcd3bce64c7b1e2c.
2010-09-28 23:07:26 -04:00
Joe Onorato
75a44c6196 am f5bdeba1: am ea2cf2f9: Merge "Check for the DEVICE_POWER permission in userActivity." into gingerbread
Merge commit 'f5bdeba197aba659e2dd3849a5bdfba8826c036d'

* commit 'f5bdeba197aba659e2dd3849a5bdfba8826c036d':
  Check for the DEVICE_POWER permission in userActivity.
2010-09-28 17:40:23 -07:00
Joe Onorato
059f8f93e6 Check for the DEVICE_POWER permission in userActivity.
Change-Id: I6c8038a960bdf32dfad3b0571d86f51f87784370
2010-09-28 17:14:34 -07:00
Amith Yamasani
483c4b1d1f am abdd2c7f: am 95f600b5: Merge "Fix NPE in PowerManagerService on boot, if some settings are corrupted." into gingerbread
Merge commit 'abdd2c7f03651e95424133c2be948238c6dc7bf6'

* commit 'abdd2c7f03651e95424133c2be948238c6dc7bf6':
  Fix NPE in PowerManagerService on boot, if some settings are corrupted.
2010-09-22 17:06:48 -07:00
Amith Yamasani
8b61983ee8 Fix NPE in PowerManagerService on boot, if some settings are corrupted.
Bug: 2715038
Change-Id: I10c08b359ff3cde732c37eb6dff0877cdb021cd9
2010-09-22 16:11:59 -07:00
Dianne Hackborn
eba36ff80d am 227afd3a: am 1188f5e7: Merge "Fix problem where power manager was calling battery stats with bad wl type." into gingerbread
Merge commit '227afd3a1b1a32891e5e20c79fd98b2ccf982426'

* commit '227afd3a1b1a32891e5e20c79fd98b2ccf982426':
  Fix problem where power manager was calling battery stats with bad wl type.
2010-09-15 11:38:47 -07:00
Dianne Hackborn
70be1673ab Fix problem where power manager was calling battery stats with bad wl type.
Also fiddle code to reduce duplication.

Change-Id: I3f1b086e53ef88dac1ec1896fe711b3cfe7fdd58
2010-09-14 11:13:03 -07:00
Dianne Hackborn
e746f03c6c resolved conflicts for merge of 53686433 to master
Change-Id: I27004dc464f5771d3205ae5757c6eccc5b16854d
2010-09-13 16:56:10 -07:00