Loading app/src/main/java/org/lineageos/twelve/datasources/DummyDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import org.lineageos.twelve.models.Audio import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.Playlist import org.lineageos.twelve.models.RequestStatus Loading Loading @@ -84,6 +85,10 @@ object DummyDataSource : MediaDataSource { RequestStatus.Error<Audio, _>(MediaError.NOT_FOUND) ) override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_FOUND) ) override suspend fun createPlaylist(name: String) = RequestStatus.Error<Uri, _>(MediaError.NOT_IMPLEMENTED) Loading app/src/main/java/org/lineageos/twelve/datasources/JellyfinDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.LocalizedString import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist Loading Loading @@ -269,6 +270,10 @@ class JellyfinDataSource( uri?.let(this::audio) ?: flowOf(RequestStatus.Error(MediaError.NOT_FOUND)) } override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_IMPLEMENTED) ) override suspend fun createPlaylist(name: String) = run { client.createPlaylist(name).toRequestStatus { onPlaylistsChanged() Loading app/src/main/java/org/lineageos/twelve/datasources/LocalDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.LocalizedString import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist Loading Loading @@ -635,6 +636,10 @@ class LocalDataSource( ) } override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_IMPLEMENTED) ) override fun lastPlayedAudio() = database.getLastPlayedDao() .get(LAST_PLAYED_KEY) .flatMapLatest { uri -> Loading app/src/main/java/org/lineageos/twelve/datasources/MediaDataSource.kt +7 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import org.lineageos.twelve.models.Audio import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist Loading Loading @@ -111,6 +112,12 @@ interface MediaDataSource { */ fun lastPlayedAudio(): Flow<MediaRequestStatus<Audio>> /** * Get the lyrics of an audio. * @param audioUri The URI of the audio */ fun lyrics(audioUri: Uri): Flow<RequestStatus<Lyrics, MediaError>> /** * Create a new playlist. Note that the name shouldn't be considered unique if possible, but * this may vary per data source. Loading app/src/main/java/org/lineageos/twelve/datasources/SubsonicDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.LocalizedString import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist import org.lineageos.twelve.models.ProviderArgument Loading Loading @@ -374,6 +375,10 @@ class SubsonicDataSource( uri?.let(this::audio) ?: flowOf(RequestStatus.Error(MediaError.NOT_FOUND)) } override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_IMPLEMENTED) ) override suspend fun createPlaylist(name: String) = subsonicClient.createPlaylist( null, name, listOf() ).toRequestStatus { Loading Loading
app/src/main/java/org/lineageos/twelve/datasources/DummyDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import org.lineageos.twelve.models.Audio import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.Playlist import org.lineageos.twelve.models.RequestStatus Loading Loading @@ -84,6 +85,10 @@ object DummyDataSource : MediaDataSource { RequestStatus.Error<Audio, _>(MediaError.NOT_FOUND) ) override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_FOUND) ) override suspend fun createPlaylist(name: String) = RequestStatus.Error<Uri, _>(MediaError.NOT_IMPLEMENTED) Loading
app/src/main/java/org/lineageos/twelve/datasources/JellyfinDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.LocalizedString import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist Loading Loading @@ -269,6 +270,10 @@ class JellyfinDataSource( uri?.let(this::audio) ?: flowOf(RequestStatus.Error(MediaError.NOT_FOUND)) } override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_IMPLEMENTED) ) override suspend fun createPlaylist(name: String) = run { client.createPlaylist(name).toRequestStatus { onPlaylistsChanged() Loading
app/src/main/java/org/lineageos/twelve/datasources/LocalDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.LocalizedString import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist Loading Loading @@ -635,6 +636,10 @@ class LocalDataSource( ) } override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_IMPLEMENTED) ) override fun lastPlayedAudio() = database.getLastPlayedDao() .get(LAST_PLAYED_KEY) .flatMapLatest { uri -> Loading
app/src/main/java/org/lineageos/twelve/datasources/MediaDataSource.kt +7 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ import org.lineageos.twelve.models.Audio import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaItem import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist Loading Loading @@ -111,6 +112,12 @@ interface MediaDataSource { */ fun lastPlayedAudio(): Flow<MediaRequestStatus<Audio>> /** * Get the lyrics of an audio. * @param audioUri The URI of the audio */ fun lyrics(audioUri: Uri): Flow<RequestStatus<Lyrics, MediaError>> /** * Create a new playlist. Note that the name shouldn't be considered unique if possible, but * this may vary per data source. Loading
app/src/main/java/org/lineageos/twelve/datasources/SubsonicDataSource.kt +5 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import org.lineageos.twelve.models.DataSourceInformation import org.lineageos.twelve.models.Genre import org.lineageos.twelve.models.GenreContent import org.lineageos.twelve.models.LocalizedString import org.lineageos.twelve.models.Lyrics import org.lineageos.twelve.models.MediaType import org.lineageos.twelve.models.Playlist import org.lineageos.twelve.models.ProviderArgument Loading Loading @@ -374,6 +375,10 @@ class SubsonicDataSource( uri?.let(this::audio) ?: flowOf(RequestStatus.Error(MediaError.NOT_FOUND)) } override fun lyrics(audioUri: Uri) = flowOf( RequestStatus.Error<Lyrics, _>(MediaError.NOT_IMPLEMENTED) ) override suspend fun createPlaylist(name: String) = subsonicClient.createPlaylist( null, name, listOf() ).toRequestStatus { Loading