History log of /frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f9ea1ad16cec2b123cb01426a9526ebf8a460d1b 15-Jan-2015 RoboErik <epastern@google.com> Clear volume handling when disconnecting from a remote route

This will set the MediaSession's volume handling back to local playback
when disconnecting from a route in MediaRouter.

bug:18806654
Change-Id: I21d0d53e7786034b71bd2ef1718e61acbab181e2
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
e49860b0f76d8336c1d41831ed370b0ff94278ef 04-Dec-2014 RoboErik <epastern@google.com> Make MediaSessionCompat/MediaControllerCompat work pre 21

This adds support for cross-process communication between MediaSessionCompat
and MediaControllerCompat. This is to support apps that split their playback
service and ui into different processes and to work with the MediaRouter
support lib.

bug:18186638
Change-Id: Ib554108fd4db5a9855d482cf3d61ce3d8d9c8850
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
5c9469e010106467791b47b0fa83efda84491a21 25-Nov-2014 RoboErik <epastern@google.com> Add backwards compatibility to MediaSessionCompat

Make MediaSessionCompat backwards compatible using RCC on APIs 14-20
and MediaSession on 21+. Verified on API 16.

bug:18186638
Change-Id: I7cca9d85d4377a69366d69c0fa59b9739cd51233
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
b6362d072f329a3207aa709ac6b79a4aa3c4d522 26-Nov-2014 Ying Wang <wangying@google.com> Fix docs.

Change-Id: Iba38cc5b58c1dcf4cac5a0981f281461e684b881
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
ceb8bf5e5cce7a37736981e626c4be416378767b 21-Nov-2014 RoboErik <epastern@google.com> Finish stubbing out MediaSessionCompat

This adds all the methods in MediaSession to MediaSessionCompat and
the code to pass it through to the framework version when available.

This does not add support for pre-L.

bug:18186638
Change-Id: Icfc80df088db87b6eff629edbc08b4107fbe2821
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
94be6100218126ce6a08bf1f56209578500b361f 28-Oct-2014 RoboErik <epastern@google.com> Update the support lib MediaRouter dialogs

This updates the UI for MediaRouter dialogs to use the new material
designs for MediaRouter. This doesn't update everything and new
icons are still needed.

Change-Id: I87c7c63c10ac60448251a8fc1fc4740a12f1603c
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
a9b9eae2cf9c9ef87c94c6a09a8664d30d60d7e4 28-Oct-2014 RoboErik <epastern@google.com> Post volume updates to the callback thread in MediaRouter

This ensures all volume requests are handled on the callback's
thread (which must be the main thread).

bug:18156755
Change-Id: Icdfa1c43a27fbbc449d4773c9a9803dd47bd0839
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
bbcdf78e350d58ecd6baa75e282d4908d3129fe2 09-Sep-2014 RoboErik <epastern@google.com> Add MediaSession support to MediaRouter support lib

Adds a method for setting a MediaSession on MediaRouter that can be
used for volume controls.

bug:17427963
Change-Id: Idc4856373ab9b44500c6fa223236393d166ecbf0
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
fb81e09002d1d611168b204fc50d259fc15f27b2 06-Aug-2014 Jeff Brown <jeffbrown@google.com> Disable passive discovery on low-RAM devices.

On low-RAM devices, passive discovery has a significant impact on
system performance because it causes many media route provider services
to be started and kept running for as long as the application requests
discovery (usually the whole time it is in the foreground).

To mitigate this issue, the CALLBACK_FLAG_REQUEST_DISCOVERY flag is
now ignored on low-RAM devices. Also, isRouteAvailable may return
true in cases where it is possible for a route to be discovered
even if one hasn't been found yet. These two changes have the effect
of causing the MediaRouteButton to always be shown on low-RAM
devices. When the user clicks on this button, active discovery will be
performed as usual.

