v2026.06.03 — Media3 like button + Bluetooth/UPnP picker + system playlist daily rotation #77

Merged
bvandeusen merged 29 commits from dev into main 2026-06-03 14:09:23 -04:00
Showing only changes of commit 9a7cfac7f8 - Show all commits
@@ -52,16 +52,22 @@ class LikeMediaCallback(
customCommand: SessionCommand,
args: Bundle,
): ListenableFuture<SessionResult> {
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 {