• Home
  • History
  • Annotate
  • only in /frameworks/base/media/java/android/media/session/
History log of /frameworks/base/media/java/android/media/session/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9b5257c9c99c4cb541d8e8e78fb04f008b1a9091 19-Dec-2014 Jean-Michel Trivi <jmtrivi@google.com> MediaSessionLegacyHelper uses global Application context

MediaSessionLegacyHelper used a Context passed by an application
which can cause a leak of Activity instances. Use the global
Application context instead.
Also prevent crash if a null Context is supplied (method not
documented as requesting a non-null Context).

Bug 18767503

Change-Id: I8281047d0af233a323f3fc11ababedff848829ec
ediaSessionLegacyHelper.java
f32bd3c5cd8bd2c00f52ea32d7481c30e29d2acc 09-Dec-2014 Michael Wright <michaelwr@google.com> Don't try to scale the bitmaps for null MediaMetadata.

Bug: 18586572
Change-Id: I133e58eeb05136ca82cbd35840b68ebedd9ec365
ediaSession.java
7c82ced4fc5b66c09a19eed9a5499039530142fb 05-Dec-2014 RoboErik <epastern@google.com> Route mute key events through MediaSessionService

This sends mute keys to the MediaSessionService and handles them
by toggling the appropriate stream. Muting remote playback is still
not supported.

bug:17501993
Change-Id: I18c5b037cde2175acbb64b118dd708514acfd8c9
ediaSessionLegacyHelper.java
ediaSessionManager.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
ediaSession.java
3e0cfcda31301e53c92cb2f91ed8be1cd6efd8bc 04-Nov-2014 RoboErik <epastern@google.com> skip MediaController callbacks if it's been unregistered

This gives slightly better gaurantees around when an app will receive
a callback. As long as they remove a callback on the same thread calls
get posted on they won't receive any callbacks after the remove.

bug:18104724
Change-Id: Id9878186f005bf0b35c0380cd35f8fd7e67d1d90
ediaController.java
9af44ddf0367c542d6c1db6060456bd72f3c83ca 05-Nov-2014 RoboErik <epastern@google.com> Merge "Post volume requests to the handler thread in MediaSession" into lmp-mr1-dev
131e63adaa3333ef44dbe090471b710816447bf6 04-Nov-2014 RoboErik <epastern@google.com> Add extras to the PlaybackState

This allows apps to include extras that are atomic with play state
changes.

bug:18189125
bug:18103891
Change-Id: Ia3bc5b0dcf29960cb70e2ff3a67ec1fdd48b7a5a
laybackState.java
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
ediaSession.java
laybackState.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
ediaSession.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
ediaSession.java
de9ba39c1714f5bc9e1785d8224ad26c132b6293 26-Sep-2014 RoboErik <epastern@google.com> Don't forward media keys to the app if the phone session is active

This checks if the phone app is currently getting or in a call when a
media key event is sent and sends it to the phone session instead of the
foreground app if it is.

bug:17527302
Change-Id: Ie5d6cf0c897da81d106f2b1a0561b79f4fc35e82
SessionManager.aidl
ediaSessionLegacyHelper.java
ediaSessionManager.java
1dc5ba86655daf1ee2dd7140e7b20c6d488a48d9 24-Sep-2014 RoboErik <epastern@google.com> Disable MediaSessionLegacyHelper debugging

Switched over to using Log.isLoggable instead for release.

Change-Id: Iebd6871adb9994e23292953f14b6a997c83957a0
ediaSessionLegacyHelper.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
ediaController.java
ediaSession.java
b5245d8904160917942fe91fc8db7f1dfa098fc0 19-Sep-2014 Christoph Studer <chstuder@google.com> SysUI: Correctly compare MediaControllers

Instead of comparing MediaControllers via reference equality
(which is never true), go deeper and check whether the two
controllers are connected to the same IBinder.

Bug: 17571414
Change-Id: Id25d70be0a60d1900e977310dedcc7063552e018
ediaController.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
ediaSession.java
ediaSessionLegacyHelper.java
14f717a506a0d22facbec07386b06634e0c6a8ee 05-Sep-2014 RoboErik <epastern@google.com> rename add/removeCallback to register/unregisterCallback

