From d451d005c0640a8d290f9f6f044e46c839677e1f Mon Sep 17 00:00:00 2001 From: cottongin Date: Wed, 18 Mar 2026 06:58:55 -0400 Subject: [PATCH] fix: register session with addSession() to activate Media3 notifications MediaSessionService only sets up its internal MediaNotificationManager when addSession() is called. This normally happens when a MediaController binds, but since we use custom intents, no controller ever connected. Calling addSession() after session creation activates the notification pipeline. Also removed debug logging. Made-with: Cursor --- .../cottongin/radio247/service/RadioPlaybackService.kt | 10 +++++++--- .../cottongin/radio247/service/RadioPlayerAdapter.kt | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/xyz/cottongin/radio247/service/RadioPlaybackService.kt b/app/src/main/java/xyz/cottongin/radio247/service/RadioPlaybackService.kt index 9c52051..402c97e 100644 --- a/app/src/main/java/xyz/cottongin/radio247/service/RadioPlaybackService.kt +++ b/app/src/main/java/xyz/cottongin/radio247/service/RadioPlaybackService.kt @@ -59,8 +59,8 @@ class ConnectionFailedException(cause: Throwable) : Exception("Connection failed class RadioPlaybackService : MediaLibraryService() { companion object { private const val TAG = "RadioPlayback" - private const val FOREGROUND_CHANNEL_ID = "radio_playback" - private const val FOREGROUND_NOTIFICATION_ID = 1 + private const val FOREGROUND_CHANNEL_ID = "default_channel_id" + private const val FOREGROUND_NOTIFICATION_ID = 1001 const val ACTION_PLAY = "xyz.cottongin.radio247.PLAY" const val ACTION_STOP = "xyz.cottongin.radio247.STOP" const val ACTION_PAUSE = "xyz.cottongin.radio247.PAUSE" @@ -122,6 +122,8 @@ class RadioPlaybackService : MediaLibraryService() { return mediaSession } + + override fun onCreate() { super.onCreate() ensureForegroundChannel() @@ -130,7 +132,7 @@ class RadioPlaybackService : MediaLibraryService() { private fun ensureForegroundChannel() { val channel = NotificationChannel( - FOREGROUND_CHANNEL_ID, "Radio Playback", NotificationManager.IMPORTANCE_LOW + FOREGROUND_CHANNEL_ID, "Now playing", NotificationManager.IMPORTANCE_LOW ) getSystemService(NotificationManager::class.java).createNotificationChannel(channel) } @@ -333,6 +335,8 @@ class RadioPlaybackService : MediaLibraryService() { } .setCustomLayout(listOf(seekToLiveButton)) .build() + + addSession(mediaSession!!) } private inner class LibrarySessionCallback : MediaLibraryService.MediaLibrarySession.Callback { diff --git a/app/src/main/java/xyz/cottongin/radio247/service/RadioPlayerAdapter.kt b/app/src/main/java/xyz/cottongin/radio247/service/RadioPlayerAdapter.kt index 7c71ec8..269b2b2 100644 --- a/app/src/main/java/xyz/cottongin/radio247/service/RadioPlayerAdapter.kt +++ b/app/src/main/java/xyz/cottongin/radio247/service/RadioPlayerAdapter.kt @@ -41,7 +41,6 @@ class RadioPlayerAdapter( } else { emptyList() } - return SimpleBasePlayer.State.Builder() .setAvailableCommands(commands) .setPlaybackState(_playbackState)