Loading app/src/main/java/org/lineageos/twelve/database/converters/UriConverter.kt +2 −1 Original line number Diff line number Diff line Loading @@ -6,11 +6,12 @@ package org.lineageos.twelve.database.converters import android.net.Uri import androidx.core.net.toUri import androidx.room.TypeConverter class UriConverter { @TypeConverter fun fromString(value: String?) = value?.let { Uri.parse(it) } fun fromString(value: String?) = value?.toUri() @TypeConverter fun toString(uri: Uri?) = uri?.toString() Loading app/src/main/java/org/lineageos/twelve/datasources/JellyfinDataSource.kt +7 −6 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ package org.lineageos.twelve.datasources import android.content.Context import android.net.Uri import android.os.Bundle import androidx.core.net.toUri import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asFlow Loading Loading @@ -65,7 +66,7 @@ class JellyfinDataSource( server, username, password, deviceIdentifier, packageName, tokenGetter, tokenSetter, cache ) private val dataSourceBaseUri = Uri.parse(server) private val dataSourceBaseUri = server.toUri() private val albumsUri = dataSourceBaseUri.buildUpon() .appendPath(ALBUMS_PATH) Loading Loading @@ -364,7 +365,7 @@ class JellyfinDataSource( private fun Item.toMediaItemAlbum() = Album.Builder(getAlbumUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getAlbumThumbnail(id))) .setUri(client.getAlbumThumbnail(id).toUri()) .build() ) .setTitle(name) Loading @@ -376,14 +377,14 @@ class JellyfinDataSource( private fun Item.toMediaItemArtist() = Artist.Builder(getArtistUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getArtistThumbnail(id))) .setUri(client.getArtistThumbnail(id).toUri()) .build() ) .setName(name) .build() private fun Item.toMediaItemAudio() = Audio.Builder(getAudioUri(id.toString())) .setPlaybackUri(Uri.parse(client.getAudioPlaybackUrl(id))) .setPlaybackUri(client.getAudioPlaybackUrl(id).toUri()) .setMimeType(container ?: sourceType) .setTitle(name) .setType(Audio.Type.MUSIC) Loading @@ -403,7 +404,7 @@ class JellyfinDataSource( private fun Item.toMediaItemGenre() = Genre.Builder(getGenreUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getGenreThumbnail(id))) .setUri(client.getGenreThumbnail(id).toUri()) .build() ) .setName(name) Loading @@ -412,7 +413,7 @@ class JellyfinDataSource( private fun Item.toMediaItemPlaylist() = Playlist.Builder(getPlaylistUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getPlaylistThumbnail(id))) .setUri(client.getPlaylistThumbnail(id).toUri()) .build() ) .setName(name) Loading app/src/main/java/org/lineageos/twelve/datasources/SubsonicDataSource.kt +6 −5 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ package org.lineageos.twelve.datasources import android.net.Uri import android.os.Bundle import androidx.core.net.toUri import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asFlow Loading Loading @@ -58,7 +59,7 @@ class SubsonicDataSource( server, username, password, "Twelve", useLegacyAuthentication, cache ) private val dataSourceBaseUri = Uri.parse(server) private val dataSourceBaseUri = server.toUri() private val albumsUri = dataSourceBaseUri.buildUpon() .appendPath(ALBUMS_PATH) Loading Loading @@ -499,7 +500,7 @@ class SubsonicDataSource( private fun AlbumID3.toMediaItem() = Album.Builder(getAlbumUri(id)) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(subsonicClient.getCoverArt(id))) .setUri(subsonicClient.getCoverArt(id).toUri()) .setType(Thumbnail.Type.FRONT_COVER) .build() ) Loading @@ -512,7 +513,7 @@ class SubsonicDataSource( private fun ArtistID3.toMediaItem() = Artist.Builder(getArtistUri(id)) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(subsonicClient.getCoverArt(id))) .setUri(subsonicClient.getCoverArt(id).toUri()) .setType(Thumbnail.Type.BAND_ARTIST_LOGO) .build() ) Loading @@ -523,12 +524,12 @@ class SubsonicDataSource( .setThumbnail( albumId?.let { Thumbnail.Builder() .setUri(Uri.parse(subsonicClient.getCoverArt(it))) .setUri(subsonicClient.getCoverArt(it).toUri()) .setType(Thumbnail.Type.FRONT_COVER) .build() } ) .setPlaybackUri(Uri.parse(subsonicClient.stream(id))) .setPlaybackUri(subsonicClient.stream(id).toUri()) .setMimeType(contentType) .setTitle(title) .setType(type.toAudioType()) Loading app/src/main/java/org/lineageos/twelve/datasources/jellyfin/JellyfinClient.kt +2 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ package org.lineageos.twelve.datasources.jellyfin import android.net.Uri import androidx.core.net.toUri import okhttp3.Cache import okhttp3.OkHttpClient import org.lineageos.twelve.datasources.jellyfin.models.CreatePlaylist Loading Loading @@ -45,7 +45,7 @@ class JellyfinClient( tokenSetter: (String) -> Unit, cache: Cache? = null, ) { private val serverUri = Uri.parse(server) private val serverUri = server.toUri() private val okHttpClient = OkHttpClient.Builder() .addInterceptor(JellyfinAuthInterceptor(tokenGetter)) Loading app/src/main/java/org/lineageos/twelve/datasources/subsonic/SubsonicClient.kt +2 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ package org.lineageos.twelve.datasources.subsonic import android.net.Uri import androidx.core.net.toUri import okhttp3.Cache import okhttp3.OkHttpClient import org.lineageos.twelve.datasources.subsonic.SubsonicClient.Companion.SUBSONIC_API_VERSION Loading Loading @@ -52,7 +52,7 @@ class SubsonicClient( .addInterceptor(interceptor) .build() private val serverUri = Uri.parse(server).buildUpon().apply { private val serverUri = server.toUri().buildUpon().apply { appendPath("rest") }.build() Loading Loading
app/src/main/java/org/lineageos/twelve/database/converters/UriConverter.kt +2 −1 Original line number Diff line number Diff line Loading @@ -6,11 +6,12 @@ package org.lineageos.twelve.database.converters import android.net.Uri import androidx.core.net.toUri import androidx.room.TypeConverter class UriConverter { @TypeConverter fun fromString(value: String?) = value?.let { Uri.parse(it) } fun fromString(value: String?) = value?.toUri() @TypeConverter fun toString(uri: Uri?) = uri?.toString() Loading
app/src/main/java/org/lineageos/twelve/datasources/JellyfinDataSource.kt +7 −6 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ package org.lineageos.twelve.datasources import android.content.Context import android.net.Uri import android.os.Bundle import androidx.core.net.toUri import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asFlow Loading Loading @@ -65,7 +66,7 @@ class JellyfinDataSource( server, username, password, deviceIdentifier, packageName, tokenGetter, tokenSetter, cache ) private val dataSourceBaseUri = Uri.parse(server) private val dataSourceBaseUri = server.toUri() private val albumsUri = dataSourceBaseUri.buildUpon() .appendPath(ALBUMS_PATH) Loading Loading @@ -364,7 +365,7 @@ class JellyfinDataSource( private fun Item.toMediaItemAlbum() = Album.Builder(getAlbumUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getAlbumThumbnail(id))) .setUri(client.getAlbumThumbnail(id).toUri()) .build() ) .setTitle(name) Loading @@ -376,14 +377,14 @@ class JellyfinDataSource( private fun Item.toMediaItemArtist() = Artist.Builder(getArtistUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getArtistThumbnail(id))) .setUri(client.getArtistThumbnail(id).toUri()) .build() ) .setName(name) .build() private fun Item.toMediaItemAudio() = Audio.Builder(getAudioUri(id.toString())) .setPlaybackUri(Uri.parse(client.getAudioPlaybackUrl(id))) .setPlaybackUri(client.getAudioPlaybackUrl(id).toUri()) .setMimeType(container ?: sourceType) .setTitle(name) .setType(Audio.Type.MUSIC) Loading @@ -403,7 +404,7 @@ class JellyfinDataSource( private fun Item.toMediaItemGenre() = Genre.Builder(getGenreUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getGenreThumbnail(id))) .setUri(client.getGenreThumbnail(id).toUri()) .build() ) .setName(name) Loading @@ -412,7 +413,7 @@ class JellyfinDataSource( private fun Item.toMediaItemPlaylist() = Playlist.Builder(getPlaylistUri(id.toString())) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(client.getPlaylistThumbnail(id))) .setUri(client.getPlaylistThumbnail(id).toUri()) .build() ) .setName(name) Loading
app/src/main/java/org/lineageos/twelve/datasources/SubsonicDataSource.kt +6 −5 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ package org.lineageos.twelve.datasources import android.net.Uri import android.os.Bundle import androidx.core.net.toUri import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asFlow Loading Loading @@ -58,7 +59,7 @@ class SubsonicDataSource( server, username, password, "Twelve", useLegacyAuthentication, cache ) private val dataSourceBaseUri = Uri.parse(server) private val dataSourceBaseUri = server.toUri() private val albumsUri = dataSourceBaseUri.buildUpon() .appendPath(ALBUMS_PATH) Loading Loading @@ -499,7 +500,7 @@ class SubsonicDataSource( private fun AlbumID3.toMediaItem() = Album.Builder(getAlbumUri(id)) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(subsonicClient.getCoverArt(id))) .setUri(subsonicClient.getCoverArt(id).toUri()) .setType(Thumbnail.Type.FRONT_COVER) .build() ) Loading @@ -512,7 +513,7 @@ class SubsonicDataSource( private fun ArtistID3.toMediaItem() = Artist.Builder(getArtistUri(id)) .setThumbnail( Thumbnail.Builder() .setUri(Uri.parse(subsonicClient.getCoverArt(id))) .setUri(subsonicClient.getCoverArt(id).toUri()) .setType(Thumbnail.Type.BAND_ARTIST_LOGO) .build() ) Loading @@ -523,12 +524,12 @@ class SubsonicDataSource( .setThumbnail( albumId?.let { Thumbnail.Builder() .setUri(Uri.parse(subsonicClient.getCoverArt(it))) .setUri(subsonicClient.getCoverArt(it).toUri()) .setType(Thumbnail.Type.FRONT_COVER) .build() } ) .setPlaybackUri(Uri.parse(subsonicClient.stream(id))) .setPlaybackUri(subsonicClient.stream(id).toUri()) .setMimeType(contentType) .setTitle(title) .setType(type.toAudioType()) Loading
app/src/main/java/org/lineageos/twelve/datasources/jellyfin/JellyfinClient.kt +2 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ package org.lineageos.twelve.datasources.jellyfin import android.net.Uri import androidx.core.net.toUri import okhttp3.Cache import okhttp3.OkHttpClient import org.lineageos.twelve.datasources.jellyfin.models.CreatePlaylist Loading Loading @@ -45,7 +45,7 @@ class JellyfinClient( tokenSetter: (String) -> Unit, cache: Cache? = null, ) { private val serverUri = Uri.parse(server) private val serverUri = server.toUri() private val okHttpClient = OkHttpClient.Builder() .addInterceptor(JellyfinAuthInterceptor(tokenGetter)) Loading
app/src/main/java/org/lineageos/twelve/datasources/subsonic/SubsonicClient.kt +2 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ package org.lineageos.twelve.datasources.subsonic import android.net.Uri import androidx.core.net.toUri import okhttp3.Cache import okhttp3.OkHttpClient import org.lineageos.twelve.datasources.subsonic.SubsonicClient.Companion.SUBSONIC_API_VERSION Loading Loading @@ -52,7 +52,7 @@ class SubsonicClient( .addInterceptor(interceptor) .build() private val serverUri = Uri.parse(server).buildUpon().apply { private val serverUri = server.toUri().buildUpon().apply { appendPath("rest") }.build() Loading