bug:17390821
Change-Id: Id610b481083686dba2a28b6c7c47b747f89eef4f
ediaController.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
ediaSession.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
ediaController.java
ediaSession.java
f2133474afce7808541c92a1e5c78eb8b0950329 03-Sep-2014 RoboErik <epastern@google.com> Update MediaController comment to mention notification listeners

Forgot to update the comment to specify that notification listeners
may also get a MediaController from the manager.

Change-Id: Id38bcf7cb38185bfe4f99bcf8889a6415320dd36
ediaController.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
ediaSession.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
ediaSession.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
SessionCallback.aidl
SessionController.aidl
ediaController.java
ediaSession.aidl
ediaSession.java
laybackState.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
ediaSession.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
ediaController.java
ediaSession.java
ediaSessionManager.java
arcelableVolumeInfo.java
laybackState.java
b135d06cb83db03b1328b7a82f064de7868fb16f 20-Aug-2014 Jeff Brown <jeffbrown@google.com> Remove incomplete media router API. (DO NOT MERGE)

Change-Id: I310fadafb5a6b8190a32e5d87f3e1823c87bcef7
Session.aidl
SessionController.aidl
ediaController.java
ediaSession.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
ediaController.java
ediaSession.java
ediaSessionManager.java
arcelableVolumeInfo.java
laybackState.java
78c64cdbd82a4d8feb7faf43109b86ab87252dd1 15-Aug-2014 RoboErik <epastern@google.com> Fix crash in legacy apps that register without a looper

Some legacy apps registered their media button receiver in a thread
without a looper. If this happens we need to use the main looper to
prevent a crash.

bug: 16306226
Change-Id: Idf472e649393e2a7ce2a3e1cbb3476003ab17f34
ediaSessionLegacyHelper.java
1d2a1c917f46b6854e91f9867a20abb76ecb794d 14-Aug-2014 RoboErik <epastern@google.com> Merge "Pipe caller's identity through volume methods" into lmp-dev
0dac35af2c6aa42bcd181981b041747cfd1afa5f 13-Aug-2014 RoboErik <epastern@google.com> Pipe caller's identity through volume methods

setStreamVolume and adjustStreamVolume were always being called
from the session service's uid/package. This adds the plumbing to
allow the original app's info to be passed in to the audio service
when volume is changed.

Change-Id: Ib36639dab1e518b435161dc453c8ba9351df3e9b
SessionController.aidl
ediaController.java
5ca4a78e3224bb4c6c47a6d31b4bf2566738b20f 14-Aug-2014 RoboErik <epastern@google.com> Merge "Post MediaSessionManager callbacks to the caller's thread" into lmp-dev
24762bffc3358762666079cd802040a316b3260d 14-Aug-2014 RoboErik <epastern@google.com> Add an onSessionDestroyed callback to MediaController.Callback

Callbacks on the controller need to know when the session ceases
to exist.

bug:17009030
Change-Id: I0f1c1cfc51f7dd2203955287cc269667d3765ee4
SessionControllerCallback.aidl
ediaController.java
0d194c5e2338b8a920c512e15a433cec5bd63612 12-Aug-2014 RoboErik <epastern@google.com> Post MediaSessionManager callbacks to the caller's thread

We were just sending them from the binder thread. This makes them
post to the thread that registered the listener.

Change-Id: I27c155099da32f3bc8be6e3851272f0463df498b
ediaSessionManager.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
ediaController.java
ediaSession.java
ediaSessionLegacyHelper.java
laybackState.java
51fdfa273e036d0e4f5e5c624988b33873fa3ec7 06-Aug-2014 Yao Chen <yaochen@google.com> Adds getServiceComponent() to MediaBrowser, getQueueTitle() and
getExtras() to MediaController

