From aad1361043331cbc1274a690f9266056cf4836cc Mon Sep 17 00:00:00 2001 From: nk Date: Mon, 1 Jun 2026 12:07:29 +0300 Subject: [PATCH] feat(domain): add repository interfaces --- .../domain/repository/FavoritesRepository.kt | 12 ++++++++++++ .../domain/repository/NowPlayingRepository.kt | 10 ++++++++++ .../domain/repository/SettingsRepository.kt | 17 +++++++++++++++++ .../domain/repository/StationRepository.kt | 10 ++++++++++ .../domain/repository/TrackHistoryRepository.kt | 11 +++++++++++ 5 files changed, 60 insertions(+) create mode 100644 app/src/main/java/com/radiola/domain/repository/FavoritesRepository.kt create mode 100644 app/src/main/java/com/radiola/domain/repository/NowPlayingRepository.kt create mode 100644 app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt create mode 100644 app/src/main/java/com/radiola/domain/repository/StationRepository.kt create mode 100644 app/src/main/java/com/radiola/domain/repository/TrackHistoryRepository.kt diff --git a/app/src/main/java/com/radiola/domain/repository/FavoritesRepository.kt b/app/src/main/java/com/radiola/domain/repository/FavoritesRepository.kt new file mode 100644 index 0000000..02c5d39 --- /dev/null +++ b/app/src/main/java/com/radiola/domain/repository/FavoritesRepository.kt @@ -0,0 +1,12 @@ +package com.radiola.domain.repository + +import com.radiola.domain.model.Station +import kotlinx.coroutines.flow.Flow + +interface FavoritesRepository { + fun getFavorites(): Flow> + suspend fun addFavorite(station: Station) + suspend fun removeFavorite(stationId: Int) + fun isFavorite(stationId: Int): Flow + suspend fun reorderFavorites(orderedIds: List) +} diff --git a/app/src/main/java/com/radiola/domain/repository/NowPlayingRepository.kt b/app/src/main/java/com/radiola/domain/repository/NowPlayingRepository.kt new file mode 100644 index 0000000..f63ddda --- /dev/null +++ b/app/src/main/java/com/radiola/domain/repository/NowPlayingRepository.kt @@ -0,0 +1,10 @@ +package com.radiola.domain.repository + +import com.radiola.domain.model.Track +import kotlinx.coroutines.flow.Flow + +interface NowPlayingRepository { + fun getNowPlaying(stationPrefix: String): Flow + fun getAllNowPlaying(): Flow> + suspend fun refreshNowPlaying(): Result +} diff --git a/app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt b/app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt new file mode 100644 index 0000000..29bd7ae --- /dev/null +++ b/app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt @@ -0,0 +1,17 @@ +package com.radiola.domain.repository + +import com.radiola.domain.model.DeeplinkService +import kotlinx.coroutines.flow.Flow + +interface SettingsRepository { + fun getLastStationId(): Flow + suspend fun setLastStationId(id: Int) + fun getSleepTimerMinutes(): Flow + suspend fun setSleepTimerMinutes(minutes: Int) + fun getEnabledDeeplinkServices(): Flow> + suspend fun setEnabledDeeplinkServices(serviceIds: Set) + fun getEqualizerPreset(): Flow + suspend fun setEqualizerPreset(preset: String) + fun isRecordingEnabled(): Flow + suspend fun setRecordingEnabled(enabled: Boolean) +} diff --git a/app/src/main/java/com/radiola/domain/repository/StationRepository.kt b/app/src/main/java/com/radiola/domain/repository/StationRepository.kt new file mode 100644 index 0000000..97234e1 --- /dev/null +++ b/app/src/main/java/com/radiola/domain/repository/StationRepository.kt @@ -0,0 +1,10 @@ +package com.radiola.domain.repository + +import com.radiola.domain.model.Station +import kotlinx.coroutines.flow.Flow + +interface StationRepository { + fun getStations(): Flow> + suspend fun refreshStations(): Result + fun getStationById(id: Int): Flow +} diff --git a/app/src/main/java/com/radiola/domain/repository/TrackHistoryRepository.kt b/app/src/main/java/com/radiola/domain/repository/TrackHistoryRepository.kt new file mode 100644 index 0000000..b15e9c2 --- /dev/null +++ b/app/src/main/java/com/radiola/domain/repository/TrackHistoryRepository.kt @@ -0,0 +1,11 @@ +package com.radiola.domain.repository + +import com.radiola.domain.model.Track +import kotlinx.coroutines.flow.Flow + +interface TrackHistoryRepository { + fun getHistory(): Flow> + suspend fun addTrack(track: Track) + suspend fun removeTrack(track: Track) + suspend fun searchHistory(query: String): List +}