Music Extension
A data class representing a Music Extension. If some function is not supported by the extension, it should throw a ClientException.
Music Extension supports the following types of clients:
ExtensionClient - Mandatory Base Client
LoginClient - For login support
Feed
To show feed of media items on main screen, the extension should implement the following clients:
HomeFeedClient - To load the feed on the Home Tab
SearchFeedClient/QuickSearchClient - To load the feed on the Search Tab
LibraryFeedClient - To load the feed on the Library Tab
Track Streaming
When streaming a track, the extension can implement the following clients:
TrackClient - Mandatory to stream tracks
TrackChapterClient - To mark tracks as played
Media Items
To load media items, the extension should implement the following clients:
AlbumClient - To load albums
PlaylistClient - To load playlists
ArtistClient - To load artists
RadioClient - To load next tracks for the current track & show to radio button on media items with EchoMediaItem.isRadioSupported set to true
Library
To allow library functionality, The extension can implement the following clients:
FollowClient - To follow/unfollow items with EchoMediaItem.isFollowable set to true
SaveClient - To save media items with EchoMediaItem.isSaveable set to true
LikeClient - To like/unlike items with EchoMediaItem.isLikeable set to true
HideClient - To hide items with EchoMediaItem.isHideable set to true
ShareClient - To share items with EchoMediaItem.isShareable set to true
Tracking and Lyrics
TrackerClient - For tracking what the user is listening to
TrackerMarkClient - For marking tracks as played
LyricsClient - For lyrics support
LyricsSearchClient - For searching lyrics using user query
Playlist Editing
To allow playlist editing, The extension can implement the following clients:
PlaylistEditClient - To edit playlists and show create playlist button on Library Tab
PlaylistEditCoverClient - To edit playlist cover
PlaylistEditorListenerClient - To listen to playlist editing events
PlaylistEditPrivacyClient - To edit playlist privacy
Providers
The extension can also implement the following providers:
MetadataProvider - To get metadata of the extension
MessageFlowProvider - To send popup messages in the app
MusicExtensionsProvider - To get installed music extensions
LyricsExtensionsProvider - To get installed lyrics extensions
TrackerExtensionsProvider - To get installed tracker extensions
MiscExtensionsProvider - To get installed misc extensions
GlobalSettingsProvider - To get global settings of the app
NetworkConnectionProvider - To get network connection status
Parameters
The metadata of the extension
An injectable instance of the ExtensionClient client