Change-Id: I6092ac1ae05ba55c14a042698bb88bd16e9b1fa7
ediaController.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
ediaController.java
ediaSession.java
ediaSessionManager.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
SessionController.aidl
ediaController.java
ediaSession.java
ediaSessionInfo.aidl
ediaSessionInfo.java
ediaSessionLegacyHelper.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
Session.aidl
ediaSession.java
ediaSessionLegacyHelper.java
ediaSessionManager.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
Session.aidl
SessionController.aidl
ediaController.java
ediaSession.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
ediaController.java
ediaSession.java
8880157ee0c1c765526e19d57e2b8d68af7e956e 23-Jul-2014 RoboErik <epastern@google.com> Merge "Return appropriately scaled artwork to RemoteController" into lmp-dev
a259d35073ada384a5810f2a0f4f92f5fd27d85f 23-Jul-2014 RoboErik <epastern@google.com> Return appropriately scaled artwork to RemoteController

RemoteController has an api to set the artwork size. This adds compatibility
code to do the exclusion or scaling of artwork to be consistent with old APIs.

bug:15618171
Change-Id: I8cc51750c03219d42d5f543419f8b46f9eb5b833
ediaSessionLegacyHelper.java
f364f944962c4ec66f5e5b33dafe8480f38f6db6 22-Jul-2014 Gabriel Peal <gpeal@google.com> Added Action to PlaybackState

Added the ability to discover MediaBrowsers

Change-Id: I925c8738ac73afd0bee3dada2ee7ff2d5047e63f
SessionCallback.aidl
SessionController.aidl
ediaController.java
ediaSession.java
laybackState.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
Session.aidl
SessionCallback.aidl
SessionController.aidl
SessionControllerCallback.aidl
ediaController.java
ediaSession.aidl
ediaSession.java
laybackState.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
Session.aidl
ediaController.java
ediaSession.java
arcelableVolumeInfo.java
ca58ddf7c82dd0857de0c3d49d7eb87a842ee4ce 18-Jul-2014 RoboErik <epastern@google.com> Fix crash when calling MediaSession callback

bug:16311395
Change-Id: Ice52d2da63933af881dd95fa8c6f59a6fe27e0df
ediaSession.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
SessionCallback.aidl
SessionController.aidl
SessionManager.aidl
ediaController.java
ediaSession.java
ediaSessionLegacyHelper.java
ediaSessionManager.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
ediaController.java
ediaSession.java
ediaSessionLegacyHelper.java
ediaSessionManager.java
44583d351ec7ccbe0813cc7c0fa36b9bc5a936a3 14-Jul-2014 RoboErik <epastern@google.com> Merge changes I51f2e466,I5b67cb3e into lmp-dev

* changes:
Make PlaybackState immutable with a builder
Add API to set a default session in Activity
c785a78fb483fe54012175c53d3758b2412de7b9 14-Jul-2014 RoboErik <epastern@google.com> Make PlaybackState immutable with a builder

bug:15862252
Change-Id: I51f2e466bd2c41bbe80d20aa9785126a7ac6ab3f
laybackState.java
33f4e04e32fac42f158733d6a731e50490fa9951 11-Jul-2014 John Spurlock <jspurlock@google.com> Volume: Delay adjustments made when showing ringer UI.

Since the volume rocker is now the primary system UI for
entering ringer modes, we need to provide a way to display
the ui without making a sound.

Change the policy for the ringer stream to only display the
UI on the initial adjustment request, don't actually make
an adjustment. However, don't break previous ability to
press and hold the vol keys down to vibrate, so allow this
after the standard framework long-press delay.

Audio service had no way of knowing whether or not the registered
volume controller was visible, so add a mechanism for the
controller (volume panel) to send that info back to the service.

Found and fixed a discrepancy between AudioManager.handleKeyDown
and MediaSessionLegacyHelper so that an adjustment over the
keyguard is allowed to vibrate as well as play sound during
adjustments.

