feat: 최근 들은 콘텐츠 로컬 DB 추가

This commit is contained in:
Yu Sung
2025-07-28 22:34:34 +09:00
parent a73cafa08c
commit 70af4cb3dd
10 changed files with 306 additions and 67 deletions

View File

@@ -16,6 +16,7 @@ struct ContentDetailPlayView: View {
@Binding var isShowPreviewAlert: Bool
@StateObject var contentPlayManager = ContentPlayManager.shared
@StateObject var recentContentViewModel = RecentContentViewModel()
@State private var isRepeat = UserDefaults.bool(forKey: .isContentPlayLoop)
@State private var isEditing = false
@@ -101,6 +102,13 @@ struct ContentDetailPlayView: View {
isPreview: !audioContent.existOrdered && audioContent.price > 0
)
isShowPreviewAlert = true
recentContentViewModel.insertRecentContent(
contentId: Int64(audioContent.contentId),
coverImageUrl: audioContent.coverImageUrl,
title: audioContent.title,
creatorNickname: audioContent.creator.nickname
)
}
}

View File

@@ -11,6 +11,7 @@ import MediaPlayer
import Combine
import Kingfisher
import SwiftUICore
final class ContentPlayerPlayManager: NSObject, ObservableObject {
enum LoopState {
@@ -23,6 +24,8 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
private let repository = ContentGenerateUrlRepository()
@StateObject var recentContentViewModel = RecentContentViewModel()
@Published var id = 0
@Published var title = ""
@Published var nickname = ""
@@ -132,6 +135,13 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject {
.store(in: &cancellables)
self.fetchAlbumArtAndUpdateNowPlayingInfo()
recentContentViewModel.insertRecentContent(
contentId: Int64(id),
coverImageUrl: coverImageUrl,
title: title,
creatorNickname: nickname
)
}
private func checkPlaybackStart(bufferedTime: Double, isLikelyToKeepUp: Bool) {