diff --git a/Molio/Source/Domain/Entity/MusicDeck/RandomMusicDeck.swift b/Molio/Source/Domain/Entity/MusicDeck/RandomMusicDeck.swift index 79317be..f5e241c 100644 --- a/Molio/Source/Domain/Entity/MusicDeck/RandomMusicDeck.swift +++ b/Molio/Source/Domain/Entity/MusicDeck/RandomMusicDeck.swift @@ -3,17 +3,12 @@ import Combine // MARK: 프로토콜 요구사항 extension RandomMusicDeck: MusicDeck { + var currentMusicTrackModelPublisher: AnyPublisher { + return musicPublisher(at: 0) + } - func musicPublisher(at index: Int) -> AnyPublisher { - randomMusics - .compactMap { randomMusics in - // 인덱스 범위를 벗어나지 않는지 체크하는 로직이다. - guard randomMusics.count > index else { return nil } - - return randomMusics[index] - } - .removeDuplicates { $0?.isrc == $1?.isrc } - .eraseToAnyPublisher() + var nextMusicTrackModelPublisher: AnyPublisher { + return musicPublisher(at: 1) } func likeCurrentMusic() { @@ -97,7 +92,6 @@ final class RandomMusicDeck { } } - private func loadRandomMusic() { let genres = self.musicFilter.value?.genres ?? [] @@ -110,11 +104,23 @@ final class RandomMusicDeck { } } - private func removeCurrentMusic() { guard !randomMusics.value.isEmpty else { return } randomMusics.value.remove(at: 0) } + + + private func musicPublisher(at index: Int) -> AnyPublisher { + randomMusics + .compactMap { randomMusics in + // 인덱스 범위를 벗어나지 않는지 체크하는 로직이다. + guard randomMusics.count > index else { return nil } + + return randomMusics[index] + } + .removeDuplicates { $0?.isrc == $1?.isrc } + .eraseToAnyPublisher() + } }