Remove dead code related to media button event receiver and
remote control display, now handled by MediaSession*
Change-Id: I4bd621240ddddf4df079df8d551c72b232c3301d
Some legacy apps register a RemoteController on a thread without a
looper. This ensures a handler with a looper is used when it registers
the sessions listener.
bug:17357029
Change-Id: Ia3d98f5dcc331edd0c3a7e858db1d9e7e2749e14
-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
We were just sending them from the binder thread. This makes them
post to the thread that registered the listener.
Change-Id: I27c155099da32f3bc8be6e3851272f0463df498b
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
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
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
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
This allows apps that are registered notification listeners to
listen to the set of active sessions.
Change-Id: I1e108951a5049d138208e88b155c0ec9b95fbdb0
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
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
This is far from complete but puts the basic components in place
for an app to interact with media sessions.
Change-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f
Make sure that caches are cleared at the right times and views have
their data populated correctly. Also fix a caching issue in
RemoteController.
Bug 11218218
Change-Id: Ieb833b5dc440ccd1b82050f12eb7059a4e0a412f
In the RemoteController implementation, the inner class that
implements the IRemoteControlDisplay interface must have a weak
link to the RemoteController instance with which it is associated,
as MediaFocusControl and RemoteControlClient hold a strong
reference to this binder object in a different remote process.
Without a weak reference, any object referencing RemoteController
couldn't be independently garbage collected without a garbage
collection in the remote process.
Bug 8209392
Change-Id: I29e4274c45249b3cb0d3d89417c69e8fe8f62fc4
When a RemoteController listener is disabled: send its listener
"blank" information (no artist, "stopped state"...)
When a RemoteController listener is enabled: have the current
RemoteControlClient send the current information.
Bug 8209392
Change-Id: I375bf3c42a425ada94c61453b51669d7e819dde4
Registration of a RemoteController may succeed only if:
- the caller has the MEDIA_CONTENT_CONTROL permission,
- or if the RemoteController.OnClientUpdateListener it
registers if one of the enabled notification listeners.
For using the "enabled notification listener" functionality,
the CL involved:
- making OnClientUpdateListener an interface so a 3rd-party
application may have its implementation extend
NotificationListenerService, which is required for a
listener to be enabled by the user.
- add the concept of "enabled" status in an
IRemoteControlDisplay, so a RemoteController (which
encapsulates the IRemoteControlDisplay implementation)
may be registered, but later temporarily disabled by
the user, as a result of a user action in the security
settings, or a user switch.
- making MediaFocusControl, the component tied to
AudioService, monitor changes in enabled notification
listeners, and act upon enable/disable changes.
Bug 8209392
Change-Id: Ia8dfa2156c65668b2b0d4ae92048005912652d84
Switch KeyguardTransportControlView over to using RemoteController
instead of the internal API.
Guard transition animations behind a flag until we can work out some
intermittent issues.
Change-Id: Ie9f41339ce6e735c5d524db88437672f2c9859e2
Allow an app to set the artwork configuration at any point
regardless of the registration state, and cache the width/height
values.
If the RemoteController is already registered, apply them.
If the RemoteController is not registered, use the cached value
when the object gets registered.
Bug 10862527
Change-Id: If633e2b9383e7d59690288d2271113e98b195cd8
Regardless of the artwork value, always update the metadata.
When updating the metadata, make sure the artwork is stored
in the artwork field, not in the bundle of the MetadataEditor.
Bug 10862527
Change-Id: Iec83fd9bb358a91c852099b30bb6d307a52a034c
Public API, under system|signature permission for access to
currently playing metadata and playback state.
Public API for sending media key events.
Bug 8209392
Change-Id: I39b9309ca3fb1bc305492bad98740df0ae0842b2
Wrap all the features of IRemoteControlDisplay.aidl in a
new class, RemoteController, that implements the
IRemoteControlDisplay interface.
The API functions to expose in the SDK are tagged with
"CANDIDATE FOR API"
Bug 8209392
Change-Id: I597bcd503ac93e73889c9ae8b47b16c4fcb363bc