61232 Commits

Author SHA1 Message Date
Jeff Brown
1e08fe90df Eliminate hw.keyboards system properties.
Stop using system properties to publish information about
the key character map path.  Instead, we can retrieve it
on demand by asking the window manager.

It was possible to exhaust the supply of system properties
when repeatedly adding and removing input devices.

Bug: 5532806
Change-Id: Idd361a24ad7db2edc185c8546db7fb05f9c28669
2011-11-15 18:00:10 -08:00
Jeff Brown
9058435dc1 Merge "Fix races when content providers are acquired and released." into ics-mr1 2011-11-14 18:35:57 -08:00
Dianne Hackborn
f10a536460 Merge "Maybe fix issue #5405788: Device continuously opening and closing..." into ics-mr1 2011-11-14 18:35:46 -08:00
Jeff Brown
ddaa9ac896 Fix races when content providers are acquired and released.
This change fixes race conditions that occur very regularly when
content providers are accessed from multiple threads at the same
time.

When a content provider is not already in the application's cache,
the application needs to ask the ActivityManager to obtain it.
Meanwhile, another thread can come along and do the same thing.
This can cause problems because the application attempts to
install two copies of the provider and the reference counts
and other bookkeeping can get muddled.

Similarly, there are races between releasing the last reference
to a content provider and acquiring the content provider.  It's
possible for one thread to snatch the content provider from the
jaws of death.  We need to handle this explicitly to ensure that
the content provider does not accidentally get released right
after it was acquired by the other thread.

This change ensures that the reference count bookkeeping and
provider map are maintained in parallel while holding the same lock.
Previously because the lock was dropped and reacquired in the
middle of acquisition and removal, it was possible for a
content provider with a zero reference count to be returned
to the application.  Likewise, it was possible for a content
provider with a non-zero reference count to be disposed!

This change also performs compensatory actions when races are
detected to ensure that the necessary invariants are maintained
throughout.  In particular, it ensures that the application
drops a duplicate reference to a content provider when no
longer needed.

Another way to solve this problem would be to explicitly prevent
the races from happening in the first place by maintaining a
table of content providers that are in the process of being
acquired.  The first thread to attempt to acquire the provider
would store a record.  The next thread would find the record
and block until the first thread was finished.  I chose not
to implement the code in that manner because we would still
have needed to perform compensatory actions in the case where
the same provider binder has multiple logical names.  Also,
it could cause deadlocks if the attempt to acquire
a content provider were re-entrant for some bizarre reason.

Bug: 5547357
Change-Id: I2ad39a8acc30aaf7ae5354decd0a0a41e9b9c3da
2011-11-14 18:31:13 -08:00
Daisuke Miyakawa
d8f5e6badb Merge "Allow ContactsProvider to remove dulicates" into ics-mr1 2011-11-14 17:54:17 -08:00
Dianne Hackborn
813075a678 Maybe fix issue #5405788: Device continuously opening and closing...
...the "Complete action using" dialog

I have never been able to reproduce this consistently, but here is
another stab in the twilight.  It looks like during boot we have
a potential race where we could reset the config sequence number after
we had gone through a config change, causing ActivityThread to ignore
a following config change.  Maybe this change will help.

Change-Id: I4b731df5fd5c63894ca2e9bd34693b31ab1c0565
2011-11-14 17:45:19 -08:00
Jamie Gennis
6b228af6ff Merge "EGL: add the ANDROID suffix to the blob cache ext" into ics-mr1 2011-11-14 17:36:46 -08:00
Jim Miller
ff95f65725 Merge "Fix 5579440: Add transport control view to tablet unlock screens" into ics-mr1 2011-11-14 16:14:07 -08:00
Tsu Chiang Chuang
6a54a997e3 Merge "Adding mobile microbenchmark tests." into ics-mr1 2011-11-14 14:35:42 -08:00
Adam Cohen
6066a2b4de Merge "Fix uncaught exception in WindowManager#setWallpaperOffsets (issue 5613241)" into ics-mr1 2011-11-14 14:33:06 -08:00
Jim Miller
faed16030d Fix 5579440: Add transport control view to tablet unlock screens
This updated tablet layouts to support showing album art and transport
control views in PIN, pattern and password screens of lock screen.

It also allows the addition of a background protect asset and
the ability to show the system wallpaper on layouts that define a
transport_bg_protect view.

Also updated layout to use new ICS-style buttons on lock screen and
fixed bug with "forgot pattern" button where we were showing the
emergency call icon.

