diff --git a/SodaLive/Sources/App/AppDelegate.swift b/SodaLive/Sources/App/AppDelegate.swift index 306664d..dffcb23 100644 --- a/SodaLive/Sources/App/AppDelegate.swift +++ b/SodaLive/Sources/App/AppDelegate.swift @@ -46,16 +46,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { - Messaging.messaging().appDidReceiveMessage(userInfo) - // Print message ID. - if let messageID = userInfo[gcmMessageIDKey] { - DEBUG_LOG("Message ID: \(messageID)") + if let type = userInfo["type"] as? String, type == "POINT_GRANTED" { + NotificationCenter.default.post(name: .pointGranted, object: userInfo["message"]) + } else { + Messaging.messaging().appDidReceiveMessage(userInfo) + // Print message ID. + if let messageID = userInfo[gcmMessageIDKey] { + DEBUG_LOG("Message ID: \(messageID)") + } + + // Print full message. + DEBUG_LOG("userInfo: \(userInfo)") + + completionHandler(UIBackgroundFetchResult.newData) } - - // Print full message. - DEBUG_LOG("userInfo: \(userInfo)") - - completionHandler(UIBackgroundFetchResult.newData) } func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { @@ -283,5 +287,6 @@ extension AppDelegate : UNUserNotificationCenterDelegate { } extension Notification.Name { + static let pointGranted = Notification.Name("POINT_GRANTED") static let didReceiveHomeTab = Notification.Name("didReceiveHomeTab") } diff --git a/SodaLive/Sources/ContentView.swift b/SodaLive/Sources/ContentView.swift index e05aed3..538f6e0 100644 --- a/SodaLive/Sources/ContentView.swift +++ b/SodaLive/Sources/ContentView.swift @@ -10,6 +10,9 @@ import SwiftUI struct ContentView: View { @StateObject private var appState = AppState.shared + @State private var isShowDialog = false + @State private var message = "" + var body: some View { ZStack { Color.black.ignoresSafeArea() @@ -199,7 +202,7 @@ struct ContentView: View { case .tempCanPayment(let orderType, let contentId, let title, let can): CanPaymentTempView(orderType: orderType, contentId: contentId, title: title, can: can) - + case .blockList: BlockMemberListView() @@ -243,6 +246,23 @@ struct ContentView: View { EmptyView() .frame(width: 0, height: 0, alignment: .topLeading) } + + if isShowDialog { + SodaDialog( + title: "포인트 지급", + desc: message, + confirmButtonTitle: "확인" + ) { + isShowDialog = false + message = "" + } + } + } + .onReceive(NotificationCenter.default.publisher(for: .pointGranted)) { + if let msg = $0.object as? String { + self.message = msg + self.isShowDialog = true + } } } }