History log of /frameworks/base/media/java/android/media/MediaRouter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0d0f67f5ee5f939a1b611bc4583212707afd9bee 04-Sep-2014 RoboErik <epastern@google.com> Update VolumeProvider apis per feedback

Added currentVolume to constructor.
Removed onGetCurrentVolume and notifyVolume changed.
Added setCurrentVolume and getCurrentVolume.
Updated javadoc to make it clear how they're used.

bug:17258168
Change-Id: I24388aab38824b101ccc18810caa09d46aa7afe0
/frameworks/base/media/java/android/media/MediaRouter.java
f1b2335a36fa6f2b9926f309a7c4ed29a1404ec4 20-Aug-2014 Jeff Brown <jeffbrown@google.com> Only select bluetooth route by default when A2DP is enabled.

Bug: 15756471
Change-Id: I822e51742e009b473000b8d67ec9c9a81c39b702
/frameworks/base/media/java/android/media/MediaRouter.java
9db9bf7034d7dcdf596dc22d521b18975d0dd2b9 21-Jul-2014 RoboErik <epastern@google.com> Switch Session APIs over to AudioAttributes

The session apis were using audioStream in several places. This
updates them to use AudioAttributes instead.

bug:16403289
Change-Id: Ic4da9ca5fbea2536e80c71503bd9a9bf7f346997
/frameworks/base/media/java/android/media/MediaRouter.java
1ff5b1648a051e9650614f0c0f1b3f449777db81 16-Jul-2014 RoboErik <epastern@google.com> Change adjustVolumeBy to adjustVolume

This makes volume adjustments take a direction instead of a number of
steps and renames the API appropriately.

Change-Id: I6a31cbc42d889a38aa63446686a424cb2b8b2270
/frameworks/base/media/java/android/media/MediaRouter.java
ef3c9e9b057a5aac2d0d012e8e6385660478e203 20-Jun-2014 RoboErik <epastern@google.com> Add volume handling APIs to sessions

This renames and moves the VolumeProvider and adds apis to
MediaController to get the current state of volume on a session and
to request changes to the volume.

Change-Id: I290e9efefb6676c805819a29e1d054c3192c6773
/frameworks/base/media/java/android/media/MediaRouter.java
430fc48865e5a371b08f180390946b96d73848fe 13-Jun-2014 RoboErik <epastern@google.com> Work on removing non-session media routing code

Change-Id: I73e7d22f2f8772c7b07ccf32d962161d79d5db74
/frameworks/base/media/java/android/media/MediaRouter.java
5d3114b64a88ac1f72becd8d46f148c666f64aa3 04-Jun-2014 RoboErik <epastern@google.com> b/15388389 Add volume handling support to MediaRouter

This makes MediaRouter work with sessions to handle volume
requests. Should work with all existing custom volume handling.

Change-Id: I5dfde26a6203a1072b7fc700978b4ca852ebe7d0
/frameworks/base/media/java/android/media/MediaRouter.java
62d509d24f91959b75219edd0ab1a6f22b82c600 13-Dec-2013 Kenny Root <kroot@google.com> am 37c69fdd: Merge "Use java.util.Objects instead on internal API"

* commit '37c69fdd826f3973966430adc1abfbefc19bc16e':
Use java.util.Objects instead on internal API
e6585b32ea586743258a5457e2184ffc087f2d2f 13-Dec-2013 Kenny Root <kroot@google.com> Use java.util.Objects instead on internal API

Not needed since java.util.Objects implements all the needed
functionality.

Change-Id: Icd31d49a9801d1705427f028e9ac927d58e7d34c
/frameworks/base/media/java/android/media/MediaRouter.java
ce468a35b388ca46578934706b38dbae94941643 22-Nov-2013 Jeff Brown <jeffbrown@google.com> Stop wifi display discovery when no longer needed.

Keep track of how many clients are requesting scans and scan
continuously until all of them are gone then explicitly terminate the
scan instead of letting it time out as before.

Suspend wifi display scans while connecting or connected to a remote
display. This is handled by both the display manager and media router
since neither has complete information about what is happening.
Much of this code will no longer be needed once wifi display support
is integrated directly into the media router service.

Ensure that we don't attempt to scan or connect to wifi displays
while the wifi display feature is off.

