Added API and classes allowing framework components
to have direct control over audio routing and volumes.
Change-Id: I28225a6ebad86a7836e1ed749d93c0e964e215f1
Added API and classes allowing framework components
to have direct control over audio routing and volumes.
Change-Id: I28225a6ebad86a7836e1ed749d93c0e964e215f1
- Implement a new volume panel widget, combining volume and
zen mode + conditions.
- Show zen mode + conditions when modifying ringer or notification
streams.
- Host the volume panel widget in a dialog when being controlled
by the audio service / volume keys.
- Remove support for multiple sliders in the volume panel.
- Remove support for separate ringer + notification volumes
in the volume panel.
- Move volume panel resources up to SystemUI.
- Create a new combined Notifications quick settings tile.
- Host the volume panel widget in the quick settings panel under
Notifications.
- When the quick settings detail panel is visible, route the volume
keys to the embedded widget instead of showing a redundant dialog.
- Create common styles for quick settings text to be closer to spec.
- Update the framework resources for the ringer stream.
- Show the ringer icons in global actions.
- Add "until you turn this off" back as a separate zen condition.
- Disable time condition buttons when they are N/A.
- Don't allow volume changes to set ringer mode silent.
Bug:15186070
Change-Id: Id5e321dd1d5e7c4cf3917027ffbdf7e80d38b00d
Synchronize modifications of volume index by VolumeStreamState
class mutex instead of using synchronized methods.
This avoids possible cross deadlock when modifying volume on
two stream types simultaneously and one is slave to the other.
Bug: 13730145.
Change-Id: I13406c71010ce0c2e2f08f660b6101f310396c98
This is an alternate to the submitted API which doesn't use the new
AudioAttributes class and just takes the AudioManager.STREAM instead.
Change-Id: I0365bc6fb9196fc33852ba6b202ca553efe0cc85
This adds RemoteVolumeProviders which handle volume change
events and a way to switch a session between local stream
playback and remote playback handling.
This also adds a way for an app to specify the PendingIntent
to launch when we want to show their ongoing playback UI.
Change-Id: I3a72bf2ec7ca55f61f50859ddc2988eebd491e9d
- Allow SystemUI to set the volume controller interface using
a new binder call to audio service.
- Remove VolumePanel's dependency on AudioService.
- Host the base VolumePanel in the SystemUI process.
Change-Id: I095d5a1a579d42b68d0f81abb4087bd0c754b876
This renames several of the core session classes to be prefixed
with Media. It also adds @hide to all route references for now.
Change-Id: Idb42897d490cf24626e4e93ca975b2cb93ec054c
Regroup status code translation from native to JAVA in AudioSystem.
The same codes will be used by AudioTrack, AudioRecord, AudioManager
and defined in a single place in AudioSystem.
Change-Id: I7d3f39f30e3bb8e53f33f4408bcb0672df8af42b
Send all media key events over to the MediaSessionService instead
of AudioManager. This does not affect volume handling yet, so it
is possible to get into a state where volume will be handled by
a different thing than media buttons. Except for corner cases
this shouldn't be noticable.
Change-Id: I00a576175d9c82937f0836e509b9a98d5cb77b83
Each user record maintains the list of sessions and providers that
are running under that user. Lifecycle for providers has been modified
to stop discovery when the user is no longer current but keep the
binder connection open so long as there's a session that has selected
a route from that provider. When a user is stopped all providers on
that user will be unbound even if they were still in use.
Change-Id: Iadf1efded3415f7ecf384d3a73513883de9c86b0
AudioAttributes is a class to associate a collection of attributes
describing information about an audio player.
Change-Id: I031aca1c79353abdfa0d7272c5dee0c2376c519a
This tags all sessions with the user id that they were created for. It
also adds API for creating and querying sessions for a specific user.
This does not wrap providers per user yet which will be done in a
separate CL.
Change-Id: Icdaf701b0614a95301657998602c45208d548c27
Javadoc for blocking/non blocking write modes was referring
to the old signature of one of the write methods.
Change-Id: Ie919e3e0a976b0c915dacd490ae66005703789a3
Unhide the write mode constants.
Unhide the write method where data is stored in a ByteBuffer.
Bug 7919023
Change-Id: Ie9e24c744067f164d1a3e3363c7718b0a70e1cae