fix(stations): обложки Record только для Record-станций + своя плитка остальным
- сети, отличные от Radio Record (DFM, HitFM и др.), больше не получают обложки Radio Record (обогащение Record API гейтится по source=record) - станции без обложки рисуют свою фирменную плитку: цвет по названию + инициалы (вместо общего значка/чужой обложки)
This commit is contained in:
@@ -29,16 +29,19 @@ class LocalStationDataSource @Inject constructor(
|
||||
.map { dto ->
|
||||
val group = groupMap[dto.groupId]
|
||||
val prefix = generatePrefix(dto.name)
|
||||
// Определяем сеть: только станции Radio Record можно обогащать
|
||||
// обложками из Record API. Остальные сети — свой источник.
|
||||
val isRecord = dto.site?.contains("radiorecord", ignoreCase = true) == true
|
||||
Station(
|
||||
id = dto.id,
|
||||
name = dto.name,
|
||||
prefix = prefix,
|
||||
streamUrl = dto.stream!!,
|
||||
coverUrl = group?.let { generateCoverUrl(it.name, dto.name) } ?: "",
|
||||
coverUrl = "",
|
||||
genre = group?.name ?: "",
|
||||
tags = listOfNotNull(group?.name?.takeIf { it.isNotBlank() }),
|
||||
sortOrder = dto.id,
|
||||
source = "local"
|
||||
source = if (isRecord) "record" else "local"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,10 +46,14 @@ class StationRepositoryImpl @Inject constructor(
|
||||
// нет 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)
|
||||
}
|
||||
// Обложки/потоки из Record API — только для станций сети Radio Record.
|
||||
// Иначе чужим сетям (DFM, HitFM и т.д.) цеплялись бы обложки Record.
|
||||
val apiStation = if (local.source == "record") {
|
||||
apiStations.find { it.id == local.id }
|
||||
?: apiStations.find {
|
||||
it.name.trim().equals(local.name.trim(), ignoreCase = true)
|
||||
}
|
||||
} else null
|
||||
if (apiStation != null) {
|
||||
val domain = apiStation.toDomain()
|
||||
local.copy(
|
||||
|
||||
Reference in New Issue
Block a user