Added CALLBACK_FLAG_FORCE_DISCOVERY and AVAILABILITY_FLAG_REQUIRE_MATCH
to allow an application to request the old behavior if necessary.
Also added a bunch of docs to explain why applications really shouldn't
do that.

Bug: 15191337
Change-Id: I4d742ea4569c977eb9b89277c57a72ec3a4fce41
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
429c3b17b88ebd8c4512e9179fd9d48333c0979e 21-Mar-2014 Tor Norbye <tnorbye@google.com> Add tools metadata annotations to the mediarouter library

Change-Id: I69322fb994a840b7142109ca48c29fb51829a2dd
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
adf0f4a217e14894af07dfa9f46cad7d98b8a7f4 07-Nov-2013 Jeff Brown <jeffbrown@google.com> Use the full component name to construct route ids.

Provide better disambiguation when a package contains multiple
route providers by using the full component name in the route id.

Also fix a bug handling package updates.

Bug: 11257292
Change-Id: Ice4fee742d73e2e979f2059b89cc4f4d971e0947
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
3efa63d3b896244713e84acbb5945562dce41d77 05-Nov-2013 Jeff Brown <jeffbrown@google.com> Minor code cleanup to enable reuse of the protocol.

Extract the protocol constants into another class.
Add a callback interface for the watcher.
Minor doc tweaks.

Bug: 11257292
Change-Id: I74b5ecee0d287d6b892ccb56e7777762bbce30de
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
a97f1edf7624785c41ec0bfec6fd12c2388d9234 24-Sep-2013 Jeff Brown <jeffbrown@google.com> Add a helper for managing remote playback.

The RemotePlaybackClient class helps take care of identifying
remote playback capabilities, formatting requests, parsing results,
and managing sessions. The goal is to remove confusion around the
usage of the protocol by providing a more familiar API surface
to work with.

Bug: 10260186
Change-Id: I49a6dcfa30ff8b7a57655a39a43317ebb3add2a0
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
567dbb1c7f8a0cb3c4340ad607b6d833fc1b2270 08-Aug-2013 Jeff Brown <jeffbrown@google.com> Add support for attaching RemoteControlClient to MediaRouter.

This change will enable remote volume control from the lock screen
when the application creates a remote control client and attaches
it to the media router.

Simplified some of the route selection / unselection logic.

Change-Id: Ibb2a81851afd993b7e5e9d6796c740605399ceb7
(cherry picked from commit 63c7f1e85ac4c6c0af616c241aaa98151f1707d7)
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
35af7c925d660508fe0892f38eec99a3845630e4 31-Jul-2013 Chong Zhang <chz@google.com> Support library workaround: switch to bluetooth route if available

Bug: 10003524
Change-Id: I55c2da39ac312265b3a8bcc118d54057d3808f13
(cherry picked from commit 014127a0e1841120ee0968831d40728a80f16b00)
(cherry picked from commit a0db5749e35878f8372929c942d905c464ec1d43)
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
cb63b6ecac9786891514f241dec71695f09d3efb 01-Jun-2013 Jeff Brown <jeffbrown@google.com> Add unique id to routes.

Route unique ids are stable identifiers that applications can use
for various purposes such as remembering route selections or
communicating with services.

Bug: 9210033
Change-Id: I4519f6f639346b8981f02fb870e64becca291b4c
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
d11aa1784335270b8d85e385f2c8be79ee6a586c 31-May-2013 Jeff Brown <jeffbrown@google.com> Remove isActiveScanRequired().

This flag was originally added to support media route providers
that are unable to discover media routes passively. However, this
would be true in practice for most media route providers since
they will usually need to poll the network periodically to find
new routes.

Previously we did not have a good way to tell when discovery was
really needed so we forced these providers to rely on active scans
instead. Unfortunately this meant that the MediaRouterButton needed
to be visible all of the time.

Now that we have CALLBACK_FLAG_REQUEST_DISCOVERY, we can be more
conservative about when discovery occurs. In practice, discovery
will only happen when an application that uses media router is in
the foreground. So it's ok for providers to do some moderate work
during normal discovery and we don't need to force them to rely
exclusively on active scans anymore.

