History log of /frameworks/base/media/java/android/media/session/MediaSession.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f32bd3c5cd8bd2c00f52ea32d7481c30e29d2acc 09-Dec-2014 Michael Wright <michaelwr@google.com> Don't try to scale the bitmaps for null MediaMetadata.

Bug: 18586572
Change-Id: I133e58eeb05136ca82cbd35840b68ebedd9ec365
/frameworks/base/media/java/android/media/session/MediaSession.java
b9c87fb4034a4a61b57150000a937aa95927861c 19-Nov-2014 RoboErik <epastern@google.com> Scale bitmaps in metadata sent to the system

This scales down any MediaMetadata bitmaps that are sent to the system
through MediaSession.

bug:18114918
bug:18084448
Change-Id: Ib7b040cd8245108ad2dd56afe2499290d2b49f51
/frameworks/base/media/java/android/media/session/MediaSession.java
9af44ddf0367c542d6c1db6060456bd72f3c83ca 05-Nov-2014 RoboErik <epastern@google.com> Merge "Post volume requests to the handler thread in MediaSession" into lmp-mr1-dev
566c1ed18f429a7a64aeac01baa0af150fcd1eb4 04-Nov-2014 RoboErik <epastern@google.com> Add setRatingType to MediaSession

This was missing in L. Needed to tell controllers how to rate content.

bug:18051829
Change-Id: I26e662ff04f77ed7f2922bf9e74acf74c850547b
/frameworks/base/media/java/android/media/session/MediaSession.java
563acea6665c45902bbc46db1a22c036344a818b 28-Oct-2014 RoboErik <epastern@google.com> Post volume requests to the handler thread in MediaSession

Volume requests should be getting sent on the same thread as other
callbacks, not on the binder thread.

bug:18156755
Change-Id: I35bceb3f8c74ccba35f3d08ff000a254fcbd04bb
/frameworks/base/media/java/android/media/session/MediaSession.java
59759903a9696daefa817079c8432468ed398033 20-Oct-2014 RoboErik <epastern@google.com> Add missing break to switch statement

the skip to queue item case was falling through when it shouldn't.

bug: 18058515
Change-Id: Ica20b59efad12a58ad16501146fc9a0d4595e184
/frameworks/base/media/java/android/media/session/MediaSession.java
03fce072cac092923e10a6b5f09fcde333375f9e 24-Sep-2014 RoboErik <epastern@google.com> Allow null queues to be set in MediaSession

Also add some test code for it to OneMedia.

bug:17593962
Change-Id: I074e2bb0329d9a97f623e4309bb7dada157b8324
/frameworks/base/media/java/android/media/session/MediaSession.java
9ff7dda93e59e1e0032f5b96633d1479ab307a11 08-Sep-2014 RoboErik <epastern@google.com> Possible fix for dead handler in Music button event sending

I'm still attempting to root cause, but this is a potential fix. I
suspect the callback is getting registerd on a looper that isn't the
main looper which is then getting killed at some point. This change
will make all legacy callbacks happen on the main looper, which should
prevent the state.

bug:17420281
Change-Id: Ia78e694b32b24398d3c09f49d12632755ef45597
/frameworks/base/media/java/android/media/session/MediaSession.java
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/session/MediaSession.java
4b253d2bcd62ea2a9afb067c1f1363fa7b752185 02-Sep-2014 RoboErik <epastern@google.com> Allow empty strings in playFromSearch

This allows empty strings to be passed to playFromSearch to indicate
something should be chosen for the user and played. This makes it
consistent with INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH.

bug:17316566
Change-Id: I00ce8d252efa940e05568629e35198450c224a92
/frameworks/base/media/java/android/media/session/MediaSession.java
cd74270da7a7320904f14a465b8902dd5ea56f1d 29-Aug-2014 RoboErik <epastern@google.com> Document MediaSession.Callback.onMediaButtonEvent and add returns

Documents the return value and makes sure it returns true where
appropriate.

bug:17289717
Change-Id: Ia831a7212b76e8434b745be70da2ed106fa01230
/frameworks/base/media/java/android/media/session/MediaSession.java
350be2e1c2e4ad8b1a1386a55b40c123f148e94e 28-Aug-2014 RoboErik <epastern@google.com> Merge "Update to MediaBrowser APIs per council feedback" into lmp-dev
5ea924bcdb7d1a796937a315f59db44179bb4181 28-Aug-2014 RoboErik <epastern@google.com> Set/unset session on the callback

We lost this somewhere. When a callback is set on a MediaSession it needs
to have a reference to the Session so it can do default routing of media
keys.