To avoid problems with leading ones in the mono-space clock font,
we now right-justify status text on tablet and remove the AM/PM
indicator.

Status font size adjusted by UX.

Added background protection drop shadow to transport control.

Fixed portrait mode to be right-justified when transport is showing.

Change-Id: I790292fc39f4588f87adc9d9241706817ae6baab
2011-11-14 14:09:05 -08:00
Adam Cohen
8e2e572224 Fix uncaught exception in WindowManager#setWallpaperOffsets (issue 5613241)
Change-Id: I4646095f4cde9514425be8ab2dbf805d9788aa5c
2011-11-14 13:28:50 -08:00
Daisuke Miyakawa
19352e0852 Allow ContactsProvider to remove dulicates
Bug: 5484956
Change-Id: Ie88af0c3d21919ca201f4fcdd46ca09e9f8d94c0
2011-11-14 13:16:07 -08:00
Jean-Michel Trivi
258576a82c Merge "Fix 5607938 AudioFocusDeathHandler leaks GREF" into ics-mr1 2011-11-14 12:31:10 -08:00
Dave Burke
9d66da8ae6 Merge "Revert "Discard framebuffer rendering queues when discarding layers"" into ics-mr1 2011-11-14 12:25:53 -08:00
John Wang
72a31ab98f Merge "[maguro] Fix STK issues" into ics-mr1 2011-11-14 12:10:16 -08:00
Mathias Agopian
c93a151fde Merge "Define, document, and test the behavior of very large SurfaceTextures" into ics-mr1 2011-11-14 11:49:42 -08:00
Dave Burke
7077506f99 Revert "Discard framebuffer rendering queues when discarding layers"
This reverts commit da96f8ac2c1c35a54f3f36e6d776cb386a251d03.
2011-11-14 11:39:30 -08:00
dujin.cha
e81932e92a [maguro] Fix STK issues
1. Fix Bug 5574160 (Abnormal Setup menu)
2. Fix Bug 5558273 (GetInkey issue)
3. Fix BUg 5558612 (No default alpha id)
4. Fix Vodafone UK ALS issue.

Bug : 5574160, 5558273, 5558612

Change-Id: Ief74d0e4f4f28dff7a435e9dab1fab1ca1d9bfaf
Signed-off-by: dujin.cha <dujin.cha@samsung.com>
2011-11-14 10:46:19 -08:00
Alex Sakhartchouk
cde433c5f7 Merge "Fixing a race condition in RSSurfaceView. Bug 5601083 When destroy is called shortly after creation, RS tries to set a surface on a partially destroyed context." into ics-mr1 2011-11-14 10:35:08 -08:00
Eric Laurent
030bb99814 Merge "audioflinger: fix noise when skipping to next song" into ics-mr1 2011-11-14 08:38:05 -08:00
Mathias Agopian
2858749704 Merge "Discard framebuffer rendering queues when discarding layers Bug #5581817" into ics-mr1 2011-11-14 00:52:09 -08:00
Scott Main
2af9f21c66 am 19b1c12b: Merge "Docs: update state list drawable with state_activated and revise selected/focused" into ics-mr0
* commit '19b1c12b5eb3417e9f56810cc08ee1e560da0a99':
  Docs: update state list drawable with state_activated and revise selected/focused
2011-11-11 19:22:07 -08:00
Jeff Brown
6f0464e79d am f1f0c873: Fix bug in TextLayoutCacheKey handling embedded nulls.
* commit 'f1f0c873b1d119a19342cb67ca77b59607951659':
  Fix bug in TextLayoutCacheKey handling embedded nulls.
2011-11-11 19:22:04 -08:00
Adam Powell
771d0c99f6 am 6200a4b7: Merge "DO NOT MERGE Cherry pick from ics-mr1 - Bug 5275928 - Don\'t try to open an overflow menu under invalid circumstances." into ics-mr0
* commit '6200a4b7eb07507055af93ec1a054640a39b9751':
  DO NOT MERGE Cherry pick from ics-mr1 - Bug 5275928 - Don't try to open an overflow menu under invalid circumstances.
2011-11-11 19:22:02 -08:00
Robert Ly
632f072b22 am 5f8b7269: docs: fix typo
* commit '5f8b7269d66acb45dcb74a1eb38102cb1d1431df':
  docs: fix typo
2011-11-11 19:22:01 -08:00
Robert Ly
83c16e2577 am 5ad6f646: Merge "docs: ndk r7 rel notes" into ics-mr0
* commit '5ad6f646fbe692b94961df6472bec2b8bd1ea382':
  docs: ndk r7 rel notes
