Skip to content

Commit acb1ddb

Browse files
committed
media browser: pass media ID to parsing error exceptions
1 parent 0362606 commit acb1ddb

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

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

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -304,11 +304,11 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
304304
}
305305
}
306306
Log.w(TAG, "Unknown playlist URI: $parentId")
307-
throw parseError()
307+
throw parseError(parentId)
308308
}
309309

310310
ID_HISTORY -> return populateHistory()
311-
else -> throw parseError()
311+
else -> throw parseError(parentId)
312312
}
313313
} catch (e: ContentNotAvailableException) {
314314
return Single.error(e)
@@ -432,25 +432,27 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
432432
val path = ArrayList(mediaIdUri.pathSegments)
433433

434434
if (path.isEmpty()) {
435-
throw parseError()
435+
throw parseError(mediaId)
436436
}
437437

438438
val uriType = path[0]
439439
path.removeAt(0)
440440

441441
return when (uriType) {
442442
ID_BOOKMARKS -> extractPlayQueueFromPlaylistMediaId(
443+
mediaId,
443444
path,
444445
mediaIdUri.getQueryParameter(ID_URL)
445446
)
446447

447-
ID_HISTORY -> extractPlayQueueFromHistoryMediaId(path)
448+
ID_HISTORY -> extractPlayQueueFromHistoryMediaId(mediaId, path)
448449
ID_INFO_ITEM -> extractPlayQueueFromInfoItemMediaId(
450+
mediaId,
449451
path,
450452
mediaIdUri.getQueryParameter(ID_URL)
451453
)
452454

453-
else -> throw parseError()
455+
else -> throw parseError(mediaId)
454456
}
455457
} catch (error: ContentNotAvailableException) {
456458
return Single.error(error)
@@ -459,11 +461,12 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
459461

460462
@Throws(ContentNotAvailableException::class)
461463
private fun extractPlayQueueFromPlaylistMediaId(
464+
mediaId: String,
462465
mediaIdSegments: ArrayList<String>,
463466
url: String?,
464467
): Single<PlayQueue> {
465468
if (mediaIdSegments.isEmpty()) {
466-
throw parseError()
469+
throw parseError(mediaId)
467470
}
468471

469472
val playlistType = mediaIdSegments.first()
@@ -472,7 +475,7 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
472475
when (playlistType) {
473476
ID_LOCAL, ID_REMOTE -> {
474477
if (mediaIdSegments.size != 2) {
475-
throw parseError()
478+
throw parseError(mediaId)
476479
}
477480
val playlistId = mediaIdSegments[0].toLong()
478481
val index = mediaIdSegments[1].toInt()
@@ -485,7 +488,7 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
485488

486489
ID_URL -> {
487490
if (mediaIdSegments.size != 1) {
488-
throw parseError()
491+
throw parseError(mediaId)
489492
}
490493

491494
val serviceId = mediaIdSegments[0].toInt()
@@ -494,16 +497,17 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
494497
.map(::PlaylistPlayQueue)
495498
}
496499

497-
else -> throw parseError()
500+
else -> throw parseError(mediaId)
498501
}
499502
}
500503

501504
@Throws(ContentNotAvailableException::class)
502505
private fun extractPlayQueueFromHistoryMediaId(
506+
mediaId: String,
503507
path: List<String>
504508
): Single<PlayQueue> {
505509
if (path.size != 1) {
506-
throw parseError()
510+
throw parseError(mediaId)
507511
}
508512

509513
val streamId = path[0].toLong()
@@ -692,17 +696,18 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
692696
}
693697
}
694698

695-
private fun parseError(): ContentNotAvailableException {
696-
return ContentNotAvailableException("Failed to parse media ID")
699+
private fun parseError(mediaId: String): ContentNotAvailableException {
700+
return ContentNotAvailableException("Failed to parse media ID $mediaId")
697701
}
698702

699703
@Throws(ContentNotAvailableException::class)
700704
private fun extractPlayQueueFromInfoItemMediaId(
705+
mediaId: String,
701706
path: List<String>,
702707
url: String?
703708
): Single<PlayQueue> {
704709
if (path.size != 2) {
705-
throw parseError()
710+
throw parseError(mediaId)
706711
}
707712
val infoItemType = infoItemTypeFromString(path[0])
708713
val serviceId = path[1].toInt()
@@ -729,7 +734,7 @@ class MediaBrowserConnector(private val playerService: PlayerService) : Playback
729734
}
730735
}
731736

732-
else -> throw parseError()
737+
else -> throw parseError(mediaId)
733738
}
734739
}
735740
}

0 commit comments

Comments
 (0)