플레이어, 재생목록 콘텐츠 추가/제거
- 만료된 콘텐츠는 재생되지 않고 다음 콘텐츠로 이동하도록 수정 - 아이템 터치 영역을 아이템 전체로 수정
This commit is contained in:
		| @@ -138,7 +138,11 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | |||||||
|     } |     } | ||||||
|      |      | ||||||
|     private func handlePlaybackEnded() { |     private func handlePlaybackEnded() { | ||||||
|         playNextContent() |         if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { | ||||||
|  |             self.playNextContent() | ||||||
|  |         } else { | ||||||
|  |             self.stop() | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     func playNextContent() { |     func playNextContent() { | ||||||
| @@ -148,11 +152,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | |||||||
|             generateUrl(contentId: content.id) { [unowned self] url in |             generateUrl(contentId: content.id) { [unowned self] url in | ||||||
|                 self.urlGenerateSuccess(content: content, url: url) |                 self.urlGenerateSuccess(content: content, url: url) | ||||||
|             } onFailure: { |             } onFailure: { | ||||||
|                 if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { |                 self.playNextContent() | ||||||
|                     self.playNextContent() |  | ||||||
|                 } else { |  | ||||||
|                     self.stop() |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -164,11 +164,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | |||||||
|             generateUrl(contentId: content.id) { [unowned self] url in |             generateUrl(contentId: content.id) { [unowned self] url in | ||||||
|                 self.urlGenerateSuccess(content: content, url: url) |                 self.urlGenerateSuccess(content: content, url: url) | ||||||
|             } onFailure: { |             } onFailure: { | ||||||
|                 if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { |                 self.playPreviousContent() | ||||||
|                     self.playNextContent() |  | ||||||
|                 } else { |  | ||||||
|                     self.stop() |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -196,12 +192,12 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | |||||||
|         isLoading = false |         isLoading = false | ||||||
|         player?.pause() |         player?.pause() | ||||||
|         player?.seek(to: .zero) |         player?.seek(to: .zero) | ||||||
|         duration = 0 |  | ||||||
|         currentTime = 0 |         currentTime = 0 | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     func resetPlayer() { |     func resetPlayer() { | ||||||
|         stop() |         stop() | ||||||
|  |         duration = 0 | ||||||
|         isShowingMiniPlayer = false |         isShowingMiniPlayer = false | ||||||
|          |          | ||||||
|         title = "" |         title = "" | ||||||
| @@ -243,7 +239,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { | |||||||
|                         let jsonDecoder = JSONDecoder() |                         let jsonDecoder = JSONDecoder() | ||||||
|                         let decoded = try jsonDecoder.decode(ApiResponse<GenerateUrlResponse>.self, from: responseData) |                         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) |                             onSuccess(data.contentUrl) | ||||||
|                         } else { |                         } else { | ||||||
|                             self.isLoading = false |                             self.isLoading = false | ||||||
|   | |||||||
| @@ -62,6 +62,7 @@ struct PlaylistAddContentItemView: View { | |||||||
|             Image(isChecked ? "ic_check_blue" : "ic_playlist_add") |             Image(isChecked ? "ic_check_blue" : "ic_playlist_add") | ||||||
|                 .padding(8) |                 .padding(8) | ||||||
|         } |         } | ||||||
|  |         .contentShape(Rectangle()) | ||||||
|         .onTapGesture { |         .onTapGesture { | ||||||
|             onClick() |             onClick() | ||||||
|             isChecked.toggle() |             isChecked.toggle() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung