3227 Commits

Author SHA1 Message Date
Dianne Hackborn
e4a5951925 Fix issue #3154576: battery stats checkin should include UID -> packages+ map
Includes some other small fixes to battery collection and a few
other things.

Output of package info looks like this:

5,0,i,uid,1000,com.android.settings
5,0,i,uid,1000,com.android.providers.subscribedfeeds
5,0,i,uid,1000,com.android.providers.settings
5,0,i,uid,1000,com.android.server.vpn
5,0,i,uid,1000,android
5,0,i,uid,1000,com.android.systemui
5,0,i,uid,1000,com.google.android.backup
5,0,i,uid,1001,com.android.phone
5,0,i,uid,1001,com.android.providers.telephony
5,0,i,uid,1022,com.android.nfc
5,0,i,uid,10021,com.google.android.location
5,0,i,uid,10021,com.google.android.syncadapters.calendar
5,0,i,uid,10021,com.google.android.gsf
5,0,i,uid,10021,com.google.android.syncadapters.contacts
5,0,i,uid,10026,com.android.providers.downloads.ui
5,0,i,uid,10026,com.android.providers.media
5,0,i,uid,10026,com.android.providers.drm
5,0,i,uid,10026,com.android.providers.downloads
5,0,i,uid,10032,com.android.launcher
5,0,i,uid,10039,com.google.android.gm
5,0,i,uid,10041,com.google.android.gallery3d
5,0,i,uid,10049,com.android.providers.calendar

Change-Id: I9e38f254eef146339113ad270f5c6e8b60fb7a1d
2010-12-13 14:31:40 -08:00
Mathias Agopian
ee5a3aca57 [317580] fix issue where the screen wouldn't be rotated properly in bypass mode
In some situations, the screen transformation would not be
applied while in bypass mode.

Change-Id: I3d6dd52e4c12b11aae97b54bf8e2322536eee37f
2010-12-07 21:16:14 -08:00
Mathias Agopian
025005f562 [3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)
This is a poor's man precursor to the h/w composer HAL.
Basically we detect when a window is full screen and in
that case we bypass surfaceflinger's composition step, which
yields to much improved performance.

Change-Id: Ie03796ae81a1c951949b771c9323044b980cb347
2010-12-03 17:35:07 -08:00
Mathias Agopian
1989af22b5 [3171580] Fix two typos related to fixed-size buffers
mFixedSize was never set, this bug was introduced during some "cleanup", in
practice this could cause some issues when a fixed-size buffer was used and
the window was resized.

Layer::drawForSreenShot() had a typo that had no effect.

mFixedSize was used to determine if filtering was needed, which was a bit too
conservative and created a dependency between filtering and "fixed size" states
which should exist.

Now we enable filtering based on the size of the buffer vs. the size of the layer.

Change-Id: I32044e91b0c944c1b137efdceb3f01dfaa78119d
2010-12-03 17:35:06 -08:00
Mathias Agopian
e869aee382 [3171580] don't automatically log GraphicBuffer allocation failures
some of these failures are not fatal and even expected in some cases
so they should not emit a dump in the log in those cases.

Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
2010-12-03 17:33:09 -08:00
Eric Laurent
e4eaa317f6 Fix issue 2641884: Bluetooth volume is dependent on in call volume.
The problem is that the code in AudioPolicyManagerBase::checkAndSetVolume() that forces
voice volume to max when setting bluetooth SCO volume is not called if the bluetooth stream
volume did not actually change. So even if we re apply volumes when switching to bluetooth
device, the volume voice volume is not changed and remains what it was when routed to earpiece
What makes things worse on Passion is that stream volumes are limited when connected to bluetooth
and their actual value does not change as soon as they exceed the limit threshold.

Change-Id: Id7c317db45b392a1c20dca2859678e3c64a371ed
2010-12-01 14:25:39 -08:00
Eric Laurent
e23212bc89 Merge "Fix issue 3142808." into gingerbread 2010-12-01 11:26:37 -08:00
Irfan Sheriff
af2d3c7cce Merge "DO NOT MERGE Remove wifistatetracker lock access in BroadcastReceiver" into gingerbread 2010-12-01 09:51:27 -08:00
Eric Laurent
b87b53d7a8 Fix issue 3142808.
There is a bug in the way audio policy manager handles A2DP interface suspend/restore
when SCO is used. This bug is not new but has been triggered by a change in the timing
of the events received by audio policy manager when a call is setup and torn down
introduced by commit 164a8f86c7e48992691368c4895709c3bdb835a4.