Infer when a connection attempt fails and unselect the wifi display
route automatically so it doesn't appear to be connecting forever.

Fix issues around correctly canceling and retrying connection attempts.
Often we would cancel but not retry.

Improved connection reliability somewhat. It seems that discovery must
already be in progress in order for a connection attempt to succeed.

Ensure QuickSettings uses exactly the same logic as the MediaRouteButton
to determine when the remote display tile should be made visible.

Bug: 11717053
Change-Id: I18afc977b0e8c26204b8c96adaa79f05225f7b6e
/frameworks/base/media/java/android/media/MediaRouter.java
a68c87eda84150b21f3d01511e60c720c6f6b695 20-Nov-2013 Chong Zhang <chz@google.com> Only scan for wifi display when there is no active connections

Bug: 11717053
Change-Id: I4ab73f6517fbfb8fcc131b89d0e934380dcf69e0
/frameworks/base/media/java/android/media/MediaRouter.java
af574183c274f51d04487a9c8355e9f34a1150f2 15-Nov-2013 Jeff Brown <jeffbrown@google.com> Disallow applications from initiating cast screen.

Only allow the system ui and settings to connect to a remote display.
To do this, we essentially hide the remote displays from applications
by using the ROUTE_TYPE_REMOTE_DISPLAY then add permission checks
around the operations that connect to them.

As a bonus, this may actually save power on devices since applications
that use MediaRouter will not longer be performing discover on
remote display routes at all.

Bug: 11257292
Change-Id: I9ea8c568df4df5a0f0cf3d0f11b39c87e2110795
/frameworks/base/media/java/android/media/MediaRouter.java
39ad0e559896b45185429ea17cd12f18f7ae842c 12-Nov-2013 Jeff Brown <jeffbrown@google.com> UI tweaks.

Hide disabled routes from the chooser.

Fix layout of chooser dialog when the settings button is visible and
the list is very long to prevent truncation of the settings button.

Fix an issue when we fake the route connecting status when a route
is selected. The route changed notification needs to be propagated
to apps. Fake it better.

Immediately disconnect from a route when the connection is lost or
a connection attempt fails. Added a few new test displays for this
case.

Bug: 11257292
Change-Id: I360ab5dc937ad60d97592eab54b19f034519645e
/frameworks/base/media/java/android/media/MediaRouter.java
75af171006ee80aaf7cfb56ded1378afe0084cca 11-Nov-2013 Jeff Brown <jeffbrown@google.com> Changes to support new screen cast settings screen.

Fixed the Preference ordering code to consider the case where
two preferences might have the same order. In that case, it
falls back on the title to disambiguate. Previous behavior was
undefined (and technically not stable).

Expose the wifi display device address.

Perform wifi display scans every 10 seconds instead of every 15
to improve reponsiveness.

Make sure to define routes for wifi displays that we are connecting
to even if they are not yet paired. Simplified the logic for
adding and removing these routes to avoid possibly getting out
of sync and leaving stale routes behind.

Fix wifi display notification icon.

Bug: 11257292
Change-Id: I8ac15fb17d83758c0bdce80399e12723c367b83c
/frameworks/base/media/java/android/media/MediaRouter.java
dd4f9e8b61c0a5639aa82480b7fdd760a2ed609c 11-Nov-2013 Jeff Brown <jeffbrown@google.com> Merge "Update the media router dialogs and integrate into system UI." into klp-dev
0abd3a6ce83ed23abe614155e776b600ef2a66c3 10-Nov-2013 Jeff Brown <jeffbrown@google.com> Update the media router dialogs and integrate into system UI.

Port the new style UI back into the framework from the support library.
There are now two dialogs: a chooser and a controller. We use the
same dialogs for selecting routes within app and within quick settings.

Note that the new UI does not support any grouping features since they
are deprecated and unused.

Bug: 11257292
Change-Id: I64e936a18d25ab75f0c470cbc1e7085f67004863
/frameworks/base/media/java/android/media/MediaRouter.java
5830b0b33618940d65197cec99d697b21908fec8 08-Nov-2013 Chong Zhang <chz@google.com> Fixed a bug updating presentation displays.

Also made findRemoteDisplay public.

