When the user selects a "Silent" notification sound, the Uri encoded
path is an empty string. Setting this Uri as the data source of the
MediaPlayer used to play notifications caused the completion listener
to not be called, which with the AudioFocus logic causes the Music
app to pause and never resume. The NotificationPlayer modifications
cause the MediaPlayer for the notification to only request audio
focus when the data source is not empty.
The audio focus code in AudioService is defensively synchronized
against a unique lock, and the exception observed in bug 2670395
is explicitely caught in case another edge case wasn't caught by
this fix.
The AudioFocus handling in AudioManager is modified so only the
requestAudioFocus and abandonAudioFocus methods are meant to be
used, as registerAudioFocusListener and unregisterAudioFocusListener
provided no additional functionality over the request/abandon
methods. abandonAudioFocus() also removes the listener from the
map in AudioManager since after abandonning focus, the listener
would no longer be called.
Change-Id: I3b553ee8a8163c25e01117d7e5479dd5fdfa7c6b
It looks like there was a subtle bug where Process.setOomAdj() could
return false just because the given process doesn't exist, even though
it is documented to only return false if OOM killing is not supported
at all. This would cause the activity manager to fall into its code
path of trying to clean up processes itself, which it does a much
poorer problem at. I am thinking we may be seeing this problem more
now that the activity manager is killing background processes itself
when there are too many of them.
In addition, this change cleans up and reduces some of the logging
around killing processes.
Finally, try to improve process LRU management a bit by taking
into account process dependencies. Any dependent processes are
pulled up in the LRU list with the processes that is actually
moving. Also, we bring a process up if someone accesses its content
provider.
Change-Id: I34ea161f839679345578ffe681e8d9c5d26ab948
This adds the base SlidinTab drawable resources shared by
InCallScreen and LockScreen into the zygote process. It should
save approximately 375kB (mdpi) and 825kB (hdpi) of RAM by
sharing resource between the LockScreen and InCallScreen.
Change-Id: I05bcafa894ed27d419b171ad5041bd83134461f7
Part of fixing b/2663512: "java.io.IOException: SSL shutdown failed.: Ok" shouldn't dump a stacktrace
Change-Id: Ic6070ab9abb58c08eb7c5d8648424f582bb48e1c
This test actually exposes some bugs -- the test passes as written, but
certain parts are commented out with references to the bugs in question.
Bug: 2665914
Bug: 2665954
Change-Id: I61220e0efadc4edbb6ad419d26fa1f0f50bbc24c
the window manger puts SurfaceViews up before they have been
rendered into, because of that surfaceflinger doesn't have
anything ready to draw for that surface when an udpate occurs
and responds by filling the surface with black.
With this fix, we only fill those areas of the framebuffer
that would otherwise be undefined (no content at all).
in the Flash case, the "flash" window is not drawn at all
until it has some content, instead the underlaying browser
window is shown.
Change-Id: Ifb610f7f8c27b88edf83e09adc4803fc295c15a1
When we switch to another network (or even just lose mobile data) the mobile
interface is either brought down or destroyed altogether. That means any
throttling rules we've told the kernel about get lost.
This change notices when our interface comes up and reinstates throttling
if needed.
bug:2660287
Change-Id: I4c6ebf78acc59ed66b95984a1e8b7c2ffbc22dcb
Use padding instead of margin in DigitalClock's
RelativeLayout params to ensure @id/am_pm's descenders
aren't clipped.
Bug: 2277477
Change-Id: I9c8ef0c60e8ac0d2f969de97e8bfe146553ac379