The fix consists in grouping the control of A2DP suspended state in a single function
that is called systematically when conditions affecting this state are changed:
- call state change
- device connection/disconnection
- change in forced usage.

Change-Id: I46ee2399ee5547b60511fc6cfd32e2720091b0f8
2010-12-01 09:45:33 -08:00
Irfan Sheriff
f92b453a58 DO NOT MERGE Remove wifistatetracker lock access in BroadcastReceiver
The worksource reporting gets blocked by the
statetracker lock which can cause system restarts when
done from broadcastreceiver thread

Bug: 3153787
Change-Id: Ie70687e7453a1c3618bac1424562be44762b2c9d
2010-11-30 16:07:05 -08:00
Mathias Agopian
b483d5cd13 fix [3237242] sensormanager sensor active count gets out of sync
whether a physical sensor needed to be active or not was managed by
a simpe reference counter; unfortunatelly nothing prevented it to
get out of sync if a sensor was disabled more than once.

sensorservice already maintainted a list of all the "clients"
connected to a physical sensor; we now use that list to determine if
a sensor should be enabled. This can never be "out-of-sync" since
this is the only data structure linking a sensor to a user of that
sensor.

also removed the isEnabled() method, which was never used and
implemented wrongly (since it didn't take into account that a sensor
could be disabled for a client but not of another).

Change-Id: I789affb877728ca957e99f7ba749def37c4db1c7
2010-11-30 15:41:16 -08:00
Mathias Agopian
186b68b744 Merge "allow rotation-vector to have 4 components" into gingerbread 2010-11-30 15:38:38 -08:00
Mathias Agopian
6038db3dda Uses 4-th order low-pass for extracting gravity.
Most accelerometers have 8-bits accuracy so we beed to
reject 48dB in thestop-band, which requires a 4-th order
filter at the cut-off frequency we're using.

Change-Id: Ic00421d38d751641f86b1f3ad7663e6b44a91198
2010-11-30 14:07:28 -08:00
Mathias Agopian
7badd2c402 allow rotation-vector to have 4 components
- upadte documentation for rotation vector
- update method dealing with rotation vector to deal with 4 components
- virtual rotation-vector sensor reports all four components
- improve SensorManager documentation layout

Whent he 4-th component of the rotation-vector is present, we can save
a square-root when computing the quaternion or rotation matrix from it.

Change-Id: Ia84d278dd5f0909fab1c5ba050f8df2679e2c7c8
2010-11-30 14:07:09 -08:00
Mathias Agopian
5d45c33eb8 don't attempt to normalize the rotation vector
indeed, by construction of the rotation matrix, it is
guaranteed to have a length of 1.

moreover, the normalization code was missing a square-root,
fortunatelly, since the length is 1, this didn't cause any
damage (since sqrt(1) = 1).

Change-Id: I9facd668caaf5bb3bfccb139ab872f2bb2066365
2010-11-22 01:04:09 -08:00
Mathias Agopian
671a6ff4be Add support for virtual sensors.
Rework sensorservice to allow "virtual sensors", that is
sensors that report a synthetized value based on real sensors.

the main change to sensorservice is around managing which real
sensor need to be activated and which rate to use.

The logic for all this has been moved into SensorDevice, which
essentially wraps the sensor HAL but adds two features to it:
- it keeps track of which sensors need to be activated
- it keeps track of what rate needs to be used

For this purpose an "identity" is associated with each real sensor
activation, so we can track them.

On start-up we check for gravity, linear-acceleration and
rotation-vector sensors, if they're not present in the HAL, we
synthetize them in sensor-service.

Change-Id: I841db2c1b37ef127ed571efa21732ecc5adf1800
2010-11-18 15:29:05 -08:00
Mathias Agopian
f33a6e9645 Fix a race condition in sensormanager
the per-connection state assumed the main sensorservice
lock was held during access. This is however not true while
pre-processing the events just before sending them to clients.
Therefore, there was a small window during which this state
could be modified while being used.