2011-11-11 19:17:23 -08:00
Mathias Agopian
b89d88f531 Define, document, and test the behavior of very large SurfaceTextures
updateTexImage() now throws a runtime exception when its native
counterpart fails

Bug: 5506633

Change-Id: I151a6f685d465966e7df4df624412ab2da62e95f
2011-11-11 18:44:35 -08:00
Adam Powell
a8743f152a Fix bug 5425280 - Two ActionBar icons show up
Change-Id: Ic82f8ce648f9314a0800eeff326df7d8dfe5027b
2011-11-11 18:35:53 -08:00
Scott Main
19b1c12b5e Merge "Docs: update state list drawable with state_activated and revise selected/focused" into ics-mr0 2011-11-11 17:17:23 -08:00
Eric Laurent
f9c361dec4 audioflinger: fix noise when skipping to next song
When audio effects are enabled, a noise can be heard at the
beginning of the new song when skipping to next song in music app.

This is because some effects (especially virtualizer) have a tail.
This tail was not played when previous song was stopped because effects were
not processed when no tracks were present on a given session. This is to
reduce CPU load when effects are enabled but no audio is playing.
The tail was then rendered when the new song was started.

Added a delay before stopping effect process after all tracks have been removed from a session.

Issue 5584880.

Change-Id: I815e0f7441f9302e8dfe413dc269a94e4cc6fd95
2011-11-11 16:33:24 -08:00
Christopher Tate
c51bb4d394 Merge "XML parsing optimizations" into ics-mr1 2011-11-11 16:19:29 -08:00
Jean-Michel Trivi
de1f065be1 Fix 5607938 AudioFocusDeathHandler leaks GREF
The AudioFocus death handler was correctly updating the audio
 focus stack when an audio focus client dies, but the death handler
 was leaking GREF if unlinkToDeath() is not called.
The fix consists in making sure unlinkToDeath() is always called
 by calling it in its finalizer.

Change-Id: I0c5343b4986ab582cadbf171fc53816952dc16f5
2011-11-11 16:13:48 -08:00
Christopher Tate
60201f2b4e XML parsing optimizations
Traceview showed approximately 10% of total parse time inside the
synthetic 'trampoline' methods generated to provide inner classes
with access to their outer class's private fields.  The bottleneck
in this particular case is in XmlBlock and its inner class Parser.

Making the bottlneck outer-class members and methods package-scope
instead of private removes that 10% overhead being spent within
these access trampolines.

Traceview tends to overemphasize the significance of very small
methods such as these trampolines.  That said, the measured speed
gain on the ParseLargeXmlResFg op due to this patch is between
5% and 6%.

Change-Id: Ia0e3ae5408d1f9992b46e6e30dd2407090379b07
2011-11-11 16:10:42 -08:00
Jeff Brown
f1f0c873b1 Fix bug in TextLayoutCacheKey handling embedded nulls.
We were not passing the length of the UTF-16 string to
String16::setTo.  As a result, it was copying the contents of
the text up to the first null it found.

First problem, these strings are not typically null terminated!

Second problem, if the string contained a null character, then
we might truncate it.  However, we only truncated the string
when the copy constructor was invoked (say, when we called
get() on the cache) but not in internalTextCopy() (before
adding the key to the cache).

As a result of the second problem, we would first search
the cache for a key that matched a partially copied truncated
string (potentially reading uninitialized memory that followed it).
Finding none, we would add the entry to the cache using
the correct key.

If the cache already had a value associated with the correct key,
then the put would fail, returning false.  Charging ever onwards,
we would add the size of the entry to the cache size.

Proceeding in this manner, it was possible for the cache to
believe it had less remaining space than it really did.  At that
point, it was possible for the cache to evict all entries and
yet still not think it had room to add a new one, so it would
continue trying to make space indefinitely.

Bug: 5576812
Change-Id: I05251594f6b2da0a5dc09f7200f04fe9100ec766
2011-11-11 15:41:40 -08:00
Dianne Hackborn
be70785f9b Make activity manager more robust in the face of app activity leaks.
This came up from bug #5601885: Memory increase (leak?) in system_server
Stingray MR1

This isn't *really* a leak in the system process -- it is a leak in an
application process that is causing the system process to keep around
a bunch of ActivityRecord objects longer than it should, until that app
process is ultimately killed.

