Merged
Conversation
- Color.White.copy(alpha = ZenAlpha.DISABLED) → MaterialTheme.colorScheme.outlineVariant - 하드코딩된 색상 대신 테마 시스템 토큰을 사용해 다크/라이트 모드 대응 개선
- Scaffold topBar에 TopAppBar + 뒤로가기 버튼 추가 (ZenMusicSelectScreen과 일관성 맞춤) - PlaylistHeader에서 embedded 뒤로가기 버튼 제거 - 하드코딩된 영어 문자열 "$trackCount tracks • $totalMinutes minutes" → strings.xml 리소스로 교체
- Scaffold floatingActionButton 제거, Box 내 Column으로 FAB과 MiniPlayerBar를 수직으로 적층 - FAB → MiniPlayerBar 순으로 배치하여 겹침 해소 - LazyColumn 하단 패딩에 ZenDimension.Fab.BottomPadding 추가 (스크롤 최하단 아이템 가림 방지) - ZenDimension에 Fab.ExtendedHeight, Fab.BottomPadding 토큰 추가
- durationMs = 0L 하드코딩 → openRawResourceFd + MediaMetadataRetriever로 실제 duration 읽기 - Uri.parse() 방식은 에뮬레이터에서 setDataSource 실패 가능 → FileDescriptor 방식으로 교체 - SampleMusicRepository.getAllTracks/getTrackById에 withContext(Dispatchers.IO) 추가
- containerColor = primary, contentColor = Color.White 적용
- core/ui/component/TrackThumbnail.kt 생성 (size, modifier 파라미터 지원) - AlbumArtThumbnail.kt 삭제 - MiniPlayerBar, PlaylistDetailScreen, ZenPlayerBar, ZenAllTracksTabContent 모두 TrackThumbnail로 교체
- 하드코딩된 트랙 목록을 제거하고 R.raw 리플렉션으로 자동 탐지 - MediaMetadataRetriever로 title/artist/album/앨범아트를 파일에서 직접 추출 - 새 샘플 MP3 파일 7개 추가, 기존 sample_track_1~5.mp3 제거 - QueuePersistenceManager: currentIndex를 coerceIn으로 범위 제한하여 인덱스 초과 버그 수정 - build.gradle.kts: lint.xml 설정 파일 적용
- PlaylistTrackEntity에 (playlistId, trackId) unique index 추가 - PlaylistDao insertTrack의 OnConflictStrategy를 IGNORE로 변경 - DB 버전 1→2 마이그레이션 추가 (기존 중복 행 정리 + unique index 생성) - PlaylistModule에 MIGRATION_1_2 등록
Coverage Report
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
AlbumArtThumbnail을TrackThumbnail공용 컴포넌트로 대체하고, 전체재생 FAB 위치·색상 개선Key Changes
PlaylistTrackEntity에(playlistId, trackId)unique index 추가PlaylistDao.insertTrack충돌 전략을REPLACE→IGNORE로 변경AlbumArtThumbnail컴포넌트 삭제,TrackThumbnail공용 컴포넌트로 통합PlaylistDetailScreen에서 전체재생 FAB을MiniPlayerBar위에 배치하고 primary 색상 적용SampleMusicProviderraw 리소스 자동 탐지 방식으로 개선 (하드코딩 제거)Technical Details
OnConflictStrategy.IGNORE로 중복 삽입 시 조용히 무시하여 데이터 무결성 보장exportSchema = false유지,MIGRATION_1_2객체를companion object에 정의TrackThumbnail은cornerRadius파라미터를 받아 재사용성 확보Column으로 수직 배치하여 겹침 해결Rationale
REPLACE전략은 기존 행을 삭제 후 재삽입하여id가 바뀌는 부작용이 있었음 →IGNORE가 적합TrackThumbnail컴포넌트로 통일해 일관된 앨범아트 표시 및 코드 중복 제거