Package-level declarations

Types

Link copied to clipboard
data class Album(val id: String, val title: String, val type: Album.Type? = null, val cover: ImageHolder? = null, val artists: List<Artist> = listOf(), val trackCount: Long? = null, val duration: Long? = null, val releaseDate: Date? = null, val description: String? = null, val background: ImageHolder? = cover, val label: String? = null, val isExplicit: Boolean = false, val subtitle: String? = null, val extras: Map<String, String> = mapOf(), val isRadioSupported: Boolean = true, val isFollowable: Boolean = false, val isSaveable: Boolean = true, val isLikeable: Boolean = false, val isHideable: Boolean = false, val isShareable: Boolean = true) : EchoMediaItem.Lists

A data class representing an album

Link copied to clipboard
data class Artist(val id: String, val name: String, val cover: ImageHolder? = null, val bio: String? = null, val background: ImageHolder? = cover, val banners: List<ImageHolder> = listOf(), val subtitle: String? = null, val extras: Map<String, String> = mapOf(), val isRadioSupported: Boolean = true, val isFollowable: Boolean = true, val isSaveable: Boolean = true, val isLikeable: Boolean = false, val isHideable: Boolean = false, val isShareable: Boolean = true) : EchoMediaItem

A data class representing an artist

Link copied to clipboard
data class Chapter(val name: String, val startTime: Long, val endTime: Long? = null, val skipType: Chapter.SkipType = NONE)

Represents a chapter in a track.

Link copied to clipboard
data class Date(val epochTimeMs: Long) : Comparable<Date>
Link copied to clipboard
data class DownloadContext(val extensionId: String, val track: Track, val sortOrder: Int? = null, val context: EchoMediaItem? = null)

Download context for a track

Link copied to clipboard
sealed interface EchoMediaItem

A class representing a media item in Echo.

Link copied to clipboard

Enum class to define the type of extension

Link copied to clipboard
data class Feed<T : Any>(val tabs: List<Tab>, val getPagedData: suspend (Tab?) -> Feed.Data<T>)

Represents a feed of multiple T items, Used in various contexts like home, library, etc.

Link copied to clipboard
sealed class ImageHolder

A class representing an image.

Link copied to clipboard

Enum class to define the type of import,

Link copied to clipboard
data class Lyrics(val id: String, val title: String, val subtitle: String? = null, val lyrics: Lyrics.Lyric? = null, val extras: Map<String, String> = emptyMap())

Represents lyrics of a song, can be loaded later in LyricsClient.loadLyrics.

Link copied to clipboard
data class Message(val message: String, val action: Message.Action? = null)

A message to be sent to the app.

Link copied to clipboard
data class Metadata(val className: String, val path: String, val importType: ImportType, val type: ExtensionType, val id: String, val name: String, val version: String, val description: String, val author: String, val authorUrl: String? = null, val icon: ImageHolder? = null, val repoUrl: String? = null, val updateUrl: String? = null, val preservedPackages: List<String> = listOf(), val isEnabled: Boolean = true)

Metadata for an extension.

Link copied to clipboard

Enum class to define the type of network,

Link copied to clipboard
data class NetworkRequest(val url: String, val headers: Map<String, String> = emptyMap(), val method: NetworkRequest.Method = GET, val bodyBase64: String? = null)

A data class to represent a network request.

Link copied to clipboard
data class Playlist(val id: String, val title: String, val isEditable: Boolean, val isPrivate: Boolean = true, val cover: ImageHolder? = null, val authors: List<Artist> = listOf(), val trackCount: Long? = null, val duration: Long? = null, val creationDate: Date? = null, val description: String? = null, val background: ImageHolder? = cover, val subtitle: String? = null, val extras: Map<String, String> = mapOf(), val isRadioSupported: Boolean = true, val isFollowable: Boolean = false, val isSaveable: Boolean = true, val isLikeable: Boolean = false, val isHideable: Boolean = false, val isShareable: Boolean = true) : EchoMediaItem.Lists

A data class representing a playlist

Link copied to clipboard
data class Progress(val size: Long = 0, val progress: Long = 0, val speed: Long = 0)

Progress data class to hold the progress of the download.

Link copied to clipboard
sealed class QuickSearchItem

Represents a quick search item. This can be a Query or a Media item.

Link copied to clipboard
data class Radio(val id: String, val title: String, val cover: ImageHolder? = null, val authors: List<Artist> = listOf(), val trackCount: Long? = null, val description: String? = null, val subtitle: String? = null, val extras: Map<String, String> = mapOf(), val isFollowable: Boolean = false, val isSaveable: Boolean = false, val isLikeable: Boolean = false, val isHideable: Boolean = false, val isShareable: Boolean = true) : EchoMediaItem.Lists

A data class representing a radio, that can load tracks and be directly played when clicked.

Link copied to clipboard
sealed interface Shelf

Represents a shelf (group of Media Items or Categories) in the app feed.

Link copied to clipboard
data class Streamable(val id: String, val quality: Int, val type: Streamable.MediaType, val title: String? = null, val extras: Map<String, String> = mapOf())

A data class representing an unloaded streamable item that is used when playing a Track The streamable item can be of three types:

Link copied to clipboard
data class Tab(val id: String, val title: String, val isSort: Boolean = false, val extras: Map<String, String> = emptyMap())

A data class representing a tab

Link copied to clipboard
data class Track(val id: String, val title: String, val type: Track.Type = Type.Song, val cover: ImageHolder? = null, val artists: List<Artist> = listOf(), val album: Album? = null, val duration: Long? = null, val playedDuration: Long? = null, val plays: Long? = null, val releaseDate: Date? = null, val description: String? = null, val background: ImageHolder? = cover, val genres: List<String> = listOf(), val isrc: String? = null, val albumOrderNumber: Long? = null, val albumDiscNumber: Long? = null, val playlistAddedDate: Date? = null, val isExplicit: Boolean = false, val subtitle: String? = null, val extras: Map<String, String> = mapOf(), val isPlayable: Track.Playable = Playable.Yes, val streamables: List<Streamable> = listOf(), val isRadioSupported: Boolean = true, val isFollowable: Boolean = false, val isSaveable: Boolean = true, val isLikeable: Boolean = true, val isHideable: Boolean = true, val isShareable: Boolean = true) : EchoMediaItem

A class representing a track that can be played in Echo.

Link copied to clipboard
data class TrackDetails(val extensionId: String, val track: Track, val context: EchoMediaItem?, val currentPosition: Long, val totalDuration: Long?)

A data class that holds the details of a track that is in the player.

Link copied to clipboard
data class User(val id: String, val name: String, val cover: ImageHolder? = null, val subtitle: String? = null, val extras: Map<String, String> = emptyMap())

A data class representing a user