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