fix(now-playing): матч текущего трека по id станции, а не по имени
Станции с одинаковым именем в разных сетях (напр. «Deep» у Record и DFM) показывали один и тот же трек — матч был по lowercase-имени. Каталожный id (== station.id) уникален и совпадает со stationId в /now-playing, поэтому матчим по id. Убран весь by-name путь (репозиторий, плеер, карточки). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -4,9 +4,7 @@ import com.radiola.domain.model.Track
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface NowPlayingRepository {
|
||||
fun getNowPlaying(stationId: Int, stationName: String): Flow<Track?>
|
||||
fun getNowPlaying(stationId: Int): Flow<Track?>
|
||||
fun getAllNowPlaying(): Flow<Map<Int, Track>>
|
||||
// Карта по lowercase-имени станции — для матчинга с карточками (id может не совпадать).
|
||||
fun getAllNowPlayingByName(): Flow<Map<String, Track>>
|
||||
suspend fun refreshNowPlaying(): Result<Unit>
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import javax.inject.Inject
|
||||
class GetNowPlayingUseCase @Inject constructor(
|
||||
private val nowPlayingRepository: NowPlayingRepository
|
||||
) {
|
||||
operator fun invoke(stationId: Int, stationName: String): Flow<Track?> {
|
||||
return nowPlayingRepository.getNowPlaying(stationId, stationName)
|
||||
operator fun invoke(stationId: Int): Flow<Track?> {
|
||||
return nowPlayingRepository.getNowPlaying(stationId)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user