Bug: 11257292
Change-Id: Ibc9bf3d8ee7c90293ffd8796270e8883ea458a65
/frameworks/base/media/java/android/media/MediaRouter.java
69b07161bebdb2c726e3a826c2268866f1a94517 07-Nov-2013 Jeff Brown <jeffbrown@google.com> Add media router service and integrate with remote displays.

This change adds a new media router service whose purpose is to track
global state information associated with media routes. This service
publishes routes to the media router instance in application processes
and handles requested state changes such as selecting or unselecting
global routes. The service also binds to remote display provider
services which can offer new remote display routes to the system.

Includes a test application for manually verifying certain aspects
of the operation of the media router service.

The remote display provider interface is essentially a stripped down
media route provider interface as defined in the support library
media router implementation. For now, it is designed to be used only
by first parties to publish remote display routes to the system so
it is not exposed as public API in the SDK. In the future, the remote
display provider interface will most likely be deprecated and replaced
with a more featureful media route provider interface for third
party integration, similar to what is in the support library today.

Further patch sets integrate these new capabilities into the System UI
and Settings for connecting remote displays.

Bug: 11257292
Change-Id: I31109f23f17b474d17534d0f5f4503e388b081c2
/frameworks/base/media/java/android/media/MediaRouter.java
2e5fbf552113024bbd143cec87000f28013af17d 26-Jul-2013 Chong Zhang <chz@google.com> Select BT route when currently selected route becomes unavailable

Bug: 10003524
Change-Id: I5de740fac9f2bc2a56125296defe892a8deb505e
/frameworks/base/media/java/android/media/MediaRouter.java
ab87a63997a7dc771acfd0dcd7efda990dc3d5fe 11-Jun-2013 Chong Zhang <chz@google.com> MediaRouter: grey out wifi displays that's in use

bug 9229799

Change-Id: I9f5fd2107f60c492d42c74e575e6483838a51267
/frameworks/base/media/java/android/media/MediaRouter.java
718aefb6ff11d16ce7412c81e4d4d9c29124eead 31-May-2013 Jeff Brown <jeffbrown@google.com> am 6474d840: am 636af7a1: Merge "Rename CALLBACK_FLAG_ACTIVE_SCAN for clarity." into jb-mr2-dev

* commit '6474d8407cb1551608fc403861e11cf514f8558e':
Rename CALLBACK_FLAG_ACTIVE_SCAN for clarity.
14507e257af5d71577574e25cbd690c4b54c9272 30-May-2013 Jeff Brown <jeffbrown@google.com> Rename CALLBACK_FLAG_ACTIVE_SCAN for clarity.

Bug: 9210033
Change-Id: I973c03b3a37e12af72a27c46d7da7fb59a30b606
/frameworks/base/media/java/android/media/MediaRouter.java
2feefe01e92cc83cc5bcde1245347ea22bc6ccf3 17-May-2013 Jeff Brown <jeffbrown@google.com> am b7871af2: am 50ab525a: Merge "Add route description API." into jb-mr2-dev

* commit 'b7871af2fbde70c7cf4812d5710b2729588bac54':
Add route description API.
56d4b744b374af11f540567d2b43d66d8d7c301e 16-May-2013 Jeff Brown <jeffbrown@google.com> Add route description API.

Bug: 8175766
Change-Id: I65dbc10fc04f9ff8f6abc1bda23fbf5baa227737
/frameworks/base/media/java/android/media/MediaRouter.java
83d551898d4a441475e9582cd573cebb563a6ef3 11-May-2013 Jeff Brown <jeffbrown@google.com> am f8e54846: am 9766caed: Merge "Add an API to determine if a route is connecting." into jb-mr2-dev

* commit 'f8e54846146c234aa9a201f54eea70df93ee56e2':
Add an API to determine if a route is connecting.
a27b8fb4296c1271ddf5916843ddffda6764e65f 10-May-2013 Jeff Brown <jeffbrown@google.com> Add an API to determine if a route is connecting.

Bug: 8175766
Change-Id: I54d5f31d4e7d79c471c0e1bbc438cd8ebb4f8a1e
/frameworks/base/media/java/android/media/MediaRouter.java
89efc6e6c1bba5866e7bdb1bb9e009022ec9d691 10-May-2013 Jeff Brown <jeffbrown@google.com> am da58f92b: am b2f6842d: Merge "Add an API to allow a callback to request active scans." into jb-mr2-dev

