diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt index 3108da80f..f15d7ab08 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt @@ -8,6 +8,7 @@ import android.support.v4.media.MediaBrowserCompat import android.support.v4.media.MediaDescriptionCompat import android.util.Log import androidx.annotation.DrawableRes +import androidx.core.net.toUri import androidx.media.MediaBrowserServiceCompat import androidx.media.MediaBrowserServiceCompat.Result import androidx.media.utils.MediaConstants @@ -103,7 +104,7 @@ class MediaBrowserImpl( private fun onLoadChildren(parentId: String): Single> { try { - val parentIdUri = Uri.parse(parentId) + val parentIdUri = parentId.toUri() val path = ArrayList(parentIdUri.pathSegments) if (path.isEmpty()) { @@ -185,7 +186,7 @@ class MediaBrowserImpl( builder .setMediaId(createMediaIdForInfoItem(playlist is PlaylistRemoteEntity, playlist.uid)) .setTitle(playlist.orderingName) - .setIconUri(playlist.thumbnailUrl?.let { Uri.parse(it) }) + .setIconUri(imageUriOrNullIfDisabled(playlist.thumbnailUrl)) val extras = Bundle() extras.putString( @@ -212,7 +213,7 @@ class MediaBrowserImpl( } ImageStrategy.choosePreferredImage(item.thumbnails)?.let { - builder.setIconUri(Uri.parse(it)) + builder.setIconUri(imageUriOrNullIfDisabled(it)) } return MediaBrowserCompat.MediaItem( @@ -258,7 +259,7 @@ class MediaBrowserImpl( builder.setMediaId(createMediaIdForPlaylistIndex(false, playlistId, index)) .setTitle(item.streamEntity.title) .setSubtitle(item.streamEntity.uploader) - .setIconUri(Uri.parse(item.streamEntity.thumbnailUrl)) + .setIconUri(imageUriOrNullIfDisabled(item.streamEntity.thumbnailUrl)) return MediaBrowserCompat.MediaItem( builder.build(), @@ -277,7 +278,7 @@ class MediaBrowserImpl( .setSubtitle(item.uploaderName) ImageStrategy.choosePreferredImage(item.thumbnails)?.let { - builder.setIconUri(Uri.parse(it)) + builder.setIconUri(imageUriOrNullIfDisabled(it)) } return MediaBrowserCompat.MediaItem( @@ -316,7 +317,7 @@ class MediaBrowserImpl( builder.setMediaId(mediaId) .setTitle(streamHistoryEntry.streamEntity.title) .setSubtitle(streamHistoryEntry.streamEntity.uploader) - .setIconUri(Uri.parse(streamHistoryEntry.streamEntity.thumbnailUrl)) + .setIconUri(imageUriOrNullIfDisabled(streamHistoryEntry.streamEntity.thumbnailUrl)) return MediaBrowserCompat.MediaItem( builder.build(), @@ -395,5 +396,13 @@ class MediaBrowserImpl( companion object { private val TAG: String = MediaBrowserImpl::class.java.getSimpleName() + + fun imageUriOrNullIfDisabled(url: String?): Uri? { + return if (ImageStrategy.shouldLoadImages()) { + url?.toUri() + } else { + null + } + } } } diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt index f34677a29..a3791e2e7 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt @@ -6,6 +6,7 @@ import android.os.Bundle import android.os.ResultReceiver import android.support.v4.media.session.PlaybackStateCompat import android.util.Log +import androidx.core.net.toUri import com.google.android.exoplayer2.Player import com.google.android.exoplayer2.ext.mediasession.MediaSessionConnector.PlaybackPreparer import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -137,7 +138,7 @@ class MediaBrowserPlaybackPreparer( private fun extractPlayQueueFromMediaId(mediaId: String): Single { try { - val mediaIdUri = Uri.parse(mediaId) + val mediaIdUri = mediaId.toUri() val path = ArrayList(mediaIdUri.pathSegments) if (path.isEmpty()) { throw parseError(mediaId)