플레이어, 재생목록 콘텐츠 추가/제거

- 만료된 콘텐츠는 재생되지 않고 다음 콘텐츠로 이동하도록 수정
- 아이템 터치 영역을 아이템 전체로 수정
This commit is contained in:
Yu Sung 2024-12-18 16:02:42 +09:00
parent d483b59978
commit fb1bac83ae
2 changed files with 10 additions and 13 deletions

View File

@ -138,7 +138,11 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
}
private func handlePlaybackEnded() {
playNextContent()
if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent {
self.playNextContent()
} else {
self.stop()
}
}
func playNextContent() {
@ -148,11 +152,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
generateUrl(contentId: content.id) { [unowned self] url in
self.urlGenerateSuccess(content: content, url: url)
} onFailure: {
if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent {
self.playNextContent()
} else {
self.stop()
}
self.playNextContent()
}
}
}
@ -164,11 +164,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
generateUrl(contentId: content.id) { [unowned self] url in
self.urlGenerateSuccess(content: content, url: url)
} onFailure: {
if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent {
self.playNextContent()
} else {
self.stop()
}
self.playPreviousContent()
}
}
}
@ -196,12 +192,12 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
isLoading = false
player?.pause()
player?.seek(to: .zero)
duration = 0
currentTime = 0
}
func resetPlayer() {
stop()
duration = 0
isShowingMiniPlayer = false
title = ""
@ -243,7 +239,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
let jsonDecoder = JSONDecoder()
let decoded = try jsonDecoder.decode(ApiResponse<GenerateUrlResponse>.self, from: responseData)
if let data = decoded.data, decoded.success {
if let data = decoded.data, !data.contentUrl.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty, decoded.success {
onSuccess(data.contentUrl)
} else {
self.isLoading = false

View File

@ -62,6 +62,7 @@ struct PlaylistAddContentItemView: View {
Image(isChecked ? "ic_check_blue" : "ic_playlist_add")
.padding(8)
}
.contentShape(Rectangle())
.onTapGesture {
onClick()
isChecked.toggle()