* commit 'da58f92bfaf875074656a55103c819e6f4dda341':
Add an API to allow a callback to request active scans.
1f59cbb20a2ad74cf2ac57d256f1fc5f0629f8a3 10-May-2013 Jeff Brown <jeffbrown@google.com> am 507a3c77: am 2298d68e: Merge "Fix bug managing wifi display routes." into jb-mr2-dev

* commit '507a3c77d583643f4a884c5d7b0c5e6bce3222bb':
Fix bug managing wifi display routes.
66f3b39ec452a8a03e3254e77e19ccb764ee931f 09-May-2013 Jeff Brown <jeffbrown@google.com> Add an API to allow a callback to request active scans.

This API is needed by the support library media router to ensure
that wifi display routes can be discovered while the route
chooser dialog is open.

Bug: 8175766
Change-Id: I3773773d93384aa4a3c009e71a5444ee8ce37caf
/frameworks/base/media/java/android/media/MediaRouter.java
77e59fef24c02a109bb409afe38dbdf28e1fd914 09-May-2013 Jeff Brown <jeffbrown@google.com> Fix bug managing wifi display routes.

We could sometimes crash due to some inconsistencies in the
way the wifi display routes were updates when connecting,
disconnecting or scanning wifi displays.

Bug: 8837094
Change-Id: I10c7ccb163ec33c4ea107dfcb5074741049fe955
/frameworks/base/media/java/android/media/MediaRouter.java
ba50b97cff80e73620a0e3d13cae169e095974a7 01-May-2013 Dianne Hackborn <hackbod@google.com> Add new app ops for various interesting audio service things.

Media buttons: note when an application tries to take ownership
of the media buttons.
Audio focus: note when an application tries to take audio focus.
Volume levels: note changes to the volume level of the various
streams.

Maybe we should also have some ops for muting streams, soloing
streams, etc?

Change-Id: I79a5d477b0bad4ff61486cdb73ffb1196a674964
/frameworks/base/media/java/android/media/MediaRouter.java
615e413a90ff5898d8c458ebc9649ca95fa9fd98 11-Apr-2013 Adam Powell <adamp@google.com> Make MediaRouter ignore remembered wifi displays when wifi display is off

Bug 8417329

Change-Id: Ica9bf1b250be4b72ba32e63d7eb1a6ff0b727961
/frameworks/base/media/java/android/media/MediaRouter.java
3afc18af2cea898753b10e8575dcf20c11356bca 07-Mar-2013 Jeff Brown <jeffbrown@google.com> Enhance MediaRouter API.

The support library MediaRouter implementation needs a couple
of extra generally useful APIs in the platform MediaRouter to ensure
that it can safely synchronize its state.

Change-Id: I72c5652e10f3b6de48800abfa922affbefbd250f
/frameworks/base/media/java/android/media/MediaRouter.java
1cf2ca83584a4cf0aa3ded787bd191b9a60e3521 28-Nov-2012 Adam Powell <adamp@google.com> Clean up behavior of type arguments for MediaRouter#getSelectedRoute

MediaRouter's policy so far has been around a single selected route,
but when route types are entirely orthogonal this should not be the
case. However we still don't want to get into a situation where we
have multiple, very different routes selected for different types at
the same time, we still want to have more of an element of
predictability.

Behavior of getSelectedRoute is now:

* If the selected route matches at least one type with the requested
type flags, it is still considered selected for that request.

* If the caller specifically requested the selected user route and the
currently selected route is not a user route, return null.

* If the requested type flags do not match any types with the selected
route, return the default system route.

Note that this is "any" behavior instead of "all" - this matches
existing usage of the method. We may consider adding an "all" variant
later on.

Bug 7588042

Change-Id: I3a79d8153ca6b882fd3ef6b9b1de8f538873dec2
/frameworks/base/media/java/android/media/MediaRouter.java
74da109102864f19b3dcdb30cd1d92c46fb12f2f 08-Nov-2012 Jeff Brown <jeffbrown@google.com> Support Wifi display devices that rename themselves.

