When a new focus owner lands on the stack, don't just make the
previous top of the stack lose focus, propagate the loss throughout
the stack.
Only dispatch focus loss on focus loss state change
Remove canDispatchFocus() method as it now doesn't need to be known
(and shouldn't be known) outside of the implementation.
Fix error where the focus code for a focus gain request should
always be a focus loss code.
Bug 8315302
Change-Id: I92c8f51fdcc090851d34d00fefed916e25da40c1
Implement a state machine to represent how to transition to the
next audio focus loss state, given the current focus loss (state)
and the given external focus gain (transition).
Bug 8315302
Change-Id: I4a3d5a4a53c842caceaa876206a993c4e5446681
Move all audio focus request functionality under a new class/file.
Clean up encapsulation of data related to the request.
Change-Id: I989796e1ee1a5fc99799a64e1612294e0e40fa6d
Move more audio focus-specific functionality into the class
representing each audio focus owner, FocusStackEntry.
Keep track of how each FocusStackEntry instance lost focus.
Change-Id: I35df0717765a26ec747cb0110e2e951d155d1525
According to the API documentation and the ICS implementation
the setDataSource(String) method throws an
IllegalArgumentException if path is null. In JB a
NullpointerException is thrown instead. This fix restores
the earlier behaviour.
Change-Id: Ic47baadf91076acc227d92d84f6b8d1d6ecd0c03
If reading the decoded pixel data (instead of letting the system
render it), this is critical for interpreting the data correctly.
The video MediaCodec CTS tests use this MediaFormat key in this
way as well.
Therefore, make sure the documentation reflects the actual use of
this field - claiming that it is encoder-only is misleading.
Change-Id: I9bfd295a95dd3e7d1fa3189886fd243b07bb82cc
Add fields in an audio focus stack entry to track what type of audio
focus was requested, and why it was lost.
Make audio focus dump easier to read.
Change-Id: I61f6e43c13a32328a07125a2ba0dce1053872c86
This clarifies that it's a channel mask, as opposed to a count.
Also no need to initialize the field in the declaration,
as it's initialized in the constructor.
Include channel mask in error logs.
Change-Id: Ifc02668cf922dc8826a9fb042b3ca52fad377ba6
Take into account the two types of undefined plyback position.
Only use "ms" unit when there is a position to write.
Fix misplaced ",".
Change-Id: I5033ec6ee7480f1ac525af7b7b0a9da259614783
Extract audio focus, remote control and media button handling
outside of AudioService without any changes in functionality.
Moving logic to new class, MediaFocusControl.
Introduce interface for managing volum control logic, VolumeController.
The VolumePanel class implements this interface.
Change-Id: I72bda2e0670c26e61ff076fd729c15f9f1156dc5
Symbols of the current class don't need to be qualified.
See Change-Id: Ic89ce568771165d01d4b5bcf835c591ca0b86541
Change-Id: I75ec74a95cf68bf8eabdbac5b227a9035b945360
This field is always accessed with a lock held.
See Change-Id: I502b7401196c42932c9667ef73eb4cae16c3da16
Change-Id: I0900b60cd6b9076868532f951db370ccd5a0312e
Add FX_KEYPRESS_INVALID constant to AudioManager. This is a sound which should
play if the user tries to click or press on an element which is disabled.
Change-Id: Idd8953abeddd1afb51f7f190f9fb612ef672defa