diff --git a/Editor/GuruManager/Manager/GuruSDKManager.cs b/Editor/GuruManager/Manager/GuruSDKManager.cs index 473456a..545864c 100644 --- a/Editor/GuruManager/Manager/GuruSDKManager.cs +++ b/Editor/GuruManager/Manager/GuruSDKManager.cs @@ -84,7 +84,15 @@ namespace Guru.Editor #region Service Checker + enum CheckStatus + { + Passed, + Warning, + Failed, + } + private const string MARK_FAIL = "#FAIL"; + private const string MARK_WARN = "#WARN"; private const string MARK_INDENT = " "; private List _completionCheckResult; private int _serviceCriticalFail = 0; @@ -101,19 +109,25 @@ namespace Guru.Editor _completionCheckResult = new List(40); string mk_yes = " ( \u2714 ) "; string mk_no = " ( \u2718 ) "; - string mk_warn = " ( \u2639 ) "; + string mk_warn = " ( ! ) "; string mk_star = " ( \u2605 ) "; string check_passed = $"{MARK_INDENT}{mk_yes} All items passed!"; if (_servicesConfig == null) { - AddResultLine($"{mk_yes} guru-services is missing", false); - AddResultLine($"Please contact Guru tech support to get help.", false); + AddResultLine($"{mk_yes} guru-services is missing", CheckStatus.Failed); + AddResultLine($"Please contact Guru tech support to get help.", CheckStatus.Failed); _serviceCriticalFail++; } else { bool passed = true; AddResultLine($"{mk_star} exists!"); + if (_servicesConfig.app_settings != null + && !string.IsNullOrEmpty(_servicesConfig.app_settings.bundle_id)) + { + AddResultLine($"{MARK_INDENT} + {MARK_INDENT}{_servicesConfig.app_settings.bundle_id}"); + } + AddResultLine($"--------------------------------"); //-------- APP Settings -------- @@ -122,7 +136,7 @@ namespace Guru.Editor if (_servicesConfig.app_settings == null) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", CheckStatus.Failed); _serviceCriticalFail++; } else @@ -130,25 +144,25 @@ namespace Guru.Editor if (_servicesConfig.app_settings.app_id.IsNullOrEmpty()) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} AppID is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} AppID is missing!", CheckStatus.Failed); _serviceCriticalFail++; } if (_servicesConfig.app_settings.bundle_id.IsNullOrEmpty()) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} BundleID is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} BundleID is missing!", CheckStatus.Failed); _serviceCriticalFail++; } if (_servicesConfig.app_settings.product_name.IsNullOrEmpty()) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} Product Name is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} Product Name is missing!", CheckStatus.Failed); _serviceCriticalFail++; } if (_servicesConfig.app_settings.support_email.IsNullOrEmpty()) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} Support Email is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} Support Email is missing!", CheckStatus.Failed); _serviceNormalFail++; } } @@ -161,7 +175,7 @@ namespace Guru.Editor if (_servicesConfig.ad_settings == null) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} settings is missing!", CheckStatus.Failed); _serviceCriticalFail++; } else @@ -169,61 +183,61 @@ namespace Guru.Editor if (_servicesConfig.ad_settings.sdk_key.IsNullOrEmpty()) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} SDK Key is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} SDK Key is missing!", CheckStatus.Failed); _serviceCriticalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.admob_app_id)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} Admob ID is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} Admob ID is missing!", CheckStatus.Failed); _serviceCriticalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.max_ids_android)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} AppLovin Android IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} AppLovin Android IDs is missing!", CheckStatus.Failed); _serviceCriticalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.max_ids_ios)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_no} AppLovin iOS IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_no} AppLovin iOS IDs is missing!", CheckStatus.Failed); _serviceCriticalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.amazon_ids_android)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Amazon Android IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Amazon Android IDs is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.amazon_ids_ios)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Amazon iOS IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Amazon iOS IDs is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.pubmatic_ids_android)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic Android IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic Android IDs is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.pubmatic_ids_ios)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic iOS IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Pubmatic iOS IDs is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.moloco_ids_android)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Moloco Android Test IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Moloco Android Test IDs is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (!IsArrayNotEmpty(_servicesConfig.ad_settings.moloco_ids_ios)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Moloco iOS Test IDs is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Moloco iOS Test IDs is missing!", CheckStatus.Warning); _serviceNormalFail++; } } @@ -235,7 +249,7 @@ namespace Guru.Editor if (_servicesConfig.fb_settings == null) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Facebook settings is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Facebook settings is missing!", CheckStatus.Warning); _serviceNormalFail++; } else @@ -243,13 +257,13 @@ namespace Guru.Editor if (_servicesConfig.fb_settings.app_id.IsNullOrEmpty()) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Facebook AppID is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Facebook AppID is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (_servicesConfig.fb_settings.client_token.IsNullOrEmpty()) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Facebook Client Token is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Facebook Client Token is missing!", CheckStatus.Warning); _serviceNormalFail++; } } @@ -257,7 +271,7 @@ namespace Guru.Editor if (_servicesConfig.adjust_settings == null) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Adjust settings is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Adjust settings is missing!", CheckStatus.Warning); _serviceNormalFail++; } else @@ -265,14 +279,14 @@ namespace Guru.Editor if(!IsArrayNotEmpty(_servicesConfig.adjust_settings.app_token)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Adjust AppToken is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Adjust AppToken is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (!IsArrayNotEmpty(_servicesConfig.adjust_settings.events)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Adjust Events is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Adjust Events is missing!", CheckStatus.Warning); _serviceNormalFail++; } } @@ -284,7 +298,7 @@ namespace Guru.Editor if (!IsArrayNotEmpty(_servicesConfig.products)) { passed = false; - AddResultLine($"{MARK_INDENT}{mk_warn} Product list is missing!", false); + AddResultLine($"{MARK_INDENT}{mk_warn} Product list is missing!", CheckStatus.Warning); _serviceNormalFail++; } if (passed) AddResultLine(check_passed); @@ -292,13 +306,26 @@ namespace Guru.Editor } - private void AddResultLine(string msg, bool passed = true) + private void AddResultLine(string msg, CheckStatus status = CheckStatus.Passed) { if (_completionCheckResult == null) { _completionCheckResult = new List(40); } - string mk = passed? "" : MARK_FAIL; + + string mk = ""; + switch (status) + { + case CheckStatus.Passed: + mk = ""; + break; + case CheckStatus.Warning: + mk = MARK_WARN; + break; + case CheckStatus.Failed: + mk = MARK_FAIL; + break; + } _completionCheckResult.Add($"{msg}{mk}"); } @@ -308,6 +335,7 @@ namespace Guru.Editor { Color green = new Color(0.7f, 1, 0); Color red = new Color(1, 0.2f, 0); + Color yellow = new Color(1f, 0.8f, 0.2f); Color c; string line = ""; for (int i = 0; i < _completionCheckResult.Count; i++) @@ -319,6 +347,11 @@ namespace Guru.Editor line = line.Replace(MARK_FAIL, ""); c = red; } + else if (line.EndsWith(MARK_WARN)) + { + line = line.Replace(MARK_WARN, ""); + c = yellow; + } GUI_Color(c, () => { EditorGUILayout.LabelField(line); @@ -464,6 +497,7 @@ namespace Guru.Editor } else { + EnsureParentDirectory(GURU_SETTINGS_PATH); settings = CreateInstance(); AssetDatabase.CreateAsset(settings, GURU_SETTINGS_PATH); } @@ -871,6 +905,14 @@ namespace Guru.Editor return array.Length >= length; } + private static void EnsureParentDirectory(string filePath) + { + var dir = Path.GetDirectoryName(filePath); + if (!Directory.Exists(dir)) + { + Directory.CreateDirectory(dir); + } + } #endregion