Some Wifi display devices like to rename themselves after a
connection completes (or at other times). Make sure to update
the name of the display when we detect that it changed in
our scan results.

This problem is somewhat complicated by the fact that we remember
the display name persistently, so we need to update our list
of remembered displays too.

Improve the state machine to avoid redundant attempts to
disconnect or cancel connection.

Bug: 7478895
Change-Id: I35a9e2c6a8deadbe892dacd5e3b4a5a2b12d6cf0
/frameworks/base/media/java/android/media/MediaRouter.java
92130f6407dc51c58b3b941d28a6daf4e04b8d62 25-Oct-2012 Jeff Brown <jeffbrown@google.com> Add MediaRouter API to get presentation display.

This new API makes it possible for an application to ask on
which Display it should show a Presentation based on the currently
selected media route.

Also added a new API on DisplayManager to query displays that
support a certain category of uses.

Improved the documentation of the Presentation class to explain
how to choose an appropriate Display for presentation.

Bug: 7409073
Change-Id: Iab451215e570ae55f3718fc228303143c800fe51
/frameworks/base/media/java/android/media/MediaRouter.java
2bb7c122ef6ce8539dfbaeb3292adcd942185f82 24-Oct-2012 Bryan Mawhinney <bryanmawhinney@google.com> Add text representation of ROUTE_TYPE_LIVE_VIDEO (for debugging)

Change-Id: Id8fa45aefde85e2ba2b57694b91485ef25e2e5f2
/frameworks/base/media/java/android/media/MediaRouter.java
2444ae7e2b8658a4a90f996e678423558744b4a2 11-Oct-2012 Jeff Brown <jeffbrown@google.com> Ensure MediaRouter correctly handles renamed Wifi displays.

Fix a couple of bugs that cause MediaRouter to disconnect from
the current Wifi display whenever it is renamed.

Added an extra check in WifiDisplayAdapter for identity renames.
The Settings app already handles this case but it's good to have
the service check for it as well so we don't store unnecessary
aliases.

Bug: 7310777
Change-Id: I8fddd32ca59f9b798ee31b467b81457508c345f8
/frameworks/base/media/java/android/media/MediaRouter.java
3f369684e13dfea0ba8ea134f3e95930b0dd7df0 11-Oct-2012 Adam Powell <adamp@google.com> Fix MediaRouter prioritization around a2dp devices

Most recently connected audio output gets priority. Wifi display will
dominate over everything.

Bug 7324334

Change-Id: I29b59570a2e9b5352be436dc5b7a0a6861dfae6b
/frameworks/base/media/java/android/media/MediaRouter.java
b072a9686c29bfbc05b732076a4e89bcca8db08a 09-Oct-2012 Adam Powell <adamp@google.com> Don't do a wifi p2p scan in MediaRouter if we're already connected

When we're connected to a wifi display already, some configurations
might hiccup or otherwise disrupt the media stream if we initiate a
new scan. Block the MediaRouter's default scanning behavior if we
start up while already connected to a wifi display. (A scan will still
occur if the user opens the picker dialog.)

Change-Id: I413efa883eec41fe0377da18bcb55bc72e2ac729
/frameworks/base/media/java/android/media/MediaRouter.java
11b999d0aaca72a33526795b6849b473cc3dd569 05-Oct-2012 Adam Powell <adamp@google.com> MediaRouter/Wireless Display - correct initial state

Make sure we get the right initial status for wifi displays when a new
display route is first added to the MediaRouter.

Bug 7289746

Change-Id: Id41f704fc88021bd4cdf21e9f4b3c810775e1aea
/frameworks/base/media/java/android/media/MediaRouter.java
2ee6a2a83262d05a566bd713d238e89edfd33a29 01-Oct-2012 Adam Powell <adamp@google.com> MediaRouter/Wifi Display improvements

* Don't select the default route on initialization in a process

* Add "connecting" state to MediaRouteButton

Bug 7258981
Bug 7262522

Change-Id: I5cd39b09843783b7e1e17620ca33193f0f3b8fca
/frameworks/base/media/java/android/media/MediaRouter.java
4131a37366d59b5e61f55c4e48d2b22ee0c4cad4 28-Sep-2012 Adam Powell <adamp@google.com> String change for video routing via MediaRouter; "HDMI" not "HDMI audio."

