플레이어, 재생목록 콘텐츠 추가/제거
- 만료된 콘텐츠는 재생되지 않고 다음 콘텐츠로 이동하도록 수정 - 아이템 터치 영역을 아이템 전체로 수정
This commit is contained in:
		| @@ -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() | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @@ -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 | ||||
|   | ||||
| @@ -62,6 +62,7 @@ struct PlaylistAddContentItemView: View { | ||||
|             Image(isChecked ? "ic_check_blue" : "ic_playlist_add") | ||||
|                 .padding(8) | ||||
|         } | ||||
|         .contentShape(Rectangle()) | ||||
|         .onTapGesture { | ||||
|             onClick() | ||||
|             isChecked.toggle() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung