3722 Commits

Author SHA1 Message Date
Jeff Brown
fa93584a4f am c6f2b3b3: Merge "Fix policy issues when screen is off. (DO NOT MERGE)" into gingerbread
* commit 'c6f2b3b302c06b8b7b81ec7e3a43a7df1813d0e0':
  Fix policy issues when screen is off. (DO NOT MERGE)
2010-12-23 12:43:48 -08:00
Dianne Hackborn
690d20bb53 Fix issue # 3227963: SecurityException: Neither user 10023 nor...
...current process has android.permission.WAKE_LOCK

When updating a system app, we would actually uninstall the package
of the system app, which also meant removing its uid...!  It was just
luck that we would get the same uid when installing the update after
that.  During that time, if anyone tried to do anything related to
that uid, it would be unknown.

This change tweaks how we go about replacing system apps by making
it more like normal apps -- to make this work, if we need to disable
the system app, we generate a new PackageSetting from the current
system app and replace it into our data structures, so we can update
that without trashing the current correct information about the (still
actually there) system app.

Also fixed a problem where we were not killing the currently running
app before installing, like we do when updating a normal application.

And fixed a problem where we were not deleting the /data .apk when
uninstalling a system app update.

And added a new option to the "pm" command to clear the data associated
with an app.

Change-Id: I0e879677849aa42950a3c360bf78ad820e87674b
2010-12-22 16:31:44 -08:00
Jeff Brown
eb9f7a01b0 Fix policy issues when screen is off. (DO NOT MERGE)
Rewrote interceptKeyBeforeQueueing to make the handling more systematic.
Behavior should be identical except:
- We never pass keys to applications when the screen is off and the keyguard
  is not showing (the proximity sensor turned off the screen).
  Previously we passed all non-wake keys through in this case which
  caused a bug on Crespo where the screen would come back on if a soft key
  was held at the time of power off because the resulting key up event
  would sneak in just before the keyguard was shown.  It would then be
  passed through to the dispatcher which would poke user activity and
  wake up the screen.
- We propagate the key flags when broadcasting media keys which
  ensures that recipients can tell when the key is canceled.