Change-Id: Ifece0cf0bc11ff2ffab254c6177f9db741037df6
/frameworks/base/media/java/android/media/MediaRouter.java
705ab808cf023e0cc38c2ba7cdb9571942cdc04f 17-Sep-2012 Adam Powell <adamp@google.com> Add wireless display selection support to MediaRouter.

* Adds the new route type LIVE_VIDEO

* Wireless displays support both LIVE_VIDEO and LIVE_AUDIO, making
wireless display routes valid selections in when apps make selecting
live audio routes available.

* MediaRouter will only report/manipulate wireless displays that have
already been paired at the system level.

Bug 7177920

Change-Id: Ic221b8687d77b4c0df9801c396b74870e86206e9
/frameworks/base/media/java/android/media/MediaRouter.java
bcf21e913af7252fb1994e07b6cf179321ecd049 12-Jul-2012 Adam Powell <adamp@google.com> Properly switch MediaRouter to wired audio over a2dp.

The system gives priority to physically connected
headphones/speakers/docks/etc. Reflect this in MediaRouter and
associated UI.

Bug 6777592

Change-Id: Ibabf3d7512207117e892c99f004443490c3d0612
/frameworks/base/media/java/android/media/MediaRouter.java
dbbfa702a09f6d2d36dee1b552442d04a4673f89 24-Jun-2012 Adam Powell <adamp@google.com> Fix MediaRouter bugs

Fix a bug where a newly added group had no supported types at the time
of callback dispatch, meaning that no registered callbacks would be
invoked.

Fix a bug where subscribed type flags were not updated properly when
re-adding a callback for new types.

Change-Id: I7d9f11b363ebdca692786cec1d432600946e5721
/frameworks/base/media/java/android/media/MediaRouter.java
f3b653a21cdffe04c94c275e69ecb56e00766e82 23-Jun-2012 Adam Powell <adamp@google.com> Update route count properly when MediaRouteButton detects
grouped/ungrouped events

Change-Id: I1b00678cc3b548f347c51c3fcbfce18ecc8fbabe
/frameworks/base/media/java/android/media/MediaRouter.java
f8ac14a7f5a59b4ec8e89283a2da40b626e42065 21-Jun-2012 Adam Powell <adamp@google.com> MediaRouter group volume reporting

RouteGroups always report back the loudest volume of their component
routes. Maintain this through volume update requests (such as those
reported by volume hard keys) such that each route updates
individually, but the group slider always indicates the loudest value.

Change-Id: I5de4b9048bf55682b6271e9485fe50496a1c97c2
/frameworks/base/media/java/android/media/MediaRouter.java
8e37a85bf3dc39519942698dc90a3951306b934b 21-Jun-2012 Adam Powell <adamp@google.com> Expand volume APIs for MediaRouter

Allow applications to set a requested volume level on RouteInfo
objects. If requested for a user route, the app-supplied callback will
be invoked to perform actual volume adjustment.

Change-Id: I856990a0da7292492aa15e6562dbc3d055b848a0
/frameworks/base/media/java/android/media/MediaRouter.java
2cd5d253786b115470adc04a3609358f5eb7eb0a 20-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> Unhide new API in android.media.MediaRouter for remote playback

Expose new functionality for handling remote volume in:
android.media.MediaRouter.RouteInfo
android.media.MediaRouter.UserRouteInfo
android.media.MediaRouter.VolumeCallback

Change-Id: I8fd9c92be606364599e65939f318e11c2860bab9
/frameworks/base/media/java/android/media/MediaRouter.java
1357012968f9066ea3051d83995e9bac69526c3c 19-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> Remote volume handling in MediaRouter

Extend MediaRouter.UserRouteInfo to enable setting playback
information, which includes volume. When the user route instance
has a RemoteControlClient, forward any playback information to it.
Enable specifying a callback to be notified of volume events
on the route.
Extend MediaRouter.RouteInfo to enable retrieving playback
information.

Update RemoteControlClient javadoc to reflect which parts of the
API are not intended to be made public.

