Skip to content

Commit 3dcbd39

Browse files
mahibibackportbot[bot]
authored andcommitted
fix(chat): react to MediaController disconnection in ChatActivity
Add a MediaController.Listener to detect onDisconnected, e.g. when the VoiceMessageMediaService/MediaSession dies unexpectedly while the chat is still visible. Without this, mediaController would be left as a stale reference and the UI (play button, seekbar polling) could get stuck instead of resetting. Assisted-by: Claude Code:claude-sonnet-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
1 parent 01ce277 commit 3dcbd39

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1400,7 +1400,15 @@ class ChatActivity :
14001400
this.lifecycle.addObserver(chatViewModel)
14011401

14021402
val sessionToken = SessionToken(this, ComponentName(this, VoiceMessageMediaService::class.java))
1403-
val future = MediaController.Builder(this, sessionToken).buildAsync()
1403+
val future = MediaController.Builder(this, sessionToken)
1404+
.setListener(object : MediaController.Listener {
1405+
override fun onDisconnected(controller: MediaController) {
1406+
mediaController?.removeListener(playerListener)
1407+
stopProgressPolling()
1408+
mediaController = null
1409+
}
1410+
})
1411+
.buildAsync()
14041412
mediaControllerFuture = future
14051413

14061414
future.addListener({

0 commit comments

Comments
 (0)