Skip to content

Commit f3c20d4

Browse files
authored
Merge pull request #12410 from Stypox/fix-android-auto-thumbnails
2 parents c9559fa + a4d457b commit f3c20d4

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.support.v4.media.MediaBrowserCompat
88
import android.support.v4.media.MediaDescriptionCompat
99
import android.util.Log
1010
import androidx.annotation.DrawableRes
11+
import androidx.core.net.toUri
1112
import androidx.media.MediaBrowserServiceCompat
1213
import androidx.media.MediaBrowserServiceCompat.Result
1314
import androidx.media.utils.MediaConstants
@@ -103,7 +104,7 @@ class MediaBrowserImpl(
103104

104105
private fun onLoadChildren(parentId: String): Single<List<MediaBrowserCompat.MediaItem>> {
105106
try {
106-
val parentIdUri = Uri.parse(parentId)
107+
val parentIdUri = parentId.toUri()
107108
val path = ArrayList(parentIdUri.pathSegments)
108109

109110
if (path.isEmpty()) {
@@ -185,7 +186,7 @@ class MediaBrowserImpl(
185186
builder
186187
.setMediaId(createMediaIdForInfoItem(playlist is PlaylistRemoteEntity, playlist.uid))
187188
.setTitle(playlist.orderingName)
188-
.setIconUri(playlist.thumbnailUrl?.let { Uri.parse(it) })
189+
.setIconUri(imageUriOrNullIfDisabled(playlist.thumbnailUrl))
189190

190191
val extras = Bundle()
191192
extras.putString(
@@ -212,7 +213,7 @@ class MediaBrowserImpl(
212213
}
213214

214215
ImageStrategy.choosePreferredImage(item.thumbnails)?.let {
215-
builder.setIconUri(Uri.parse(it))
216+
builder.setIconUri(imageUriOrNullIfDisabled(it))
216217
}
217218

218219
return MediaBrowserCompat.MediaItem(
@@ -258,7 +259,7 @@ class MediaBrowserImpl(
258259
builder.setMediaId(createMediaIdForPlaylistIndex(false, playlistId, index))
259260
.setTitle(item.streamEntity.title)
260261
.setSubtitle(item.streamEntity.uploader)
261-
.setIconUri(Uri.parse(item.streamEntity.thumbnailUrl))
262+
.setIconUri(imageUriOrNullIfDisabled(item.streamEntity.thumbnailUrl))
262263

263264
return MediaBrowserCompat.MediaItem(
264265
builder.build(),
@@ -277,7 +278,7 @@ class MediaBrowserImpl(
277278
.setSubtitle(item.uploaderName)
278279

279280
ImageStrategy.choosePreferredImage(item.thumbnails)?.let {
280-
builder.setIconUri(Uri.parse(it))
281+
builder.setIconUri(imageUriOrNullIfDisabled(it))
281282
}
282283

283284
return MediaBrowserCompat.MediaItem(
@@ -316,7 +317,7 @@ class MediaBrowserImpl(
316317
builder.setMediaId(mediaId)
317318
.setTitle(streamHistoryEntry.streamEntity.title)
318319
.setSubtitle(streamHistoryEntry.streamEntity.uploader)
319-
.setIconUri(Uri.parse(streamHistoryEntry.streamEntity.thumbnailUrl))
320+
.setIconUri(imageUriOrNullIfDisabled(streamHistoryEntry.streamEntity.thumbnailUrl))
320321

321322
return MediaBrowserCompat.MediaItem(
322323
builder.build(),
@@ -395,5 +396,13 @@ class MediaBrowserImpl(
395396

396397
companion object {
397398
private val TAG: String = MediaBrowserImpl::class.java.getSimpleName()
399+
400+
fun imageUriOrNullIfDisabled(url: String?): Uri? {
401+
return if (ImageStrategy.shouldLoadImages()) {
402+
url?.toUri()
403+
} else {
404+
null
405+
}
406+
}
398407
}
399408
}

app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.os.Bundle
66
import android.os.ResultReceiver
77
import android.support.v4.media.session.PlaybackStateCompat
88
import android.util.Log
9+
import androidx.core.net.toUri
910
import com.google.android.exoplayer2.Player
1011
import com.google.android.exoplayer2.ext.mediasession.MediaSessionConnector.PlaybackPreparer
1112
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
@@ -137,7 +138,7 @@ class MediaBrowserPlaybackPreparer(
137138

138139
private fun extractPlayQueueFromMediaId(mediaId: String): Single<PlayQueue> {
139140
try {
140-
val mediaIdUri = Uri.parse(mediaId)
141+
val mediaIdUri = mediaId.toUri()
141142
val path = ArrayList(mediaIdUri.pathSegments)
142143
if (path.isEmpty()) {
143144
throw parseError(mediaId)

0 commit comments

Comments
 (0)