History log of /frameworks/support/v7/mediarouter/src/android/support/v7/media/MediaRouter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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