- RecordingPlaybackController: ExoPlayer создаётся лениво (на первый play) и освобождается в stop() — раньше второй плеер висел в памяти всю сессию у каждого. Поллер позиции 500мс крутится только во время игры (был вечный 2 Гц main-loop). - StationRepositoryImpl.refreshStations: merge каталога O(n) через apiById/apiByName индексы вместо .find на каждую станцию (было O(n²) ~700×700 на холодном старте). Убраны verbose Log.d-трейсы (оставлен Log.e/.w на ошибки). - Track/Station/StreamQuality помечены @Immutable — read-only модели, иначе списки tags/qualities делали класс нестабильным → лишние рекомпозиции списков. - HttpLoggingInterceptor только при BuildConfig.DEBUG (включён buildConfig feature): в релизе нет оверхеда на каждый запрос и утечки URL в logcat.
12 lines
209 B
Kotlin
12 lines
209 B
Kotlin
package com.radiola.domain.model
|
|
|
|
import androidx.compose.runtime.Immutable
|
|
|
|
@Immutable
|
|
data class Track(
|
|
val artist: String,
|
|
val song: String,
|
|
val coverUrl: String?,
|
|
val stationName: String
|
|
)
|