we now have an internal lock that protects this state.

Change-Id: I594680f20f09d6a4f1f38f093a1d3f650dcef1be
2010-11-14 20:55:25 -08:00
Mathias Agopian
3a9223ebf8 record the last event received regardless of having clients or not
We only recorded the last received event (which is needed when a sensor
is activated on a connection) when there was some connection active.
This should fix an issue where sometimes the light sensor doesn't
return an event whent activated.

we also didn't need to hold the main lock while dispatching events
to clients.

Change-Id: I6c6386c040051ce205e3c0516c678e0603fa45e1
2010-11-10 17:50:28 -08:00
Mathias Agopian
94c4f5c1b2 improve sensorservice dumpsys and increase the max sensor rate to 1 ms (1000Hz)
the increased maximum rate is needed for proper gyro integration, current gyro
parts can sample at up to 800Hz

Change-Id: Ide75f6d5bc7a0fdafeb2dafd72db39e7afb9e794
2010-11-08 13:51:53 -08:00
Kenny Root
70fc04c84d Reorganize PackageManager dump to avoid NPE
versionCode and mVersionName were added recently but ps.pkg can be null
in some situations. Move them to where it will check before
dereferencing it.

Bug: 3152896
Change-Id: If992a1f29ac7b8f595f847b7743fd2374662bb6e
2010-11-05 11:59:45 -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
Mike Lockwood
fa405280b2 GPS: remove some logging
Change-Id: Ib2dca53364c9da207a87f2664b54d2ec1d1bd8d9
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-28 07:35:26 -04:00
Mathias Agopian
e031ba8d20 really fix [3118445] Transform * Transform does not work as expected
Two bugs were counter acting each other.
- rotation matrices are on the left-hand side of multiplies
- the transform of the overlay is applied before that of the layer

Change-Id: Ia79bd368e9b719235c89ecf244ea263f01ce906a
2010-10-27 18:04:11 -07:00
Mike Lockwood
9e3191d16c Location Manager: Fix LocationManager.getBestProvider filtering.
getBestProvider should only return location providers that the client
has permission to use.

BUG: 3124614

Change-Id: I065091d0445092563bc53fb4f7d93a1ab6bebb9a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-26 10:01:55 -04: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
Mike Lockwood
8c32bddfac Merge "GPS: Disable verbose logging" into gingerbread 2010-10-25 13:49:13 -07:00
Mike Lockwood
4a7b65e0d5 GPS: Disable verbose logging
BUG: 3127049

Change-Id: I9efd9eb7ff69724b133f3b70c52e173f49ddfbc5
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-25 16:35:55 -04:00
Mathias Agopian
457bed2bc6 Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread 2010-10-25 13:31:11 -07:00
Mathias Agopian
ce4d36ad72 Merge "fix [3118445] Transform * Transform does not work as expected" into gingerbread 2010-10-25 13:31:03 -07:00
Wu-cheng Li
8982120437 Merge "Remove the FLIP_H/ROT_90 workaround from CameraService.do not merge" into gingerbread 2010-10-25 08:55:54 -07:00
Wu-cheng Li
994c02bbfe Remove the FLIP_H/ROT_90 workaround from CameraService.do not merge
Now overlay does flip before rotation.
bug:3114236
Change-Id: I1780e56154566435a0ceeb2f101de7ed0a0613cb
2010-10-25 14:56:22 +08:00
Mathias Agopian
c57b15c9c8 fix [3123221] Video sticks playing back upside down following orientation switch
the overlay wasn't reconfigured when the screen-orientation changed. It was
only done when a parameter of the surface itself changed.

Change-Id: I0ca0925bf58ded4c91ab89d12cb1fe4d1477c96c
2010-10-24 19:03:58 -07:00
Mathias Agopian
546c21dbfa fix [3118445] Transform * Transform does not work as expected
The problem wasn't in the multiply operator, but rather in the code
that built the transform from the HAL bitmask.

We now use the multiply operator to build the Transform from the bitmask,
which guarantees, it'll always be correct.

Also added a simple test for Transform.