Unfortunately these days leaking an ActivityRecord also often means
leaking a thumbnail, which is a big slab of memory.

So make the activity manager better about this, using a weak reference
from the handle the object has so we can still clean away most of the
state associated with the ActivityRecord even if the client side leaks
its own reference.

Change-Id: Idbab45e09749cdfb54899203da7981e7b3576e25
2011-11-11 15:05:59 -08:00
Adam Powell
6200a4b7eb Merge "DO NOT MERGE Cherry pick from ics-mr1 - Bug 5275928 - Don't try to open an overflow menu under invalid circumstances." into ics-mr0 2011-11-11 14:54:02 -08:00
Robert Greenwalt
24597eb77e Merge "Tone down Tethering logs." into ics-mr1 2011-11-11 14:37:18 -08:00
Dianne Hackborn
d400d03f4a Merge "Fix issue #5595933: GREF leak due to race condition in..." into ics-mr1 2011-11-11 14:24:58 -08:00
Christopher Tate
847fbbeaf9 Merge "Localized optimizations in views and bitmaps" into ics-mr1 2011-11-11 14:24:53 -08:00
Robert Greenwalt
fd1be2bc1e Tone down Tethering logs.
bug:5601582
Change-Id: I66c0a5a06a2c13a7cf93ea264d156b37df23745f
2011-11-11 14:09:45 -08:00
Robert Ly
5f8b7269d6 docs: fix typo
Change-Id: I86ebd8bced2ca133fc6faff43c2e69205f0c9862
2011-11-11 13:39:34 -08:00
Jamie Gennis
b7928463a3 EGL: add the ANDROID suffix to the blob cache ext
This change adds the ANDROID suffix to the all the types and functions
defined by the EGL_ANDROID_blob_cache extension.

Change-Id: I087875b96d9a7053efb9c8d5614f9f765eed799d
2011-11-11 13:17:03 -08:00
Nick Pelly
48b651cb2a Merge "Changes for access control." into ics-mr1 2011-11-11 13:06:44 -08:00
Christopher Tate
1373a8eb58 Localized optimizations in views and bitmaps
* Don't call context.getResources() redundantly when unnecessary;
  similarly for Resources.getCompatibilityInfo()

* During bitmap creation, don't bother clearing to 0: it's unnecessary
  because now that the raw bits are stored in a VM-side byte array, it
  was cleared at initialization time.  Also, don't use the sanity-
  checking public entry point to erase to a color, because we know
  that we're by definition in a "legal" path to erase to the initial
  contents and don't need to incur the overhead of the (inappropriate)
  sanity checking.

Change-Id: Idaca4d64fdecefd5d51337646ead32e1db510e02
2011-11-11 12:46:48 -08:00
Dianne Hackborn
5a6ef737ed Fix issue #5595933: GREF leak due to race condition in...
...LoadedApk.ServiceDispatcher.connected , LoadedApk.forgetServiceDispatcher

Don't be stupid if we receive a new binding to a ServiceConnection after it
has already been unbound.

Change-Id: I85a49de97372bf9af55542a89031f0b7a2ac8fbb
2011-11-11 12:31:52 -08:00
Matthew Xie
a303f0ecfc Merge "Send CONNECT_OTHER_PROFILE to Device profile for hfp and a2dp incoming connect" into ics-mr1 2011-11-11 12:16:41 -08:00
Matthew Xie
98f06da8ed Send CONNECT_OTHER_PROFILE to Device profile for hfp and a2dp incoming connect
Send CONNECT_OTHER_PROFILE to Device profile for low priority hfp and a2dp
incoming connect. In the case when HFP autoconnect is off but a2dp autoconnect
is on, if HF autoconnect to HFP, phone will reject HFP but connect a2dp.
Before this fix, phone reject HFP. A2dp will not get connected unless the HF do
media auto-connect, which most carkits do not do.
Also do similar change for incoming a2dp connection
bug 5091838

Change-Id: Ife1815f527bcd94e0d9ffc645028484fa9c49a43
2011-11-11 12:11:35 -08:00
Robert Ly
5ad6f646fb Merge "docs: ndk r7 rel notes" into ics-mr0 2011-11-11 12:06:39 -08:00
Adam Powell
63464c5229 DO NOT MERGE Cherry pick from ics-mr1 - Bug 5275928 - Don't try to open an
overflow menu under invalid circumstances.

Change-Id: Ifb847b914b880ffb21dd5fc6efa833f46466f224
2011-11-11 12:02:01 -08:00