Added light/dark versions of holo dialog icons. Apps using
AlertDialogs that wish to use the system dialog icon should use
setIconAttribute(android.R.attr.alertDialogIcon) instead of
setIcon(android.R.drawable.ic_alert_dialog).
Change-Id: I40793a3164478be5ffa045ededfcab8210753a4b
This change adds a public Java API to use a SurfaceTexture as the
destination of camera preview frames.
Change-Id: If537fed2df12c5c181e2af5f817985c1bda853fb
Add protection against views disappearing before previously posted
Runnables attempt to show a menu anchored to them.
Change-Id: Ia2a322e76665e61feb5bdb92377d5066cb6d5b04
The problem can occur if a sample is started at the same time as the last AudioTrack callback
for a playing sample is called. At this time, allocateChannel() can be called concurrently with moveToFront()
which can cause an entry in mChannels being used by moveToFront() to be erased temporarily by allocateChannel().
The fix consists in making sure that the SoundPool mutex is held whenever play(), stop() or done() are called.
In addition, other potential weaknesses have been removed by making sure that the channel mutex is held while
starting, stopping and processing the AudioTrack call back.
To that purpose, a mechanism similar to the channel restart method is implemented to avoid stopping channels
from the AudioTrack call back but do it from the restart thread instead.
The sound effects SounPool management in AudioService has also been improved to make sure that the samples have
been loaded when a playback request is received and also to immediately release the SoundPool when the effects are
unloaded without waiting for the GC to occur.
The SoundPool.java class was modified to allow the use of a looper attached to the thread in which the sample
loaded listener is running and not to the thread in which the SoundPool is created.
The maximum number of samples that can be loaded in a SoundPool lifetime as been increased from 255 to 65535.
Change-Id: I368a3bdfda4239f807f857c3e97b70f6b31b0af3
Changed late frame drop policy, now we are dropping only 1 in 8,
late (> 40ms) frames. Dropping every late frame result in lot of noticible
pauses, usually with peaky bitrate activity these pauses become more prominant.
Dropping few frames is still required to allow overall playback chain,
to regain the performance.
Experimentally decided to drop Max one late frame in 8.
Change-Id: If20848d619a76aaf8179b1e5c3155610e3bc85fd
The required features check was in an null check for usesLibraries, so
it wasn't checking for required features when an application did not use
a library.
Bug: 3331713
Change-Id: I96d366ba00d4962b84f3796be97e2b622eb331a5
1. Added a mechanism to select the cursor ring content if accessibility is
enabled - This is achieved by sending an event to the WebCore thread
(if accessibility is enabled) to select the content of the cursor when
the latter moves. Added code in WebViewCore to select the given node
and notify the UI thread for the selection markup which is delivered
of the accessibility injector which manages sending accessibility
events. This is relevant for adding accessibility to WebView if
JavaScript is not enabled. (If JS is enabled we inject a screenreader
written in JS).
2. Fixed the event delegation to the accessibility injector since it
should be able to consume key events of interest and perform some
action which leads to sending appropriate accessibility event.
In the previous implementation it was possible that the injector
consumes the event but the latter was bubbled up.
3. Added function to scroll the selection into view while moving it
around based on user commands.
Note: This is a part of two project commmit.
Change-Id: Ibb81d0468726efbe3bf6e3add1b19c69e3206638