feat: M3 weighted shuffle v1 — real /api/radio with scoring #21

Merged
bvandeusen merged 262 commits from dev into main 2026-04-27 11:00:29 -04:00
4 changed files with 42 additions and 14 deletions
Showing only changes of commit 25ae70c5bd - Show all commits
@@ -32,17 +32,42 @@ private val InterFont = GoogleFont("Inter")
private val JetBrainsMonoFont = GoogleFont("JetBrains Mono")
private val Fraunces = FontFamily(
Font(googleFont = FrauncesFont, fontProvider = GoogleFontProvider, weight = FontWeight.W400, style = FontStyle.Normal),
Font(googleFont = FrauncesFont, fontProvider = GoogleFontProvider, weight = FontWeight.W500, style = FontStyle.Normal),
Font(
googleFont = FrauncesFont,
fontProvider = GoogleFontProvider,
weight = FontWeight.W400,
style = FontStyle.Normal,
),
Font(
googleFont = FrauncesFont,
fontProvider = GoogleFontProvider,
weight = FontWeight.W500,
style = FontStyle.Normal,
),
)
private val Inter = FontFamily(
Font(googleFont = InterFont, fontProvider = GoogleFontProvider, weight = FontWeight.W400, style = FontStyle.Normal),
Font(googleFont = InterFont, fontProvider = GoogleFontProvider, weight = FontWeight.W500, style = FontStyle.Normal),
Font(
googleFont = InterFont,
fontProvider = GoogleFontProvider,
weight = FontWeight.W400,
style = FontStyle.Normal,
),
Font(
googleFont = InterFont,
fontProvider = GoogleFontProvider,
weight = FontWeight.W500,
style = FontStyle.Normal,
),
)
private val JetBrainsMono = FontFamily(
Font(googleFont = JetBrainsMonoFont, fontProvider = GoogleFontProvider, weight = FontWeight.W400, style = FontStyle.Normal),
Font(
googleFont = JetBrainsMonoFont,
fontProvider = GoogleFontProvider,
weight = FontWeight.W400,
style = FontStyle.Normal,
),
)
/**
+12 -9
View File
@@ -1,10 +1,13 @@
# Empty detekt config — relies on defaults via `buildUponDefaultConfig = true`
# in the :app detekt {} block. Per-rule overrides go here as needed:
# Per-rule overrides layered on top of detekt's defaults
# (`buildUponDefaultConfig = true` in the :app `detekt {}` block).
#
# style:
# MagicNumber:
# active: false
#
# The pre-2.0 `build: maxIssues: 0` top-level was removed; failure
# threshold is configured via the Gradle DSL's `failOnSeverity` option
# instead (defaults to Error).
# The pre-2.0 `build:` top-level was removed; failure-on-finding is
# controlled by the Gradle DSL's `failOnSeverity` option instead.
naming:
# Composables conventionally use PascalCase function names. Allow it
# by ignoring functions annotated @Composable for the FunctionNaming
# rule. Matches every mainstream Compose codebase.
FunctionNaming:
ignoreAnnotated:
- "Composable"