We also remove getDiscoverableControlFilters() since it was only
needed for the case where active scans were required.

Note that we still do perform active scans when the chooser dialog
is open. However, we don't allow providers to require them.
This even works for Wifi Display because the system already knows
which displays have been paired so it doesn't require active scans
to decide whether to advertise those routes (although it does
require active scans to discover whether they are really available).

Bug: 9210033
Change-Id: I69adaf42fb461ee2b564e3605f921d23b6b5c7be
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
f03da4a9e6cc02251c2f804eb6f25da61821d6a7 31-May-2013 Jeff Brown <jeffbrown@google.com> Add CALLBACK_FLAG_REQUEST_DISCOVERY.

This change is designed to reduce the network discovery overhead
and memory footprint of the media router.

Make the media router more conservative about when it binds to
media route providers and performs discovery. It will now
only perform discovery if the application has specified
CALLBACK_FLAG_REQUEST_DISCOVERY or CALLBACK_FLAG_PERFORM_ACTIVE_SCAN.
Furthermore, it will only bind to media route provider services
while discovery is requested or while the app has selected
a route that belongs to the provider. It will automatically
unbind when these conditions no longer hold true to allow the
system to reclaim memory used by the MRP service process.

Added a MediaRouteDiscoveryFragment to make it a bit easier to
manage the lifecycle of media router callbacks.

Bug: 9210033
Change-Id: I9e7399022d51eb6db3ac79f843ccfa5aba3a8762
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
9fcedc160282e6620f409ea46bf6728b35d011dd 30-May-2013 Jeff Brown <jeffbrown@google.com> Fix MediaRouter leaks.

There was a cyclic reference from the value of a WeakHashMap
to its key which resulted in MediaRouter instances and associated
Contexts being leaked. Fixed this by avoiding the cycle but
there is now a little more burden on the application to ensure
that it holds a reference to the MediaRouter instance as long
as it is required.

If we wanted to make the support library MediaRouter behave more
like an object returned by Context.getSystemService() then we
would have to arrange for the Context to hold a strong reference
to the MediaRouter to keep it alive but there isn't any good API
to accomplish this.

Bug: 9189100
Change-Id: I15b214ae9dbad3f08be04ec852b07cc61a00886e
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
9942d40d0d952b03b583fe66f434676793697aa2 24-May-2013 Jeff Brown <jeffbrown@google.com> MediaRouter UI tweaks.

Fix an issue where the MediaRouteButton would cause the currently
selected route to be deselected when switching activities.
The button now no longer has any side-effects.

Added code to handle the case where the dialog may be empty
by showing a progress bar and placeholder text.

Make the route chooser and controller dialogs dark to match
the system volume dialog.

Fixed the dividers in the route controller dialog.

Fixed some incorrect assumptions in the MediaRouteActionProvider
related to whether the MediaRouteButton has been attached to
the window. Sometimes we would fail to add the necessary
route callbacks. This was intended to workaround a framework
limitation but it caused other problems.

Fixed the padding of the media route button.

Cleaned up some documentation.

Bug: 9102538
Change-Id: I226e33c3017e8e4a9d877d023a8f158184861343
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
3d4c9459ed77f732dd3ba602713af6ebf9280c8c 21-May-2013 Jeff Brown <jeffbrown@google.com> Streamline media router API.

Merge progress and status and remove ACTION_GET_PROGRESS.

Add a new MediaItemStatus object to ensure that apps package the
status information correctly into the Bundle and to remove
possible ambiguity about the interpretation of each field.

Add EXTRA_ITEM_STATUS as a standard output result from
most requests include ACTION_PLAY, ACTION_PAUSE, etc.

Add a timestamp to the status object.

Add a mechanism for returning an error string from failed
media control requests.

Add a unique prefix to all mediarouter library resources
to make conflicts with application resources less likely.

