From 92c3f9bdb8ccb766c3d0d61b326031bb3399efc5 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Tue, 6 Oct 2026 19:18:15 -0400 Subject: [PATCH] fix(android): look gains up by key, not value (M464 #5000) `id in map` on a ConcurrentHashMap resolves to its legacy contains(), which tests values (KT-18053); the compiler refuses it. Co-Authored-By: Claude Opus 5.5 --- .../com/fabledsword/minstrel/player/gain/ReplayGainStore.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/player/gain/ReplayGainStore.kt b/android/app/src/main/java/com/fabledsword/minstrel/player/gain/ReplayGainStore.kt index 3c2042a4..7d6400f3 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/player/gain/ReplayGainStore.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/player/gain/ReplayGainStore.kt @@ -64,7 +64,7 @@ class ReplayGainStore internal constructor( fun request(trackIds: Collection) { val now = clock() val wanted = trackIds.filter { id -> - id !in gains && + !gains.containsKey(id) && (missedAt[id]?.let { now - it > MISS_RETRY_MS } ?: true) && inflight.add(id) } @@ -80,7 +80,7 @@ class ReplayGainStore internal constructor( internal suspend fun load(ids: List) { fromCache(ids) - val rest = ids.filter { it !in gains } + val rest = ids.filter { !gains.containsKey(it) } val health = serverHealth() if (rest.isEmpty() || health == ServerHealth.Offline || health == ServerHealth.ServerDown) return for (batch in rest.chunked(MAX_IDS_PER_REQUEST)) {