Change-Id: I09bf3b0e51d92f59d83ea91c4cc94fc2aa0bf227
2010-10-24 14:53: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
Dianne Hackborn
5383f502e4 Fix issue #3122240: Expose xlarge in GB.
Plus some other small API cleanup.

Change-Id: I1a3c60f510f99224cccac9cc3f838f04141064f8
2010-10-22 12:59:20 -07:00
Mike Lockwood
edc0f3876c GPS: Fix network type logic in requestRefLocation
Change-Id: I20ef81bcf029b289389dba57e6cf457fda5acbf4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-22 09:16:17 -04:00
Dianne Hackborn
fdbb2168f7 Merge "Adjust boundaries for screen sizes." into gingerbread 2010-10-21 19:21:28 -07:00
Mathias Agopian
0c63605535 Merge "Mirror the preview for front-facing cameras. do not merge" into gingerbread 2010-10-21 16:20:07 -07:00
Dianne Hackborn
b51dc0fe2a Adjust boundaries for screen sizes.
Part of issue #3116702: New manifest tags for supported screen sizes

Kind-of.

If you turn your head side-ways.

Change-Id: I446f1e2eadba1ce284c93ff9fb0197bb0e6b0fca
2010-10-21 15:34:47 -07:00
Mathias Agopian
583fefc8dc Merge "Use the context_priority extension when present." into gingerbread 2010-10-20 20:04:46 -07:00
Tony Wu
b09773dee0 Fix isUsbMassStorageConnected() will always return true
After UMS mounted, isUsbMassStorageConnected() will always return true even if USB is disconnected.
It's because mUmsEnabling will always be ture.

Change-Id: Ib24b2359ea2684eb0a9faeb880f383e87630e6e1
2010-10-20 10:17:28 -07:00
Wu-cheng Li
b982fb4fd3 Mirror the preview for front-facing cameras. do not merge
Now overlay does ROT_90 before FLIP_V or FLIP_H. It should be FLIP_V
or FLIP_H first. The formula should be changed after overlay is fixed.

bug:3059865
Change-Id: Ie4366bf7f1fcac7383e8dfc74b1b865997bbbcc6
2010-10-20 18:29:18 +08:00
Joe Onorato
431bb22695 Reduce logging.
Remember, the system and main logs are
    - Shared resources
    - Primarily for recording problems
    - To be used only for large grained events during normal operation

Bug: 3104855
Change-Id: I136fbd101917dcbc8ebc3f96f276426b48bde7b7
2010-10-19 15:08:05 -04:00
Chris Tate
1858031946 DO NOT MERGE. Turn down backup logging for release.
Change-Id: Ib9f4fd15981fcf52b5d5912995c1891836303427
2010-10-19 11:22:03 -07:00
Kenny Root
928b07480b Merge "Don't symlink native library paths for old apps" into gingerbread 2010-10-19 09:28:28 -07:00
Kenny Root
e68d58a298 Don't symlink native library paths for old apps
Apps that existed in an ASEC container before we put native libraries
in the ASEC container will have their native libraries in the
/data/data/<app>/lib directory. Don't try to symlink to the ASEC
container's library directory in this case.

Bug: 3108230
Change-Id: I32167341cc8ff8c005e50f456ee7c783bfb0bf22
2010-10-18 16:55:27 -07:00
Mike Lockwood
5d5a9db514 Merge "GPS: Enable some more logging" into gingerbread 2010-10-18 15:14:46 -07:00
Mike Lockwood
b8d9033d99 GPS: Enable some more logging
Change-Id: I7d13c859002fa96fa8c361c0c709931c6b12eb99
Signed-off-by: Mike Lockwood <lockwood@google.com>
2010-10-18 17:59:48 -04:00
Mike Lockwood
ba2ec2b44f Merge "Enable framework GPS and location manager logging" into gingerbread 2010-10-18 14:16:15 -07:00
Mike Lockwood
2d4d1bf14b Enable framework GPS and location manager logging
Change-Id: Id54fc01e7288e7d90d7b76824b708bcb2ee88333
Signed-off-by: Mike Lockwood <lockwood@google.com>
2010-10-18 17:06:26 -04:00