- We ignore endcall or power if canceled (shouldn't happen anyways).

Changed the input dispatcher to not poke user activity for canceled
events since they are synthetic and should not wake the device.

Changed the lock screen so that it does not poke the wake lock when the
grab handle is released.  This fixes a bug where the screen would come
back on immediately if the power went off while the user was holding
one of the grab handles because the sliding tab would receive an up
event after screen turned off and release the grab handles.

Bug: 3144874
Change-Id: Iebb91e10592b4ef2de4b1dd3a2e1e4254aacb697
2010-12-22 16:00:21 -08:00
Mattias Petersson
2f209e885a am 1622eee2: Improve performance of WindowState.toString()
* commit '1622eee2e48678b17a4668641957f09213f98905':
  Improve performance of WindowState.toString()
2010-12-22 11:25:32 -08:00
Mattias Petersson
1622eee2e4 Improve performance of WindowState.toString()
This fix improves the performance by caching the string that should
be returned, and reuse it next time if possible.
This will make it faster to switch between activities, approximately
half the time to create the new view when changing from landscape to
portrait. Also, the time for starting a new application is be reduced
as WindowState.toString is being called thousands of times in this
case.

Change-Id: I2b8b9bc1e251d1af43b6c85f049c01452f2573a2
2010-12-22 10:42:47 -08:00
Robert Greenwalt
46f987465c am 5d0fafe8: Merge "Be sure and report NO_CONNECTIVITY when needed." into gingerbread
* commit '5d0fafe80752ad4e40fe0ec2bc06c43e669a0612':
  Be sure and report NO_CONNECTIVITY when needed.
2010-12-21 16:06:19 -08:00
Robert Greenwalt
d68e321841 Be sure and report NO_CONNECTIVITY when needed.
Reports that we sometimes didn't report NO_CONNECTIVITY led to this suggested change.
Could not repro the problem, but the change looks ok anyway.  Better safe than sorry.

bug:3276408
Change-Id: I0cdb48a05a5c9dfcf3a0b468a6eae43d461023b1
2010-12-21 11:43:28 -08:00
Mattias Petersson
33b432476e Improve performance of WindowState.toString()
This fix improves the performance by caching the string that should
be returned, and reuse it next time if possible.
This will make it faster to switch between activities, approximately
half the time to create the new view when changing from landscape to
portrait. Also, the time for starting a new application is be reduced
as WindowState.toString is being called thousands of times in this
case.

Change-Id: I2b8b9bc1e251d1af43b6c85f049c01452f2573a2
2010-12-21 10:15:11 +01:00
Mathias Agopian
d8a98cf0a3 am c724f2fb: disable the bypass mode. DO NOT MERGE.
* commit 'c724f2fba330da275f46586aeb5f0ae7bd2fae99':
  disable the bypass mode. DO NOT MERGE.
2010-12-20 11:30:23 -08:00
Dianne Hackborn
d485c76b5e am c8e8a12b: Merge "Fix issue #3289835: NullPointerException in..." into gingerbread
* commit 'c8e8a12b3c649bbaf610d2ff17bb10a7b32fe579':
  Fix issue #3289835: NullPointerException in...
2010-12-20 11:30:07 -08:00
Mathias Agopian
c724f2fba3 disable the bypass mode. DO NOT MERGE.
SF bypass mode triggers a bug in the display controller that
case cause the device to freeze.

Change-Id: If29b4d5132f463d13831b082b904c235f15a19fb
2010-12-18 03:45:26 -08:00
Dianne Hackborn
3ec27e06a7 Fix issue #3289835: NullPointerException in...
..PackageManagerService.grantPermissionsLP when updating system app

Change-Id: I36c1b96d2fe9a8737843d30f3a2669935fc281bb
2010-12-16 12:41:56 -08:00
Dianne Hackborn
78e9f4cbae am e4a59519: Fix issue #3154576: battery stats checkin should include UID -> packages+ map
* commit 'e4a5951925f16f18dae91ed65567e96528f17fee':
  Fix issue #3154576: battery stats checkin should include UID -> packages+ map
2010-12-13 14:37:09 -08:00
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
Jean-Baptiste Queru
6d13b146e0 am e78a0009: resolved conflicts for merge of 4b94c451 to stage-korg-master
* commit 'e78a000955c283509ee8a21b8b7e448060ac8dd8':
  Added dropbox broadcast notification
2010-12-13 13:10:23 -08:00
Jean-Baptiste Queru
e78a000955 resolved conflicts for merge of 4b94c451 to stage-korg-master
Change-Id: I07b974f96ca598677e58623050e4668822e68f23
2010-12-13 13:06:13 -08:00
Mathias Agopian
a2c3b35587 am 74da537f: Merge "[317580] fix issue where the screen wouldn\'t be rotated properly in bypass mode" into gingerbread
* commit '74da537f80ba36c1279c04fcb85d89fc38c246a6':
  [317580] fix issue where the screen wouldn't be rotated properly in bypass mode
2010-12-08 16:15:08 -08:00
Hakan Still
b247536aa3 Added dropbox broadcast notification
To monitor the dropbox an application have to either poll the dropbox
and keep track of all entries or observ the /data/system/dropbox
directory. The later requires that the application runs as system-user.
This commit adds that a broadcast intent is sent when something is written
to the dropbox and an application can just listen on this intent and
then reads the entry with help of the DropboxManager class.
The application have to hold the permission android.permission.READ_LOGS
to get the intent.

Change-Id: I1f77f206a243df69f4ed5306078c47f7bf6181ec
2010-12-08 13:19:33 +01: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
4e345ab7df am a2977c38: Merge changes Ie03796ae,Ide3e980a into gingerbread
* commit 'a2977c383d363e1e88a5b36230b1fa4c312807d2':
  [3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)
  [3171580] Add transform field to native buffers. (DO NOT MERGE)
2010-12-07 14:22:56 -08:00
Mathias Agopian
a0f011ff49 am 05813b0e: Merge changes I244b5469,I32044e91 into gingerbread
* commit '05813b0eb92cb1bc79607ee402f14ca1e4b43f6d':
  [3253328, 3171580] Treat GONE and INVISIBLE views the same when calculating transparent regions
  [3171580] Fix two typos related to fixed-size buffers
2010-12-07 14:20:14 -08:00
Mathias Agopian
48f42f8c3f am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread
* commit '4153bf3a259624a2f2dc497b77b225a1fb517abc':
  [3171580] don't automatically log GraphicBuffer allocation failures
2010-12-07 14:20:09 -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
Jean-Baptiste Queru
a30c12a183 am 4a88013a: resolved conflicts for merge of bf1439c5 to stage-korg-master
* commit '4a88013a4a06a9ea80e8419f94694936e6b013f0':
  Preserve flags field of event passed to injectKeyEvent()
2010-12-02 15:21:35 -08:00
Jean-Baptiste Queru
4a88013a4a resolved conflicts for merge of bf1439c5 to stage-korg-master
Change-Id: Iab543a7ee449025f1df5d58afaa8f8fdd4809c99
2010-12-02 15:16:53 -08:00
Mike Playle
c6ded10dd1 Preserve flags field of event passed to injectKeyEvent()
This patch allows users of WindowManagerService.injectKeyEvent() to
set flags on the key event being injected.

In particular this allows long presses (FLAG_LONG_PRESS) to be
injected into the window manager.
2010-12-02 16:25:46 +00:00
Eric Laurent
ed98a7c776 am 78d81851: Merge "Fix issue 2641884: Bluetooth volume is dependent on in call volume." into gingerbread
* commit '78d81851a8ef6691541215afb19e5bc690a4c3c0':
  Fix issue 2641884: Bluetooth volume is dependent on in call volume.
2010-12-01 16:04: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
0d28be6812 am e23212bc: Merge "Fix issue 3142808." into gingerbread
* commit 'e23212bc89bfcb3afbf8fdb5504556ead890e1a8':
  Fix issue 3142808.
2010-12-01 11:28:54 -08:00
Eric Laurent
e23212bc89 Merge "Fix issue 3142808." into gingerbread 2010-12-01 11:26:37 -08:00
Irfan Sheriff
f38b709e47 am af2d3c7c: Merge "DO NOT MERGE Remove wifistatetracker lock access in BroadcastReceiver" into gingerbread
* commit 'af2d3c7ccebb009f31a92c1a87b0925a2891e1c4':
  DO NOT MERGE Remove wifistatetracker lock access in BroadcastReceiver
2010-12-01 09:53:17 -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
3248b484a2 am b483d5cd: fix [3237242] sensormanager sensor active count gets out of sync
* commit 'b483d5cd134cda393824fd8e9c1a5443bd868ae6':
  fix [3237242] sensormanager sensor active count gets out of sync
2010-11-30 15:51:00 -08:00
Mathias Agopian
be0ece6f85 am 186b68b7: Merge "allow rotation-vector to have 4 components" into gingerbread
* commit '186b68b74417e8ef73f2083769166e7785df6c30':
  allow rotation-vector to have 4 components
2010-11-30 15:41:41 -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
4b7de2c8de am 66cff624: Merge "Uses 4-th order low-pass for extracting gravity." into gingerbread
* commit '66cff624e9abd23da05ddc20698eb3e7d0fb5a17':
  Uses 4-th order low-pass for extracting gravity.
2010-11-30 14:18:05 -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
e3895b6ff2 am 24754c9f: Merge "don\'t attempt to normalize the rotation vector" into gingerbread
* commit '24754c9f94b1bd8b176456da82a6059b2e8ded0f':
  don't attempt to normalize the rotation vector
2010-11-30 14:05:44 -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
550b1e17c3 am 671a6ff4: Add support for virtual sensors.
* commit '671a6ff4be11b3e2d8eb017e0c7a78e6133fb2b8':
  Add support for virtual sensors.
2010-11-18 15:52:14 -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
f11bf284d3 am 305bc0fe: Merge "Fix a race condition in sensormanager" into gingerbread
* commit '305bc0fe977f6197bfae847dbaf58916cf8980ba':
  Fix a race condition in sensormanager
2010-11-15 13:19:46 -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
792b847ee1 am fcab475c: Merge "record the last event received regardless of having clients or not" into gingerbread
* commit 'fcab475c906da5c159bc56a32c2610f6f55eafd9':
  record the last event received regardless of having clients or not
2010-11-11 14:49:35 -08:00