143 Commits

Author SHA1 Message Date
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
Dianne Hackborn
7e9f4eb260 Track client requests through location manager.
This fixes a problem where applications could ask the location
manager to do very heavy-weight things (like...  say... update
location every minute), which would get accounted against the
system instead of the application because ultimately it is the
system making the heavy calls (wake locks, etc).

To solve this, we introduce a new class WorkSource representing
the source of some work.  Wake locks and Wifi locks allow you
to set the source to use (but only if you are system code and thus
can get the permission to do so), which is what will be reported
to the battery stats until the actual caller.

For the initial implementation, the location manager keeps track
of all clients requesting periodic updates, and tells its providers
about them as a WorkSource param when setting their min update time.
The network location provider uses this to set the source on the
wake and wifi locks it acquires, when doing work because of the
update period.

This should also be used elsewhere, such as in the GPS provider,
but this is a good start.

Change-Id: I2b6ffafad9e90ecf15d7c502e2db675fd52ae3cf
2010-09-13 14:20:48 -07:00
Jim Miller
bc4603b0b1 Fix 2579224: Add a separate timeout for lockscreen vs display
This change adds a second timeout to the SecuritySettings page
separate from the standard display timeout.

Change-Id: I41fe10e31688308f52695ad3ee30a4b0507112bd
2010-09-01 21:00:30 -07:00
Joe Onorato
00d1772d8c am 797e688b: Continue trying to make the turn off quickly after call feature work.
Merge commit '797e688b3bebbf1f50a8ad08528740b064f79153' into gingerbread

* commit '797e688b3bebbf1f50a8ad08528740b064f79153':
  Continue trying to make the turn off quickly after call feature work.
2010-08-26 12:02:51 -07:00
Joe Onorato
797e688b3b Continue trying to make the turn off quickly after call feature work.
The previous implementation worked if the set timeout is short enough, which mine was.  This one
carries the remaining amount of timeout override forward through all of the countdown steps.

Bug: 2844990
Change-Id: I040df22f9f9ddf98c355ac6845b7624e95f84f33
2010-08-26 14:48:56 -04:00
Dianne Hackborn
9adb9c3b10 Various battery info things:
- Now track wake locks in battery history.
- Now track sensors in battery history.
- Some filtering of sensory data.
- Fixes to some data that wasn't cleared when resetting battery stats.
- Print amount discharged since last charge.

And the big part -- keep track of wake locks held per process,
and kill processes that hold wake locks too much while they are in
the background.  This includes information in the battery stats
about the process being killed, which will be available to the
developer if the app is reported.

Change-Id: I97202e94d00aafe0526ba2db74a03212e7539c54
2010-08-13 15:17:49 -07:00
Andreas Huber
d04ed08a7c Add a missing break; to restore old functionality and not turn off the screen after 30secs regardless of system preference.
Change-Id: Ib71113a3bc5aa5fdc088ab4ac3627352499ad3fa
2010-07-29 09:25:10 -07:00
Andreas Huber
84047bc295 Add a missing break; to restore old functionality and not turn off the screen after 30secs regardless of system preference.
Change-Id: I6d160a1851e1f73bac3775d24cf70d46da59aa47
2010-07-27 16:49:10 -07:00
Joe Onorato
76d9bf52f3 am 8c65ee2d: Merge "Add a method to let a properly permissioned app directly manipulate the user activity timeout. We should come up with a better API for this, but this is for a last minute power manager hack to turn off the screen sooner after a phone call ends." i
Merge commit '8c65ee2d509db7dcb50ce4530d52eb5bdca3f917' into gingerbread

* commit '8c65ee2d509db7dcb50ce4530d52eb5bdca3f917':
  Add a method to let a properly permissioned app directly
2010-07-27 09:14:42 -07:00
Joe Onorato
7999bff154 Add a method to let a properly permissioned app directly
manipulate the user activity timeout.  We should come up
with a better API for this, but this is for a last minute
power manager hack to turn off the screen sooner after a
phone call ends.

Change-Id: I76422f952e3e894c90b3311e7d889899c79cbbaa
2010-07-24 11:50:05 -04:00
Jeff Brown
00fa7bdd69 More native input dispatch work.
Removed old input dispatch code.
Refactored the policy callbacks.
Pushed a tiny bit of the power manager state down to native.
Fixed long press on MENU.
Made the virtual key detection and cancelation a bit more precise.

Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
2010-07-03 19:23:01 -07:00
Mike Lockwood
f527c715d7 Don't adjust lights if screen or button brightness is changed when the screen is off.
Change-Id: I798a240374c3a739e1f1eaf36fa9fdef8416f2a2
BUG: 2758292

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-10 14:14:00 -04:00
Mike Lockwood
48358bd5c1 Fix inconsistency in how we handle light sensor when battery is low.
In lightSensorChangedLocked we ignore the light sensor if the battery is low.
But in applyButtonState() and applyKeyboardState() we were still using the previous
mLightSensorScreenBrightness value, which resulted in a race condition that could
leave the button lights on after the screen turns off.
Now we ignore the light sensor value and button brightness override if the battery
is low so the low battery behavior is consistent.

Change-Id: I4943f8904299883211a95596ee207df69d1eaea2
BUG: 2570962

Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-17 22:29:20 -04:00
Mike Lockwood
9c90a37c6e Fix wakelock leak in PowerManagerService.sendNotificationLocked()
Change-Id: Ia5f814fe81413dc5350faaf4c79cff47de62d0ed
BUG: 2592894
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-13 15:40:27 -04:00
Mike Lockwood
f5bd092b50 Improve wakelock debugging:
Throw NullPointerException if tag is null in PowerManager.newWakelock()
Print wakelock owner's uid and pid in dumpsys power output.

BUG: 2522675

Change-Id: I462c7f8c49f9896b2f58cef5a678ebd2c062a8f7
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-03-22 17:10:15 -04:00
Mike Lockwood
b62f959430 Fix problems with new PowerManager.reboot() implementation.
ShutdownThread.reboot() does return so we need to block after calling it
to prevent PowerManager.reboot() from returning.

Since PowerManager.reboot() can now take significantly longer than before,
we now ignore ANRs during shutdown.

Change-Id: Ibceeb265ae382567215f6a399108d8be3a7bbc95
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-03-12 12:35:24 -05:00