feat(stations): свайп по списку листает чипы + свечение играющей станции
1) Горизонтальный свайп по области списка переключает фильтры-чипы в их порядке ([Все]+жанры), выбранный чип автоскроллится в зону видимости. Вертикальная прокрутка грида сохраняется. 2) У играющей станции в списке — мягкое радиальное свечение позади обложки, которое «гуляет» (двигается центр) и вылезает из-под краёв, + эквалайзер- бейдж в углу. Источник активной станции — PlayerController.currentStationId. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ import com.radiola.domain.usecase.GetStationsUseCase
|
||||
import com.radiola.domain.usecase.PlayStationUseCase
|
||||
import com.radiola.domain.usecase.RefreshStationsUseCase
|
||||
import com.radiola.domain.usecase.ToggleFavoriteUseCase
|
||||
import com.radiola.service.PlayerController
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -25,9 +26,14 @@ class StationsViewModel @Inject constructor(
|
||||
private val toggleFavoriteUseCase: ToggleFavoriteUseCase,
|
||||
private val favoritesRepository: FavoritesRepository,
|
||||
private val stationRepository: StationRepository,
|
||||
private val nowPlayingRepository: NowPlayingRepository
|
||||
private val nowPlayingRepository: NowPlayingRepository,
|
||||
private val playerController: PlayerController
|
||||
) : ViewModel() {
|
||||
|
||||
// Активная (играющая) станция — для подсветки карточки в списке.
|
||||
val playingStationId: StateFlow<Int?> = playerController.currentStationId
|
||||
val isPlaying: StateFlow<Boolean> = playerController.isPlaying
|
||||
|
||||
private val _searchQuery = MutableStateFlow("")
|
||||
val searchQuery: StateFlow<String> = _searchQuery.asStateFlow()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user