bug:17304614
Change-Id: I4af82947da790135049d40c5c69c2996f3cc4ccc
/frameworks/base/media/java/android/media/session/MediaSession.java
3625bf72cb8bcf3c7f8f8cd8d708d7206824cc62 28-Aug-2014 RoboErik <epastern@google.com> Update to MediaBrowser APIs per council feedback

Does all the updates in the bug except the loadIcon/loadBitmap
methods, which are removed per feedback from Sharkey.

bug:17205016
Change-Id: Ie84d4d25a59c6985ce16972c26c8d1e5c02ff5c9
/frameworks/base/media/java/android/media/session/MediaSession.java
7e2b3008f11cae295c84d20f32d731e1d379562f 22-Aug-2014 RoboErik <epastern@google.com> Ensure current volume is current

This sets the current volume when a session is switched over to
remote playback. Otherwise it won't be current until it changes and
sends an update.

Change-Id: Iabedb24a34e88308e7e3c56a2b1ab279a17b466b
/frameworks/base/media/java/android/media/session/MediaSession.java
d2b8c947ddfc6349a3ae6c3968b422b9cf50d7ed 19-Aug-2014 RoboErik <epastern@google.com> Api updates to MediaSession components

-renames get/setBufferPosition to get/setBufferedPosition
-renames getLaunchActivity to getSessionActivity
-adds doc link to setVolumeTo flags param
-renames setLaunchActivity to setSessionActivity
-hides setMediaRouter
-moves PLAYBACK_TYPE_ constants to MediaController.AudioInfo
-adds addOnActiveSessionsChangedListener version with a handler parameter
-renames AudioInfo to PlaybackInfo

bug:17114404
Change-Id: I0fbfe4eb979cb2af98e3f13095c654bb131f7ae5
/frameworks/base/media/java/android/media/session/MediaSession.java
b135d06cb83db03b1328b7a82f064de7868fb16f 20-Aug-2014 Jeff Brown <jeffbrown@google.com> Remove incomplete media router API. (DO NOT MERGE)

Change-Id: I310fadafb5a6b8190a32e5d87f3e1823c87bcef7
/frameworks/base/media/java/android/media/session/MediaSession.java
a66c40bf6e0fb79ead6d8a9fc29c5671fa7b1206 16-Aug-2014 RoboErik <epastern@google.com> Update MediaSession APIs for council feedback

-Changes MediaSessionManager.SessionsListener to OnActiveSessionsChangedListener
and makes it an interface.
-Renames MediaController.VolumeInfo to MediaController.AudioInfo
-Renames MediaSession.Track to MediaSession.Item

bug:17059552
Change-Id: I3a0b4371700ad6657972c312a5ab89ddfac6df5b
/frameworks/base/media/java/android/media/session/MediaSession.java
477d1197c3c25c01ace7ea4494437c23720a2eb3 06-Aug-2014 RoboErik <epastern@google.com> Combine MediaSession Callback and TransportControlsCallback

This combines them into a single Callback class and adds default
handling to media buttons to check the available actions and call
one of the other methods if appropriate.

Change-Id: If9897d8cf6d8d8046aa85a646c22382f1db1461b
/frameworks/base/media/java/android/media/session/MediaSession.java
031149cd5f22bd858142633c7a763450f42793f7 26-Jul-2014 RoboErik <epastern@google.com> Add context to MediaController constructor

This also adds a convenience method to MediaSession to allow getting
a controller instead of having to create and cache your own.

bug:16561220
Change-Id: I87f551a7474e71f1cf2f07e0e541c3a4515cd977
/frameworks/base/media/java/android/media/session/MediaSession.java
aa4e23bbb36994708ba72c5f4c83255025d99e07 25-Jul-2014 RoboErik <epastern@google.com> Add getPackageName to MediaController

This removes the MediaSessionInfo class and adds a method on the
controller to get the package name. This also converts code that
depended on the session's UUID to use the token for comparison or
the Tag in the case of test code that needs a string identifier.

Change-Id: Icb8dc76c70e23e897da8fd07651c524b96372bf9
/frameworks/base/media/java/android/media/session/MediaSession.java
b214efbb9170a9f6a4991684a63ca59680074cc7 24-Jul-2014 RoboErik <epastern@google.com> Expose a way to set a PendingIntent for restarting playback

This is to allow apps to set a PendingIntent to restart playback. This
is not persisted across reboots but will allow music to start playing
again for the life of the system. Only the most recent priority app with
a PI set will be cached. This also deprecates methods in AudioManager
that do this and unhides the unregister method in MediaSessionManager.

Change-Id: I66fbf5856333468d8cb8a3022809778ba00d426e
/frameworks/base/media/java/android/media/session/MediaSession.java
e34c09daf89fb888fe2638e71758573462d85173 24-Jul-2014 RoboErik <epastern@google.com> Finish plumbing for launch intents in sessions