Bug:16202639
Change-Id: Icd36c23e8d08c4ed57922c05724b281f32049be7
ediaSessionLegacyHelper.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
Session.aidl
SessionController.aidl
ediaController.java
ediaSession.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
Session.aidl
SessionCallback.aidl
SessionController.aidl
SessionControllerCallback.aidl
ediaController.java
ediaSession.java
ediaSessionManager.java
laybackState.java
oute.java
outeCommand.aidl
outeCommand.java
outeEvent.aidl
outeEvent.java
outeInfo.aidl
outeInfo.java
outeInterface.java
outeOptions.aidl
outeOptions.java
outePlaybackControls.java
b2e93efcac593f5f27722219b274bd0fa5c1b0fe 11-Jul-2014 Erik Pasternak <roboerik@android.com> Revert "Make PlaybackState immutable with a builder"

Will resubmit tomorrow for Build Breakage Friday as this change needs new SDK prebuilts for unbundled app branches.

This reverts commit aa746b27610680a2c0fbdf7d81a6455c4597f05e.

Change-Id: I28ba7e1b09234a5eb1b725aed043b9de98e1bc16
laybackState.java
5a4e01114361b7dad4fc5465b4da00fd444fc098 09-Jul-2014 RoboErik <epastern@google.com> Make PlaybackState immutable with a builder

bug:15862252
Change-Id: I8944b7753cd6a36a74b0091f71a386f77040c4ab
laybackState.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
ediaSession.java
ediaSessionLegacyHelper.java
6c09004ec09951712ab57473810fa6b85f5783cd 02-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> Send media button events with FLAG_RECEIVER_FOREGROUND set

bug 11357318

Change-Id: Iccd000bebb31a2f6cb057e97d3ab276861d0b651
ediaSessionLegacyHelper.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
ActiveSessionsListener.aidl
ediaController.java
ediaSession.aidl
ediaSession.java
ediaSessionManager.java
ediaSessionToken.aidl
ediaSessionToken.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
SessionControllerCallback.aidl
SessionManager.aidl
ediaController.java
ediaSession.java
ediaSessionManager.java
bf58d9b727f1007c7c620f622ac1d8003b1b211b 24-Jun-2014 Jeff Brown <jeffbrown@google.com> Minor cosmetic tweaks.

Change-Id: I626bad7177659b5670c2864d7bc78033a0ee16e7
ediaController.java
ediaSession.java
ediaSessionManager.java
laybackState.java
51fa6bcb22a52b283f6d0756d286101f0d354f54 20-Jun-2014 RoboErik <epastern@google.com> b/15757378 Expose APIs for listening to active sessions

This allows apps that are registered notification listeners to
listen to the set of active sessions.

Change-Id: I1e108951a5049d138208e88b155c0ec9b95fbdb0
ediaSessionManager.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
SessionController.aidl
ediaController.java
ediaSession.java
arcelableVolumeInfo.aidl
arcelableVolumeInfo.java
emoteVolumeProvider.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
Session.aidl
ediaSession.java
ediaSessionLegacyHelper.java
d3c8642dae9a1f6db60e2f8e5c7b32cd1b3169df 16-Jun-2014 RoboErik <epastern@google.com> Remove some more old code and fix Media command

Removes some more hidden apis from AudioService/Manager. This also
fixes up Media.java to support commands for the new service to help
with debugging. Also fixes a couple bugs that were found while fixing
up Media.

Change-Id: I68e4aa80a4de430b98236aafc883664b9432c62b
ediaController.java
6b1bea09031ef24214f1806f9b7604302d824c62 17-Jun-2014 RoboErik <epastern@google.com> b/15676582 Fix ordering of sessions returned by MediaSessionManager

This was causing the wrong rcc to be shown. Simple fix
just fixes the ordering so it's not reversed.

Change-Id: I56f2d9d6895d6ba3b0eca8f77a3b0b63e0193ad1
ediaSessionManager.java
73e23e229dd1a2d25687b1c6a63c708665378e41 11-Jun-2014 RoboErik <epastern@google.com> b/15330955 Make RemoteController use the new session APIs

This moves RemoteController over to using Sessions instead of
the RCC/RCD framework. This also adds several hidden APIs to
help with translating between the two apis.

