feat(stations): скрывать украинские станции (ROKS, Kiss FM) для РФ
Radio ROKS и Kiss FM (TavR Media, хосты radioroks.ua / kissfm.ua) недоступны с российских IP без VPN. Теперь для пользователей из РФ они полностью скрыты — и сами станции (везде, где используется список), и их чипы-категории. Страна определяется по IP (api.country.is → ipapi.co; при VPN вернёт страну выходного узла, тогда станции доступны и НЕ скрываются), с фолбэком на страну SIM/сети/локали устройства, если IP-сервис недоступен (в РФ часто заблокирован). Код страны кэшируется (DataStore). Фильтр в GetStationsUseCase (combine со страной) + чипы в StationsViewModel. id 741 «Радио РОКС» (stream.roks.com) — российская, под правило не попадает. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
package com.radiola.domain.repository
|
||||
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
/** Регион пользователя (по IP) — для гео-фильтрации станций. */
|
||||
interface RegionRepository {
|
||||
/** Код страны пользователя (напр. "RU"), null пока не определён. */
|
||||
fun countryCode(): Flow<String?>
|
||||
|
||||
/** Обновить код страны по IP (кэшируется). */
|
||||
suspend fun refresh()
|
||||
}
|
||||
@@ -17,4 +17,7 @@ interface SettingsRepository {
|
||||
// Предпочитаемый битрейт (kbps). 0 = авто (брать качество по умолчанию станции).
|
||||
fun getPreferredBitrate(): Flow<Int>
|
||||
suspend fun setPreferredBitrate(bitrate: Int)
|
||||
// Код страны пользователя (по IP), напр. "RU". null — не определён.
|
||||
fun getCountryCode(): Flow<String?>
|
||||
suspend fun setCountryCode(code: String)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user