This finishes out the plumbing for setting a launchable PendingIntent
on a session and getting it from a controller to launch an app's UI.

Change-Id: I0c9506e7c3f0ebf57070ca7e0d91324eb3fdd1e1
/frameworks/base/media/java/android/media/session/MediaSession.java
76fca4e177e18b591439fdff64b8f5242a5122d0 23-Jul-2014 RoboErik <epastern@google.com> Add getFlags and getSessionToken to MediaController

getFlags was hidden, should have been public. Also added getSessionToken
as a convenience method for apps to get the token used to create a
controller.

bug:15408392
Change-Id: Icb19b43ebb7e01727eec1a4e667dafcfc3b8d4eb
/frameworks/base/media/java/android/media/session/MediaSession.java
f364f944962c4ec66f5e5b33dafe8480f38f6db6 22-Jul-2014 Gabriel Peal <gpeal@google.com> Added Action to PlaybackState

Added the ability to discover MediaBrowsers

Change-Id: I925c8738ac73afd0bee3dada2ee7ff2d5047e63f
/frameworks/base/media/java/android/media/session/MediaSession.java
f0593bc17b61c872ae2d7705fb598c5e5056e679 22-Jul-2014 Gabriel Peal <gpeal@google.com> Added QueueState, playUri, and playFromSearch.

Added QueueState to MediaSession/MediaController
Added play(Uri) and playFromSearch(String) to MediaController.TransportControls

Change-Id: I1a8ad5c22d05015ab6ff5700dc8a758455f1d89b
/frameworks/base/media/java/android/media/session/MediaSession.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/session/MediaSession.java
ca58ddf7c82dd0857de0c3d49d7eb87a842ee4ce 18-Jul-2014 RoboErik <epastern@google.com> Fix crash when calling MediaSession callback

bug:16311395
Change-Id: Ice52d2da63933af881dd95fa8c6f59a6fe27e0df
/frameworks/base/media/java/android/media/session/MediaSession.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/session/MediaSession.java
8b4bffcac996b4083e720310a09d315ca1c4a000 10-Jul-2014 RoboErik <epastern@google.com> Make MediaSession and MediaController constructors public

This makes the MediaSession/Controller constructors public and registers
with the system behind the scenes.

This also adds a bit about needing to call setActive(true) to start receiving
commands in MediaSession's docs.

Change-Id: If882d229b54c36bf0831aca0255052dda667a2bc
/frameworks/base/media/java/android/media/session/MediaSession.java
1a937b04e63539cb1fab1bde601031d415c7156f 02-Jul-2014 Jeff Brown <jeffbrown@google.com> Initial draft of new MediaRouter APIs.

This patch introduces basic infrastructure for the new MediaRouter
API. The code is fully documented but incompletely implemented.
It is being submitted not to facilitate API reviews.

MediaRouter is a new class that applications used to discovery,
connect to, and control media devices as represented by media
destinations and their routes. Routes may offer a variety of
capabilities. This new class is a much more powerful replacement
for the existing MediaRouter.

MediaRouteService is a base class for creating media route services
which third-parties can implement to make routes available to
applications. It is analoguous to the MediaRouteProvider
infrastructure of the old media router support library but it
is designed to be integrated into the framework and enable a
variety of new usages such as remote display projection.

Stay tuned for more...

Change-Id: I2c7c6013d9f751d71e83697e7fc9e49bf7751fef
/frameworks/base/media/java/android/media/session/MediaSession.java
01a500ed1c6ae3fff66678144ae637aa8cad0ecc 11-Jul-2014 Jeff Brown <jeffbrown@google.com> Delete first draft of media routing APIs.

The new APIs will not be as tightly integrated into MediaSession.

Change-Id: I5cfd37d9d8d0c5d46c55edb5cf0772a8f1ef13ab
/frameworks/base/media/java/android/media/session/MediaSession.java
3c45c29109d23981d8b707c809b3b43ce2e20fc3 09-Jul-2014 RoboErik <epastern@google.com> Pipe volume keys to adjustVolume instead of sendMediaKeyEvent

We were calling sendMediaKeyEvent with a KEYCODE_VOLUME key, which was being
ignored because it's not a media key. This redirects the volume keys to use
the adjustVolume methods instead. It also sends the appropriate flags to
make the lock screen consistent with the home screen and the volume keys
only affect active playback when the screen is off.

bug:15900519
Change-Id: I9f3853a2385869353a58debae6e6ca9933ba06ce
/frameworks/base/media/java/android/media/session/MediaSession.java
dba34ba35cd2042d9a8fecfda56e2abe7a680bad 25-Jun-2014 Jeff Brown <jeffbrown@google.com> Make MediaSessionToken an inner class of MediaSession.

Also add some missing AIDLs to the framework makefile to ensure
they are included in the SDK.

