feat(app): кнопка «Распознать трек» (Shazam) + история распознанных
- кнопка распознавания в плеере: видна только на музыкальных станциях без
метаданных эфира (track == null), показывает спиннер и результат через Toast
- распознанный трек отображается в плеере и пишется в ОТДЕЛЬНУЮ историю
распознанных (не дублируется в историю эфирных треков — гейт по ключу)
- экран Истории: переключатель «Треки эфира | Распознанные», два списка
- Room: таблица recognized_track (миграция 7→8), DAO/репозиторий
- ShazamRepository → POST /shazam/recognize/{stationId}, маппинг 503/400 в текст
- MusicGenres.isMusicStation — клиентский гейт (синхронизирован с бэкендом)
- bump backend submodule (модуль shazam)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ import com.radiola.data.local.MIGRATION_3_4
|
||||
import com.radiola.data.local.MIGRATION_4_5
|
||||
import com.radiola.data.local.MIGRATION_5_6
|
||||
import com.radiola.data.local.MIGRATION_6_7
|
||||
import com.radiola.data.local.MIGRATION_7_8
|
||||
import com.radiola.data.local.dao.AlarmDao
|
||||
import com.radiola.data.remote.AuthInterceptor
|
||||
import com.radiola.data.remote.LrcLibApi
|
||||
@@ -26,8 +27,12 @@ import com.radiola.data.repository.RegionRepositoryImpl
|
||||
import com.radiola.data.repository.SettingsRepositoryImpl
|
||||
import com.radiola.data.repository.StationRepositoryImpl
|
||||
import com.radiola.data.repository.SyncRepositoryImpl
|
||||
import com.radiola.data.repository.RecognizedTrackRepositoryImpl
|
||||
import com.radiola.data.repository.ShazamRepositoryImpl
|
||||
import com.radiola.data.repository.TrackHistoryRepositoryImpl
|
||||
import com.radiola.domain.repository.AuthRepository
|
||||
import com.radiola.domain.repository.RecognizedTrackRepository
|
||||
import com.radiola.domain.repository.ShazamRepository
|
||||
import com.radiola.domain.repository.ChartsRepository
|
||||
import com.radiola.domain.repository.FavoritesRepository
|
||||
import com.radiola.domain.repository.LyricsRepository
|
||||
@@ -162,7 +167,7 @@ object AppModule {
|
||||
@Singleton
|
||||
fun provideDatabase(@ApplicationContext context: Context): AppDatabase =
|
||||
Room.databaseBuilder(context, AppDatabase::class.java, "radiola.db")
|
||||
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5, MIGRATION_5_6, MIGRATION_6_7)
|
||||
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5, MIGRATION_5_6, MIGRATION_6_7, MIGRATION_7_8)
|
||||
.build()
|
||||
|
||||
@Provides
|
||||
@@ -223,4 +228,12 @@ object AppModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideLyricsRepository(impl: LyricsRepositoryImpl): LyricsRepository = impl
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideRecognizedTrackRepository(impl: RecognizedTrackRepositoryImpl): RecognizedTrackRepository = impl
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideShazamRepository(impl: ShazamRepositoryImpl): ShazamRepository = impl
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user