Having a listener for audio port updates is not mandatory.
do not throw an excepion when AudioManager is contructed
from a thread without looper.
Bug: 15368707.
Change-Id: If5ce54bf4efdff8b785098649fa1cd0564861e1e
Instead of breaking out of silent mode when raising the volume
using the keys, prevent the change and display a visual hint up
in the user interface.
Bug:15330217
Change-Id: I74aae44319aadcd6db9841c7799967607f5a1617
Implement audio port and audio patch
callback infrastructure for clients to receive
notifications when audio routing changes occur via the
OnAudioPortUpdateListener interface.
Bug: 14815883.
Change-Id: I32cbba64eca7369871aec235ff100de1f0c2d344
This is the minimum change to make adjusting volume work with
MediaSessions. This only affects adjusting the volume and adjusting
the volume with a suggested stream. Adjusting a specific stream or
setting a specific stream will still use the same code.
This does not fix existing remote volume handling in RCC, which
will require a separate change to MediaController.
Change-Id: I5b957ff4bece1ee11e2364e1f216e1c08343c983
This merges TransportPerformer into MediaSession + a
TransportControlsCallback and makes TransportController into an
inner class on MediaController called TransportControls. Also makes
the PlaybackState and Metadata part of the session APIs instead of
transport controls.
Change-Id: I16ad392e6d318abe3119ad5d89656d253af25e16
Changes requested by API Council review. A second CL will refactor
TransportController and TransportPerformer based on feedback.
Change-Id: Ie26a7d01d7021232a66c2edf1eb58120437fdfde
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
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