Change-Id: If85a3091c7591e0b3bbe6cc4bb74aba2284b4f42
/frameworks/base/media/java/android/media/session/MediaSession.java
19c9518f6a817d53d5234de0020313cab6950b2f 24-Jun-2014 RoboErik <epastern@google.com> b/15729204 Pipe sessions through to VolumePanel

When remote volume is changed via volume buttons we need to notify
the system UI so it can show the slider. This also passes it the
controller to use so adjustments to the slider are sent back to
the correct session.

Change-Id: If5847bcd5db16c56e0e9904b88c94e5b28954c41
/frameworks/base/media/java/android/media/session/MediaSession.java
bf58d9b727f1007c7c620f622ac1d8003b1b211b 24-Jun-2014 Jeff Brown <jeffbrown@google.com> Minor cosmetic tweaks.

Change-Id: I626bad7177659b5670c2864d7bc78033a0ee16e7
/frameworks/base/media/java/android/media/session/MediaSession.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/session/MediaSession.java
6f0e4ddd66fcdcc13944d8970d0b560e2626508b 18-Jun-2014 RoboErik <epastern@google.com> Remove more dead audio service code

Hit a snag in remote volume changes. Trying off this round of
removal so I can work on fixing remote volume handling in a
separate CL.

Change-Id: I49b1ba4b75d770ba7c77da081755f3210a9e9483
/frameworks/base/media/java/android/media/session/MediaSession.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/session/MediaSession.java
b69ffd4dc2c8fa85e0064151141ebeee90de471e 30-May-2014 RoboErik <epastern@google.com> Minimum work to make volume handling work with sessions

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
/frameworks/base/media/java/android/media/session/MediaSession.java
c47fa84b0a6bda48c38ba8822481ce613bafd019 29-May-2014 RoboErik <epastern@google.com> Refactor transport controls APIs

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
/frameworks/base/media/java/android/media/session/MediaSession.java
79fa4630bbca7c6c251eea99fe8997e4b45becee 28-May-2014 RoboErik <epastern@google.com> API changes to sessions

Changes requested by API Council review. A second CL will refactor
TransportController and TransportPerformer based on feedback.

Change-Id: Ie26a7d01d7021232a66c2edf1eb58120437fdfde
/frameworks/base/media/java/android/media/session/MediaSession.java
02014c8faa43382fc1f7ce80a05991ff32ead89f 22-May-2014 RoboErik <epastern@google.com> Switch to using int stream instead of AudioAttributes

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
/frameworks/base/media/java/android/media/session/MediaSession.java
33983a901176adcc16c820444b667a37e6472243 21-May-2014 RoboErik <epastern@google.com> Add stream/volume apis to sessions

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
/frameworks/base/media/java/android/media/session/MediaSession.java
418c10ca9df1505509afeffd558cd92fc97bc635 19-May-2014 RoboErik <epastern@google.com> Add 5s timeout to wakelock

Also filed a b/15110168 to anr the app if it doesn't finish with the
button event in 5s.

Change-Id: I23906b4c7f17d3d3a29eef92b523d8653c87017e
/frameworks/base/media/java/android/media/session/MediaSession.java
42ea7eecd149161ed192d3029f0d77d1d08a4aa5 17-May-2014 RoboErik <epastern@google.com> Rename session classes to have media prefix, hide routes

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
/frameworks/base/media/java/android/media/session/MediaSession.java
07c7077c54717dbbf2c401ea32d00fa6df6d77c6 20-Mar-2014 RoboErik <epastern@google.com> Add RouteProviders to the new Media APIs

Compiles and works with OneMedia. This currently is a rough test of
the system for finding, connecting to, and sending messages to routes.
This will just connect to the first route it finds when a request to
open the route picker is made (and disconnect when another request is
made).

Change-Id: I5de5521a079471b9e02664be4654c0591dfd9a6d
/frameworks/base/media/java/android/media/session/MediaSession.java
8ae0f34db936a649ddaf9cdd086c224f6514efeb 25-Feb-2014 RoboErik <epastern@google.com> Adds a TransportController and TransportPerformer to session

This makes transport controls a primitive interface on sessions with
a way to create the performer, register callbacks, and send commands
and updates between controllers and performers. This still needs some
cleanup but has been tested with OneMedia.

Change-Id: I373d35f7ccc383b8421bd14044457467d80425f3
/frameworks/base/media/java/android/media/session/MediaSession.java
2f5b057da7d05d5d699a272aa24fd7c97cdda820 21-Feb-2014 RoboErik <epastern@google.com> Move Session apis to android.media.session

This is to make it easier to distinguish the new apis from the old
ones.

Change-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7
/frameworks/base/media/java/android/media/session/MediaSession.java