Skip to content

Commit c2f067f

Browse files
committed
i have no clue why radios won't work well with Android Auto
1 parent 190af42 commit c2f067f

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

app/src/main/java/com/craftworks/music/data/model/Radio.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package com.craftworks.music.data.model
22

33
import android.os.Bundle
4-
import androidx.compose.runtime.mutableStateListOf
5-
import androidx.compose.runtime.snapshots.SnapshotStateList
64
import androidx.core.net.toUri
75
import androidx.media3.common.MediaItem
86
import androidx.media3.common.MediaMetadata
7+
import androidx.media3.common.MimeTypes
98
import com.craftworks.music.R
109

1110
fun MediaData.Radio.toMediaItem(): MediaItem {
@@ -22,11 +21,15 @@ fun MediaData.Radio.toMediaItem(): MediaItem {
2221
.setExtras(Bundle().apply {
2322
putString("navidromeID", this@toMediaItem.navidromeID)
2423
putString("homepage", this@toMediaItem.homePageUrl ?: "")
25-
}).build()
24+
})
25+
.build()
26+
27+
println(".toMediaItem() : station: ${this@toMediaItem.name} mediaitem station: ${mediaMetadata.station}")
2628

2729
return MediaItem.Builder()
30+
.setMediaMetadata(mediaMetadata)
2831
.setMediaId(this@toMediaItem.media)
2932
.setUri(this@toMediaItem.media)
30-
.setMediaMetadata(mediaMetadata)
33+
.setMimeType(MimeTypes.AUDIO_MPEG)
3134
.build()
3235
}

app/src/main/java/com/craftworks/music/player/MusicService.kt

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,17 @@ class ChoraMediaLibraryService : MediaLibraryService() {
194194
Log.d("REPLAY GAIN", "Setting ReplayGain to ${player.volume}")
195195
}
196196

197+
197198
playerScrobbled = false;
198199

199200
super.onMediaItemTransition(mediaItem, reason)
201+
202+
Log.d("MediaItemTransition", "MediaItem: $mediaItem")
203+
Log.d("MediaItemTransition", "MediaType: ${mediaItem?.mediaMetadata?.mediaType}")
204+
Log.d("MediaItemTransition", "ArtworkUri: ${mediaItem?.mediaMetadata?.artworkUri}")
205+
Log.d("MediaItemTransition", "Station: ${mediaItem?.mediaMetadata?.station}")
206+
Log.d("MediaItemTransition", "SongHelper.currentTrackList station: ${SongHelper.currentTracklist[0].mediaMetadata.station}")
207+
200208
serviceIOScope.launch {
201209
songRepository.scrobbleSong(mediaItem?.mediaMetadata?.extras?.getString("navidromeID") ?: "", false)
202210
lyricsRepository.getLyrics(mediaItem?.mediaMetadata)
@@ -487,10 +495,10 @@ class ChoraMediaLibraryService : MediaLibraryService() {
487495
runBlocking {
488496
songRepository.getSongs(query).size +
489497
albumRepository.searchAlbum(query).size +
490-
radioRepository.getRadios().fastFilter {
491-
it.name.contains(
498+
radioRepository.getRadios().map { it.toMediaItem() }.fastFilter {
499+
it.mediaMetadata.station?.contains(
492500
query
493-
)
501+
) ?: false
494502
}.size +
495503
playlistRepository.getPlaylists().fastFilter {
496504
it.mediaMetadata.title?.contains(
@@ -567,11 +575,14 @@ class ChoraMediaLibraryService : MediaLibraryService() {
567575

568576
private fun getRadioItems(): MutableList<MediaItem> {
569577
runBlocking {
570-
if (aRadioScreenItems.isEmpty()) {
571-
radioRepository.getRadios().forEach { radio ->
572-
aRadioScreenItems.add(radio.toMediaItem())
578+
aRadioScreenItems.clear()
579+
aRadioScreenItems.addAll(
580+
radioRepository.getRadios().map { radio ->
581+
Log.d("MediaItemTransition", radio.toString())
582+
radio.toMediaItem()
573583
}
574-
}
584+
)
585+
Log.d("MediaItemTransition", "aRadioScreenItems: ${aRadioScreenItems.map { it.mediaMetadata }}")
575586
SongHelper.currentTracklist = aRadioScreenItems
576587
}
577588
return aRadioScreenItems

0 commit comments

Comments
 (0)