Change-Id: I59d728eb61747af6c8c89d53f0faeb07940594c3
/frameworks/base/media/java/android/media/MediaRouter.java
dd0a19266d5c837069da1ea188744d54c8d723a8 19-Jun-2012 Adam Powell <adamp@google.com> MediaRouter bluetooth a2dp selection

Remove bluetooth permission check from internal AudioService method
setBluetoothA2dpOn

Manage BT A2DP state in MediaRouter. A2DP is only enabled or disabled
when either the system built-in audio route or the A2DP audio route is
selected; when selecting any other route the current state is left
alone.

Change-Id: Ib14274e206e79bd8762edca1205ecfa87b7a94cf
/frameworks/base/media/java/android/media/MediaRouter.java
4ee1f55ce0f4909a7430ab44563a81852f335071 18-Jun-2012 Adam Powell <adamp@google.com> Restrict MediaRouter selection

Actually restrict the programmatic selection of routes by
type. (Oops.)

Change-Id: I91e837f7ecbcddb626c664fb470e8296d563498d
/frameworks/base/media/java/android/media/MediaRouter.java
4599696591f745b3a546197d2ba7e5cfc5562484 16-Jun-2012 Adam Powell <adamp@google.com> Volume control in MediaRouter dialogs

MediaRouter dialogs now intercept the volume keys for altering the
current volume. The status icon indicates if the slider/buttons are
currently controlling the local device volume or a remote device's
volume.

Group volume for user routes is handled by using the
RemoteControlClient supplied by the first route in the group.

Change-Id: I40a0d054847ed5acce7a4c3b669487841b4dca15
/frameworks/base/media/java/android/media/MediaRouter.java
39d5c6172503620ac3761148adac5fd7fa20d02d 16-Jun-2012 Adam Powell <adamp@google.com> Make MediaRouter UI more robust around route count changes

Improve the API around ActionProvider visibility overriding. Allow the
application to notify whatever is hosting the ActionProvider that
visibility has changed in a way that is friendly to alternate support
library-style reimplementations of MenuItem.

Allow MediaRouter.Callback implementations to add or remove themselves
or other Callbacks during dispatch of callback events.

Make MediaRouteActionProvider track the visibility of corresponding
menu items more accurately.

Change-Id: Ic7ddb6a87c3637904750d2661e4a9fa323b09ea0
/frameworks/base/media/java/android/media/MediaRouter.java
130b4572d1f3df702e5b296a655d15a41f6d4c66 16-Jun-2012 Adam Powell <adamp@google.com> ActionProvider API update

* Add ActionProvider#overridesItemVisibility and isVisible.
These methods allow an ActionProvider to override the
visibility of a MenuItem that it is bound to. If a MenuItem
has been explicitly hidden by the application, it will not
be visible.

* Change MediaRouteActionProvider to not require a MediaRouter
callback, to avoid extra lifecycle management headaches.

Change-Id: I606fa98b3a6a3e60a953dd024274f9bf9c67acdd
/frameworks/base/media/java/android/media/MediaRouter.java
632ca417f0a33e3fa9ccece531afa2db3f0d4a30 15-Jun-2012 Dianne Hackborn <hackbod@google.com> Add new callback for MediaRouter to found out about device changes.

The AudioService now has an API to call to get the currently
connected devices, and later reports of changes in connection
state. The information includes the name of the bluetooth
device if one is connected for display to the user, and states
for all of the pluggable devices. No longer requires a Bluetooth
permission to keep the routes updated.

Change-Id: I81ca421c60592fbc1592477d59bf1c9d1b64954a
/frameworks/base/media/java/android/media/MediaRouter.java
b5e2af5919351486a385effe77409d2a91ae9c19 15-Jun-2012 Adam Powell <adamp@google.com> Update MediaRouteChooserDialog grouping UI

Move UserRouteInfo tag support to RouteInfo

Change-Id: Ia753924f8613462d5f74736be93a8d748689eef1
/frameworks/base/media/java/android/media/MediaRouter.java
0d03c042f90bf62d5bad7c64e77028a5f9f8fae0 15-Jun-2012 Adam Powell <adamp@google.com> API updates for MediaRouter

