com.guru.unity.sdk/Runtime/Code/SDK/GuruSDK.Debugger.cs

129 lines
4.8 KiB
C#

namespace Guru
{
using UnityEngine;
using System;
public partial class GuruSDK
{
private static readonly bool _useBaseOptions = true;
private static GuruDebugger _debugger;
public static GuruDebugger Debugger
{
get
{
if (_debugger == null)
{
_debugger = GuruDebugger.Instance;
if (_useBaseOptions)
{
InitDebuggerLayout();
}
}
return _debugger;
}
}
/// <summary>
/// 显示广告状态
/// </summary>
public static bool ShowAdStatus()
{
if (!IsServiceReady) return false;
Debugger.ShowAdStatus();
return true;
}
/// <summary>
/// 显示 Debugger
/// </summary>
/// <returns></returns>
public static bool ShowDebugger()
{
if (!IsServiceReady) return false;
Debugger.ShowPage(); // 显示 Debugger 界面
return true;
}
private static void InitDebuggerLayout()
{
var settings = GuruSettings.Instance;
var v = GuruAppVersion.Load();
var app_version = (v == null ? $"{Application.version} (unknown)" : $"{v.version} ({v.code})");
var uid = (string.IsNullOrEmpty(UID) ? "NULL" : UID);
var device_id = (string.IsNullOrEmpty(DeviceId) ? "NULL" : DeviceId);
var push_token = (string.IsNullOrEmpty(PushToken) ? "NULL" : PushToken);
var auth_token = (string.IsNullOrEmpty(AuthToken) ? "NULL" : AuthToken);
var fid = (string.IsNullOrEmpty(FirebaseId) ? "NULL" : FirebaseId);
var adjust_id = (string.IsNullOrEmpty(AdjustId) ? "NULL" : AdjustId);
var idfa = (string.IsNullOrEmpty(IDFA) ? "NULL" : IDFA);
var gsid = (string.IsNullOrEmpty(GSADID) ? "NULL" : GSADID);
// ------------ Info Page --------------------
Debugger.AddOption("Info/Guru SDK", GuruSDK.Version);
Debugger.AddOption("Info/Unity Version", Application.unityVersion);
Debugger.AddOption("Info/Name", settings.ProductName);
Debugger.AddOption("Info/Bundle Id", settings.GameIdentifier);
Debugger.AddOption("Info/Version", app_version);
Debugger.AddOption("Info/Uid", uid).AddCopyButton();
Debugger.AddOption("Info/Device ID", device_id).AddCopyButton();
Debugger.AddOption("Info/Push Token", push_token).AddCopyButton();
Debugger.AddOption("Info/Auth Token", auth_token).AddCopyButton();
Debugger.AddOption("Info/Firebase Id", fid).AddCopyButton();
Debugger.AddOption("Info/Adjust Id", adjust_id).AddCopyButton();
Debugger.AddOption("Info/IDFA", idfa).AddCopyButton();
Debugger.AddOption("Info/GSADID", gsid).AddCopyButton();
Debugger.AddOption("Info/Debug Mode", GuruSDK.IsDebugMode? "true" : "false");
Debugger.AddOption("Info/Screen size", $"{Screen.width} x {Screen.height}");
// ------------ Ads Page --------------------
Debugger.AddOption("Ads/Show Ads Debug Panel", "", ShowMaxDebugPanel);
var badsId = settings.ADSetting.GetBannerID();
var iadsId = settings.ADSetting.GetInterstitialID();
var radsId = settings.ADSetting.GetRewardedVideoID();
Debugger.AddOption("Ads/Banner Id", badsId);
Debugger.AddOption("Ads/Interstitial Id", iadsId);
Debugger.AddOption("Ads/Rewarded Id", radsId);
GuruDebugger.OnClosed -= OnDebuggerClosed;
GuruDebugger.OnClosed += OnDebuggerClosed;
Callbacks.SDK.InvokeOnDebuggerDisplayed(true);
}
private static void OnDebuggerClosed()
{
GuruDebugger.OnClosed -= OnDebuggerClosed;
Callbacks.SDK.InvokeOnDebuggerDisplayed(false);
}
/// <summary>
/// 显示 Debugger
/// </summary>
/// <param name="debugger"></param>
/// <returns></returns>
public static bool ShowDebuggerWithData(out GuruDebugger debugger)
{
debugger = null;
bool res = ShowDebugger();
if (res)
{
debugger = GuruDebugger.Instance;
}
return res;
}
public static GuruDebugger.OptionLayout AddOption(string uri, string content = "", Action clickHandler = null)
{
return Debugger.AddOption(uri, content, clickHandler);
}
}
}