Bug: 8175766
Change-Id: Ifca759424125ca62e8a72d35068dd3cc045d21ad
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
2ef36d857302c5cd738c7c8bdec53d31feebebba 16-May-2013 Jeff Brown <jeffbrown@google.com> MediaRouter UI tweaks.

Fix a couple of styling issues.
Fix an NPE when a provider is removed.

Bug: 8175766
Change-Id: I109bc93e94d4a05924ae01189911d2418660d0f3
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
d63957d28aaabcec588b8cde12eac16414783aeb 16-May-2013 Jeff Brown <jeffbrown@google.com> Replace route status with route description.

Bug: 8175766
Change-Id: I694e3d78cd6a80ecb277b5d950b52d9401a8736c
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
55b361aea868e53e848bc45af3a55ae43e7871c3 16-May-2013 Jeff Brown <jeffbrown@google.com> Remove route icons from the API and the UI.

Bug: 8175766
Change-Id: Ic376cb99455fff1e48aa7d3243365aa7cb94659b
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
11417b1cfde8f1749905f2d735623af9214148af 27-Apr-2013 Jeff Brown <jeffbrown@google.com> Add media router picker UI.

Introduced the concept of a MediaRouteSelector which is the means
by which an application states the route capabilities of routes
that it would like to discover.

Added selectors to the addCallback method along with several
other methods to assist with discovery. Callbacks can specify
flags to perform active scans of routes or to disable filtering
of route events.

Added a workaround to scan for wifi displays on JB MR1.

Refactored the route descriptor objects to use the builder pattern
instead of simply documenting that they should be immutable
since several developers have already tripped over this.

The UI is feature complete but not final.

Bug: 8175766
Change-Id: I54ebb7488222746b0c07292e65b9ded1b9d720fa
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
28520a15611522424b52cf88e4a2dbeb1a9be42b 26-Apr-2013 Jeff Brown <jeffbrown@google.com> Add a way for apps to hint at the types of routes they want.

Some route providers may need additional information about the kinds
of routes to be discovered. We define a concept of a Selector
to allow an application to specify these capabilities.
This concept is a bit new and not plumbed all the way through yet.
We will refine it as we build more of the UI bits on top.

Added APIs for starting active route scans.

Bug: 8175766
Change-Id: Ib2d2f7bd6cd0610edc8c1f68d879f386c340f682
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
43f79f79a5117550a7dfedf9c65124afd163ea43 12-Apr-2013 Jeff Brown <jeffbrown@google.com> Update media router API.

Use the nomenclature "media item" rather than "media stream"
to refer to playback requests to avoid confusion.

Add a STOP action.

Document that the status broadcasts should include the item id.

Bug: 8175766
Change-Id: Ideb5c674d48b4a5ba2cb276c19beaafda83900b5
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
129abf73ce9be1bc172b945263c7975ad1a3006f 23-Mar-2013 Jeff Brown <jeffbrown@google.com> Define some new media control intents.

Also rename the methods of RouteController to emphasize the
fact that they are intended to be overridden by the
implementation.

Add a concept of a stream id.

Change-Id: I84c55340914c7245dcf8ab66911adcb725aec10e
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
350ba6e4a1b5ec28721a098e50eaf6a508eb28f0 22-Mar-2013 Jeff Brown <jeffbrown@google.com> Fix a couple of minor bugs.

Handle case where a media provider service publishes a null
descriptor or does not publish one until after registration.

Handle case where a provider service chooses not to create
a provider and returns null from onCreateMediaRouteProvider.

Change-Id: If89a3d553a8fba0dca80c0b7ff93517eb2698d17
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
b507e525a61ed761eecfc2eaaf19af7e8db5dca5 20-Mar-2013 Jeff Brown <jeffbrown@google.com> Move support library media router to v7 package.

Resolved some TODOs related to missing resources.

Bug: 8175766
Change-Id: I57632d0a961de58a5dd53e889b4fd39832b5fba0
/frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java