Change-Id: I0f50313db2b6190b16fa86ce670ac9250654ca05
SessionController.aidl
ediaController.java
ediaSessionLegacyHelper.java
ediaSessionManager.java
laybackState.java
a3d81885566f79b0e21438bd69634cc53a80918b 09-Jun-2014 RoboErik <epastern@google.com> Merge "Adds listeners for changes to the list of active sessions" into lmp-preview-dev
55f6ab4c813b6d355ba1ba72e4e2d98b9583f6f3 09-Jun-2014 RoboErik <epastern@google.com> Merge "b/15388389 Add volume handling support to MediaRouter" into lmp-preview-dev
fb442b03840245c7e52cf2a540a77c5fc6c54587 08-Jun-2014 RoboErik <epastern@google.com> Add a way to get the package/pid of the session

We need a package/pid to connect a session to a notification. This
adds a way to get those from the controller of a session.

Change-Id: I7700a341beebd46116dfb7dc82f1a667c718e728
SessionController.aidl
ediaController.java
ediaSessionInfo.aidl
ediaSessionInfo.java
2e7a9167aeefeb451f8d8c769175b9a0163744f3 05-Jun-2014 RoboErik <epastern@google.com> Adds listeners for changes to the list of active sessions

The listeners get notified when sessions are added, removed, or
reprioritized.

Change-Id: I7f3bfc84049719c3b9c19016c6bac92e1a5c3179
ActiveSessionsListener.aidl
SessionManager.aidl
ediaSessionManager.java
ediaSessionToken.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
ediaSession.java
emoteVolumeProvider.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
Session.aidl
SessionCallback.aidl
SessionManager.aidl
ediaSession.java
ediaSessionLegacyHelper.java
ediaSessionManager.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
ediaController.java
ediaSession.java
ediaSessionLegacyHelper.java
emoteVolumeProvider.java
ransportController.java
ransportPerformer.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
SessionController.aidl
ediaController.java
ediaSession.java
ediaSessionInfo.java
ediaSessionLegacyHelper.java
ediaSessionManager.java
ediaSessionToken.java
laybackState.java
emoteVolumeProvider.java
ransportController.java
ransportPerformer.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
ediaSession.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
ediaSession.java
emoteVolumeProvider.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
SessionCallback.aidl
ediaSession.java
ediaSessionLegacyHelper.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
Session.aidl
SessionController.aidl
SessionControllerCallback.aidl
ediaController.java
ediaMetadata.aidl
ediaMetadata.java
ediaSession.java
ediaSessionInfo.java
ediaSessionLegacyHelper.java
ediaSessionManager.java
ediaSessionToken.aidl
ediaSessionToken.java
laybackState.java
oute.java
outeInfo.java
outeInterface.java
outeOptions.java
outePlaybackControls.java
ession.java
essionController.java
essionInfo.java
essionManager.java
essionToken.aidl
essionToken.java
ransportController.java
ransportPerformer.java
8a2cfc309ab9126e90022916967c65a793c034f0 16-May-2014 RoboErik <epastern@google.com> Move media key processing to sessions

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
SessionCallback.aidl
SessionManager.aidl
ediaSessionLegacyHelper.java
ession.java
essionManager.java
4646d288821d62fdfe481be67d8b7fed7d7eabd8 13-May-2014 RoboErik <epastern@google.com> Add UserRecords to separate user interactions

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
Session.aidl
SessionCallback.aidl
ession.java
a5b02329209be355eafadbdf9ee685ffa58d3148 08-May-2014 RoboErik <epastern@google.com> Make sessions aware of user id

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
SessionManager.aidl
essionManager.java
a8f951462791a16f47e8c07e552232f31dcefac5 05-May-2014 RoboErik <epastern@google.com> Add a class for managing Session priority

Priority is given first to the system priorty session, then to
active local sessions, then to active remote sessions, then to
the rest of the sessions. Ordering within categories is by whoever
last performed an action we associate with the user.

The stack has methods for getting filtered sets of this priority.

This also:
-Changes publish to setActive(boolean)
-Adds a flag for handling media buttons.
-Adds a flag for transport controls instead of enabling once.
-Unhides the setFlags API.
-Updates the legacy helper to use the flags.

