using System; using Guru; using UnityEngine; namespace GuruService { public static partial class GuruSDKService { private static void AddCallbackListener() { GuruSDK.Callbacks.App.OnAppPaused += OnAppPaused; GuruSDK.Callbacks.App.OnAppQuit += OnAppQuit; GuruSDK.Callbacks.ConsentFlow.OnConsentResult += OnConsentResult; GuruSDK.Callbacks.ConsentFlow.OnAttResult += OnAttResult; GuruSDK.Callbacks.SDK.OnFirebaseReady += OnFirebaseReady; GuruSDK.Callbacks.SDK.OnGuruServiceReady += OnGuruServiceReady; GuruSDK.Callbacks.SDK.OnUserAuthResult += OnUserAuthResult; GuruSDK.Callbacks.SDK.OnFirebaseAuthResult += OnFirebaseAuthResult; GuruSDK.Callbacks.Ads.OnAdsInitComplete += OnAdsInitComplete; GuruSDK.Callbacks.Ads.OnBannerADLoaded += OnBannerADLoaded; GuruSDK.Callbacks.Ads.OnInterstitialADLoaded += OnInterstitialADLoaded; GuruSDK.Callbacks.Ads.OnInterstitialADFailed += OnInterstitialADFailed; GuruSDK.Callbacks.Ads.OnRewardedADLoaded += OnRewardedADLoaded; GuruSDK.Callbacks.Ads.OnRewardADFailed += OnRewardADFailed; GuruSDK.Callbacks.Remote.OnRemoteFetchComplete += OnRemoteFetchComplete; } #region App Callbacks private static void OnAppPaused(bool paused) { Log.I($"[GuruCallback][OnAppPaused] paused:{paused}"); _serviceImp?.OnAppPaused(paused); } private static void OnAppQuit() { Log.I($"[GuruCallback][OnAppQuit]"); _serviceImp?.OnAppQuit(); } #endregion #region SDK Callbacks private static Action _onFirebaseReady; private static void OnFirebaseReady(bool success) { Log.I($"[GuruCallback][OnFirebaseReady] success:{success}"); if (success) _onFirebaseReady?.Invoke(); _serviceImp?.OnFirebaseReady(success); } private static void OnGuruServiceReady() { Log.I($"[GuruCallback][OnGuruServiceReady]"); _serviceImp?.OnGuruServiceReady(); } private static void OnUserAuthResult(bool success) { Log.I($"[GuruCallback][OnUserAuthResult] success:{success}"); _serviceImp?.OnUserAuthResult(success); } private static void OnFirebaseAuthResult(bool success) { Log.I($"[GuruCallback][OnFirebaseAuthResult] success:{success}"); _serviceImp?.OnFirebaseAuthResult(success); } #endregion #region ConsentFlow Callbacks private static void OnAttResult(int authorizationTrackingStatus) { Log.I($"[GuruCallback][OnAttResult] authorizationTrackingStatus:{authorizationTrackingStatus}"); _serviceImp?.OnAttResult(authorizationTrackingStatus); } private static void OnConsentResult(int statusCode) { Log.I($"[GuruCallback][OnConsentResult] statusCode:{statusCode}"); _serviceImp?.OnConsentResult(statusCode); } #endregion #region AD Callbacks private static void OnAdsInitComplete() { Log.I($"[GuruCallback][OnAdsInitComplete]"); _serviceImp?.OnAdsInitComplete(); } public static bool HasBannerADLoaded; private static void OnBannerADLoaded() { Log.I($"[GuruCallback][OnBannerADLoaded]"); GuruSDK.Callbacks.Ads.OnBannerADLoaded -= OnBannerADLoaded; //只监听第一次banner加载成功,处理banner显示逻辑 HasBannerADLoaded = true; _serviceImp?.OnBannerADLoaded(); } private static void OnInterstitialADLoaded() { Log.I($"[GuruCallback][OnInterstitialADLoaded]"); _serviceImp?.OnInterstitialADLoaded(); } private static void OnInterstitialADFailed() { Log.I($"[GuruCallback][OnInterstitialADFailed]"); _serviceImp?.OnInterstitialADFailed(); } private static void OnRewardedADLoaded() { Log.I($"[GuruCallback][OnRewardedADLoaded]"); _serviceImp?.OnRewardedADLoaded(); } private static void OnRewardADFailed() { Log.I($"[GuruCallback][OnRewardADFailed]"); _serviceImp?.OnRewardADFailed(); } #endregion #region Firebase Component Callbacks public static bool IsRemoteConfigFetchSuccess = false; private static void OnRemoteFetchComplete(bool success) { Log.I($"[GuruCallback][OnRemoteFetchComplete] success:{success}"); IsRemoteConfigFetchSuccess = success; _serviceImp?.OnRemoteFetchComplete(success); } #endregion } }