From 9a7cfac7f8765db6e6fda6d1b956438afe0dac0f Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 3 Jun 2026 07:40:33 -0400 Subject: [PATCH] =?UTF-8?q?fix(android):=20LikeMediaCallback=20ReturnCount?= =?UTF-8?q?=20=E2=80=94=20extract=20toggle=20helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit detekt: onCustomCommand had 3 returns (unsupported / no-mediaItem / success), ReturnCount cap is 2. Pull the toggle path into a private launchToggleForCurrent helper so onCustomCommand is a single return (if/else picks the result code, one Future wrap) and the helper has at most 2 returns. --- .../minstrel/player/LikeMediaCallback.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/player/LikeMediaCallback.kt b/android/app/src/main/java/com/fabledsword/minstrel/player/LikeMediaCallback.kt index 1b8cf73f..9af56f44 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/player/LikeMediaCallback.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/player/LikeMediaCallback.kt @@ -52,16 +52,22 @@ class LikeMediaCallback( customCommand: SessionCommand, args: Bundle, ): ListenableFuture { - if (customCommand.customAction != CMD_TOGGLE_LIKE) { - return Futures.immediateFuture(SessionResult(SessionResult.RESULT_ERROR_NOT_SUPPORTED)) + val code = if (customCommand.customAction == CMD_TOGGLE_LIKE) { + launchToggleForCurrent(session) + } else { + SessionResult.RESULT_ERROR_NOT_SUPPORTED } + return Futures.immediateFuture(SessionResult(code)) + } + + private fun launchToggleForCurrent(session: MediaSession): Int { val mediaId = session.player.currentMediaItem?.mediaId - ?: return Futures.immediateFuture(SessionResult(SessionResult.RESULT_INFO_SKIPPED)) + ?: return SessionResult.RESULT_INFO_SKIPPED scope.launch { val current = likes.observeIsLiked(ENTITY_TRACK, mediaId).first() likes.toggleLike(ENTITY_TRACK, mediaId, !current) } - return Futures.immediateFuture(SessionResult(SessionResult.RESULT_SUCCESS)) + return SessionResult.RESULT_SUCCESS } companion object {