Change-Id: I6ebeb27410de1b24149fd6e1785613ac444f0774
Session.aidl
ediaSessionLegacyHelper.java
ession.java
e7880d8eb1903d42e4e2a90c99b58e2240e01e82 30-Apr-2014 RoboErik <epastern@google.com> Add APIs for creating a system priority session and getting controllers

This adds a hidden call to set flags and a flag for making a session an
exclusive high priority session. This will cause all media button events
to be sent to that session as long as it is stillr egistered. This
requires the MODIFY_PHONE_STATE permission like the old forCalls API.

This also adds a way to get controllers for all the ongoing sessions.
This is protected by the MEDIA_CONTENT_CONTROL permission like the
old RemoteController APIs.

Change-Id: I51540e8dcf3a7dbe02a0f8ee003821e40af653a3
Session.aidl
SessionManager.aidl
ediaSessionLegacyHelper.java
ession.java
essionManager.java
66dea73906f24226a6f699759e79040726bde8b5 02-May-2014 RoboErik <epastern@google.com> Add playback state and metadata to dump

Change-Id: I813ff23c496f75776c8bd63f78bbe87683b19bc0
ediaMetadata.java
laybackState.java
cf43d9baabd9a21e06b1b100deb45a5022cd99dd 02-May-2014 RoboErik <epastern@google.com> Fix sdk build

Missed a doc tag.

Change-Id: Ic02c5fe83a28055bde544434c7b9f3e0c7060191
laybackState.java
6e6a6e863df6cc5e7b930b1197b1f6743ba31d8e 01-May-2014 RoboErik <epastern@google.com> Merge "Add Session API calls to RCC and AudioManager"
f1372428f2df781c71c71caa2f6a4db6f847cf10 23-Apr-2014 RoboErik <epastern@google.com> Add Session API calls to RCC and AudioManager

This makes RCC and MediaButtonReceiver (via AudioManager) also use the new Session APIs in parallel to their existing code. This will allow us to bring up the Session compatibility pieces without disrupting the old behavior and then switch everything over to just using the new APIs when ready.

Change-Id: I33ce0a044dea3ec763f2302b91a5e415be27d4a4
ediaMetadata.java
ediaSessionLegacyHelper.java
laybackState.java
ransportPerformer.java
a278ea7cecb59a73586e5dd74ec05e85caa370c5 24-Apr-2014 RoboErik <epastern@google.com> Add dump to MediaSessionService

Adds a dump implementation for debugging MediaSessionService. Also
fixes some synchronize calls that weren't using the same lock object.

Change-Id: I14343f853398749c8ce7ebf91f72729abc9132d9
essionInfo.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
MediaController.aidl
MediaControllerCallback.aidl
MediaSession.aidl
MediaSessionCallback.aidl
MediaSessionManager.aidl
Session.aidl
SessionCallback.aidl
SessionController.aidl
SessionControllerCallback.aidl
SessionManager.aidl
ediaController.java
ediaSession.java
ediaSessionManager.java
ediaSessionToken.aidl
ediaSessionToken.java
laybackState.java
oute.java
outeCommand.aidl
outeCommand.java
outeEvent.aidl
outeEvent.java
outeInfo.aidl
outeInfo.java
outeInterface.java
outeOptions.aidl
outeOptions.java
outePlaybackControls.java
outeTransportControls.java
ession.java
essionController.java
essionInfo.java
essionManager.java
essionToken.aidl
essionToken.java
ransportController.java
ransportPerformer.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
MediaController.aidl
MediaControllerCallback.aidl
MediaSession.aidl
MediaSessionCallback.aidl
ediaController.java
ediaMetadata.aidl
ediaMetadata.java
ediaSession.java
laybackState.aidl
laybackState.java
outeInterface.java
outeTransportControls.java
ransportController.java
ransportPerformer.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
MediaController.aidl
MediaControllerCallback.aidl
MediaSession.aidl
MediaSessionCallback.aidl
MediaSessionManager.aidl
ediaController.java
ediaSession.java
ediaSessionManager.java
ediaSessionToken.aidl
ediaSessionToken.java