diff --git a/SodaLive/Sources/App/AppState.swift b/SodaLive/Sources/App/AppState.swift index 2660dce..6e75b2e 100644 --- a/SodaLive/Sources/App/AppState.swift +++ b/SodaLive/Sources/App/AppState.swift @@ -12,6 +12,7 @@ class AppState: ObservableObject { private var appStepBackStack = [AppStep]() + @Published var alreadyUpdatedMarketingInfo = false @Published private(set) var appStep: AppStep = .splash @Published var isShowPlayer = false { diff --git a/SodaLive/Sources/App/AppViewModel.swift b/SodaLive/Sources/App/AppViewModel.swift index 5fb0dfd..2d13d32 100644 --- a/SodaLive/Sources/App/AppViewModel.swift +++ b/SodaLive/Sources/App/AppViewModel.swift @@ -15,7 +15,7 @@ final class AppViewModel: ObservableObject { private let userRepository = UserRepository() func fetchAndUpdateIdfa() { - DEBUG_LOG("fetchAndUpdateIdfa") + AppState.shared.alreadyUpdatedMarketingInfo = true ATTrackingManager.requestTrackingAuthorization { [unowned self] status in if status == .authorized { if !UserDefaults.string(forKey: UserDefaultsKey.token).trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { diff --git a/SodaLive/Sources/App/SodaLiveApp.swift b/SodaLive/Sources/App/SodaLiveApp.swift index b9a6e09..203c19d 100644 --- a/SodaLive/Sources/App/SodaLiveApp.swift +++ b/SodaLive/Sources/App/SodaLiveApp.swift @@ -25,10 +25,12 @@ struct SodaLiveApp: App { } .onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in UIApplication.shared.applicationIconBadgeNumber = 0 - AppsFlyerLib.shared().start() - viewModel.fetchAndUpdateIdfa() - viewModel.getMemberInfo() + + if !AppState.shared.alreadyUpdatedMarketingInfo { + viewModel.fetchAndUpdateIdfa() + viewModel.getMemberInfo() + } } .onOpenURL { url in DEBUG_LOG("I have received a URL through a custom scheme! \(url.absoluteString)") diff --git a/SodaLive/Sources/User/Login/LoginViewModel.swift b/SodaLive/Sources/User/Login/LoginViewModel.swift index 7750d08..0d0786a 100644 --- a/SodaLive/Sources/User/Login/LoginViewModel.swift +++ b/SodaLive/Sources/User/Login/LoginViewModel.swift @@ -10,6 +10,7 @@ import Moya import Combine final class LoginViewModel: ObservableObject { + private let appViewModel = AppViewModel() private let repository = UserRepository() private var subscription = Set() @@ -55,6 +56,7 @@ final class LoginViewModel: ObservableObject { UserDefaults.set(data.userId, forKey: .userId) UserDefaults.set(data.email, forKey: .email) UserDefaults.set(data.token, forKey: .token) + self.appViewModel.fetchAndUpdateIdfa() AppState.shared.isChangeAdultContentVisible = true AppState.shared.setAppStep(step: .splash) } else { diff --git a/SodaLive/Sources/User/SignUp/SignUpViewModel.swift b/SodaLive/Sources/User/SignUp/SignUpViewModel.swift index 63d06e6..9413995 100644 --- a/SodaLive/Sources/User/SignUp/SignUpViewModel.swift +++ b/SodaLive/Sources/User/SignUp/SignUpViewModel.swift @@ -11,6 +11,7 @@ import Combine import Moya final class SignUpViewModel: ObservableObject { + private let appViewModel = AppViewModel() private let repository = UserRepository() private var subscription = Set() @@ -58,6 +59,7 @@ final class SignUpViewModel: ObservableObject { UserDefaults.set(data.userId, forKey: .userId) UserDefaults.set(data.email, forKey: .email) UserDefaults.set(data.token, forKey: .token) + self.appViewModel.fetchAndUpdateIdfa() AppState.shared.isChangeAdultContentVisible = true AppState.shared.setAppStep(step: .splash) } else {