From 32e5108d981e536e14b1f56347ef14e9ede41a87 Mon Sep 17 00:00:00 2001 From: nk Date: Wed, 3 Jun 2026 11:22:57 +0300 Subject: [PATCH] =?UTF-8?q?fix(stations):=20=D0=BF=D0=BE=D0=B4=D1=82=D1=8F?= =?UTF-8?q?=D0=B3=D0=B8=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BE=D0=B1=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=BA=D0=B8/=D0=BF=D0=BE=D1=82=D0=BE=D0=BA=D0=B8=20Recor?= =?UTF-8?q?d=20=D0=BF=D0=BE=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8E=20=D1=81=D1=82=D0=B0=D0=BD=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Локальные станции (assets/stations.json, id 1,2,3...) обогащались данными Record только по id, но id Record-каталога другие (15016...) и prefix в ассетах нет — поэтому совпадений почти не было и обложки не грузились. Добавлен фолбэк-матч по названию станции (стабильный общий ключ). --- .../com/radiola/data/repository/StationRepositoryImpl.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/radiola/data/repository/StationRepositoryImpl.kt b/app/src/main/java/com/radiola/data/repository/StationRepositoryImpl.kt index 6f4d678..0bf042c 100644 --- a/app/src/main/java/com/radiola/data/repository/StationRepositoryImpl.kt +++ b/app/src/main/java/com/radiola/data/repository/StationRepositoryImpl.kt @@ -41,9 +41,15 @@ class StationRepositoryImpl @Inject constructor( val apiStations = apiResponse?.result?.stations ?: emptyList() val apiTags = apiResponse?.result?.tags?.map { it.name } ?: emptyList() - // 3. Merge: local stations enriched with API data where IDs match + // 3. Merge: local stations enriched with API data. + // Локальные id (1,2,3…) не совпадают с id Record-каталога, и в ассетах + // нет prefix — поэтому сопоставляем сначала по id, затем по названию + // (стабильный общий ключ), иначе обложки/потоки не подтягиваются. val merged = localStations.map { local -> val apiStation = apiStations.find { it.id == local.id } + ?: apiStations.find { + it.name.trim().equals(local.name.trim(), ignoreCase = true) + } if (apiStation != null) { val domain = apiStation.toDomain() local.copy(