* Accept a Context when fetching the names of routes and
categories. This lets string resources resolve at time of access
with the correct configuration. The older versions remain available
that will use the static resources from the application. (There are
enough cases where applications will populate this from external
data that requiring it each time even when it was not initialized
from a resource doesn't seem reasonable.)

* Remove the ability for apps to programmatically select non-user
routes.

* Make MediaRouter.Callback an abstract class instead of an interface.
This will make further extensions easier to keep compatible in the
future.

Change-Id: If981c511dfbdfaf41ef0d1cfe4a377fc14bb5600
/frameworks/base/media/java/android/media/MediaRouter.java
d6d0bddee363e0c7fe61f63bd9d9864a71d887d6 14-Jun-2012 Adam Powell <adamp@google.com> Support route grouping in the MediaRouter dialog UI.

Change-Id: Idcae12cedfb7ca13950e7fa45441fba2029a9f68
/frameworks/base/media/java/android/media/MediaRouter.java
70e11e50eecfc8f1dfb76316d099e4331ebd28f7 13-Jun-2012 Adam Powell <adamp@google.com> MediaRouter dialog

Add the dialog behavior for MediaRouteActionProvider/MediaRouteButton.

Still TODO:

* Switch audio icon based on source; speaker/bt/user

* Rig up volume slider

* Rig up item icons

* Rig up group button for groupable categories

* Make grouping work

Change-Id: I3f992516b184d5ae940ddb7bbb7f94ff58914589
/frameworks/base/media/java/android/media/MediaRouter.java
b35c445f34e1a18e17aef3e3dfbc1c39b4d1815c 12-Jun-2012 Adam Powell <adamp@google.com> MediaRouter work

Fix a bug where MediaRouter would crash on creation

Add click listener for app-supplied extended settings on the route
selection dialog.

Change-Id: I2991db1720b5c574148e250526984592f4dc3c44
/frameworks/base/media/java/android/media/MediaRouter.java
71c69897ad0a55d590698bfa399bfe99c763b9db 12-Jun-2012 Adam Powell <adamp@google.com> Fix docs

Change-Id: If0215c02abf419d14f28574b751c9dfc2f27bcbe
/frameworks/base/media/java/android/media/MediaRouter.java
ae20ae1a8aaa013813c356ae1d9541ca7ff020ae 12-Jun-2012 Adam Powell <adamp@google.com> More MediaRouter features.

Add RemoteControlClient to user routes. This will allow the UI layered
on top to access info about the remote volume channel associated with
a user route.

Add icons for user routes and route groups.

Change-Id: I438aa60fc8c93f878ec7638897225738155f0746
/frameworks/base/media/java/android/media/MediaRouter.java
b58b8f832d06b0ffa8886eba5a4916578a3b8743 12-Jun-2012 Dianne Hackborn <hackbod@google.com> Rework media router to be per-context with global process state.

Change-Id: Ic1cb6f13e691d22783bcdafae85b7c75aec0a66f
/frameworks/base/media/java/android/media/MediaRouter.java
d0d2cda9d414da73773285d7fee9e13aef3495e9 08-Jun-2012 Adam Powell <adamp@google.com> Further work on MediaRouter

Remove volume control and tracking. This will be handled by extensions
to existing audio and media APIs for now.

Tweak/refine other aspects of the API. Pass the router to callbacks for
easier future-proofing. Add group/ungroup callback methods.

Change-Id: Ib69e76e5f46280a9002b545bcf4cbc7b839844ee
/frameworks/base/media/java/android/media/MediaRouter.java
690ffb4e1f735148a15f2036d9a3c1962fba188c 05-Jun-2012 Adam Powell <adamp@google.com> More fun with MediaRouter

Add action provider, button, and styles. Extend ActionProvider to
allow for getting references to MenuItem instances.

Implement toggle mode for the MediaRouteButton/ActionProvider. Dialog
selection yet to come.

Change-Id: Ibe3188570f503bbf8dd00cf154663435656a7171
/frameworks/base/media/java/android/media/MediaRouter.java
9a1de308cea2d160778fd977825f10a07b49d738 22-May-2012 Adam Powell <adamp@google.com> Add MediaRouter API.

This is just the initial state tracking. Still to go is
actually triggering Bluetooth A2DP correctly and tracking
process state in the system server.

Change-Id: I33031d52799d6e2d7208910da833831085cc3677
/frameworks/base/media/java/android/media/MediaRouter.java