Golf2D/Assets/Appodeal/Editor/Utils/AppodealInternalSettings.cs
2023-12-06 14:51:43 +05:30

257 lines
9.1 KiB
C#

#pragma warning disable 612
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Appodeal.Editor.AppodealManager.AppodealDependencies;
using AppodealAds.Unity.Editor.InternalResources;
using marijnz.EditorCoroutines;
using UnityEditor;
using UnityEngine;
using UnityEngine.Networking;
#pragma warning disable 618
[SuppressMessage("ReSharper", "NotAccessedField.Local")]
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "CollectionNeverQueried.Global")]
public class AppodealInternalSettings : EditorWindow
{
private static List<string> SKAdNetworkIdentifiers;
public static void ShowAppodealInternalSettings()
{
GetWindowWithRect(typeof(AppodealInternalSettings), new Rect(0, 0, 650, 340), true, "Appodeal Settings");
}
private void OnEnable()
{
this.StartCoroutine(GetSkaNetworkIds());
}
private static IEnumerator GetSkaNetworkIds()
{
SKAdNetworkIdentifiers = new List<string>();
var requestSkaNetworkIds = UnityWebRequest.Get("https://mw-backend.appodeal.com/v1/skadnetwork/");
yield return requestSkaNetworkIds.SendWebRequest();
if (requestSkaNetworkIds.isError)
{
Debug.LogError(requestSkaNetworkIds.error);
}
else
{
if (string.IsNullOrEmpty(requestSkaNetworkIds.downloadHandler.text))
{
Debug.LogError("string.IsNullOrEmpty(requestSkaNetworkIds.downloadHandler.text)");
}
if (requestSkaNetworkIds.downloadHandler.text.Contains("error"))
{
Debug.LogError(
$"{requestSkaNetworkIds.downloadHandler.text}");
yield break;
}
var skaItems =
JsonHelper.FromJson<SkaNetworkItem>(JsonHelper.fixJson(requestSkaNetworkIds.downloadHandler.text));
foreach (var skaItem in skaItems)
{
foreach (var itemID in skaItem.ids)
{
if (!string.IsNullOrEmpty(itemID))
{
SKAdNetworkIdentifiers.Add(itemID);
}
}
}
}
requestSkaNetworkIds.Dispose();
yield return null;
}
private void OnGUI()
{
#region Admob App Id Setting
GUILayout.BeginHorizontal();
using (new EditorGUILayout.VerticalScope("box"))
{
if (GUILayout.Button("AdMob App Id Setting", new GUIStyle(EditorStyles.label)
{
fontSize = 15,
fontStyle = FontStyle.Bold,
fixedHeight = 25
}, GUILayout.Width(200)))
{
Application.OpenURL(
"https://wiki.appodeal.com/en/unity/get-started#UnitySDK.GetStarted-2.3Admobconfiguration");
}
GUILayout.Space(2);
AppodealSettings.Instance.AdMobAndroidAppId = AdmobAppIdPlatformRow("App ID (Android)",
AppodealSettings.Instance.AdMobAndroidAppId, GUILayout.Width(200));
AppodealSettings.Instance.AdMobIosAppId = AdmobAppIdPlatformRow("App ID (iOS)",
AppodealSettings.Instance.AdMobIosAppId, GUILayout.Width(200));
GUILayout.Space(10);
}
GUILayout.EndHorizontal();
#endregion
#region Android Settings
GUILayout.BeginHorizontal();
using (new EditorGUILayout.VerticalScope("box", GUILayout.Width(200), GUILayout.Height(200)))
{
LabelField("Android Settings");
HeaderField("Add optional permissions",
"https://wiki.appodeal.com/en/unity/get-started#UnitySDK.GetStarted-Configure-AndroidManifest.xml");
AppodealSettings.Instance.AccessCoarseLocationPermission = KeyRow("ACCESS_COARSE_LOCATION",
AppodealSettings.Instance.AccessCoarseLocationPermission);
AppodealSettings.Instance.AccessFineLocationPermission = KeyRow("ACCESS_FINE_LOCATION",
AppodealSettings.Instance.AccessFineLocationPermission);
AppodealSettings.Instance.WriteExternalStoragePermission = KeyRow("WRITE_EXTERNAL_STORAGE",
AppodealSettings.Instance.WriteExternalStoragePermission);
AppodealSettings.Instance.AccessWifiStatePermission = KeyRow("ACCESS_WIFI_STATE",
AppodealSettings.Instance.AccessWifiStatePermission);
AppodealSettings.Instance.VibratePermission =
KeyRow("VIBRATE", AppodealSettings.Instance.VibratePermission);
GUILayout.Space(10);
if (GUILayout.Button("Multidex", new GUIStyle(EditorStyles.label)
{
fontSize = 12,
fontStyle = FontStyle.Bold,
fixedHeight = 18
}, GUILayout.Width(100)))
{
Application.OpenURL("https://developer.android.com/studio/build/multidex");
}
AppodealSettings.Instance.AndroidMultidex =
KeyRow("Enable multidex", AppodealSettings.Instance.AndroidMultidex);
GUILayout.Space(12);
}
#endregion
#region iOS Settings
using (new EditorGUILayout.VerticalScope("box", GUILayout.Width(200), GUILayout.Height(200)))
{
LabelField("iOS Settings");
HeaderField("Add keys to info.plist",
"https://wiki.appodeal.com/en/unity/get-started#UnitySDK.GetStarted-2.2iOSconfiguration");
GUILayout.Space(10);
AppodealSettings.Instance.NSUserTrackingUsageDescription = KeyRow("NSUserTrackingUsageDescription",
AppodealSettings.Instance.NSUserTrackingUsageDescription);
AppodealSettings.Instance.NSLocationWhenInUseUsageDescription = KeyRow(
"NSLocationWhenInUseUsageDescription",
AppodealSettings.Instance.NSLocationWhenInUseUsageDescription);
AppodealSettings.Instance.NSCalendarsUsageDescription = KeyRow("NSCalendarsUsageDescription",
AppodealSettings.Instance.NSCalendarsUsageDescription);
AppodealSettings.Instance.NSAppTransportSecurity = KeyRow("NSAppTransportSecurity",
AppodealSettings.Instance.NSAppTransportSecurity);
GUILayout.Space(25);
if (GUILayout.Button("SKAdNetwork", new GUIStyle(EditorStyles.label)
{
fontSize = 12,
fontStyle = FontStyle.Bold,
fixedHeight = 18
}, GUILayout.ExpandWidth(true)))
{
Application.OpenURL("https://developer.apple.com/documentation/storekit/skadnetwork");
}
AppodealSettings.Instance.IOSSkAdNetworkItems =
KeyRow("Add SKAdNetworkItems", AppodealSettings.Instance.IOSSkAdNetworkItems);
if (AppodealSettings.Instance.IOSSkAdNetworkItemsList != null &&
AppodealSettings.Instance.IOSSkAdNetworkItemsList.Count > 0)
{
AppodealSettings.Instance.IOSSkAdNetworkItemsList = null;
AppodealSettings.Instance.IOSSkAdNetworkItemsList = SKAdNetworkIdentifiers;
}
else
{
AppodealSettings.Instance.IOSSkAdNetworkItemsList = SKAdNetworkIdentifiers;
}
GUILayout.Space(10);
}
GUILayout.EndHorizontal();
#endregion
AppodealSettings.Instance.SaveAsync();
}
private static void LabelField(string label)
{
EditorGUILayout.LabelField(label, new GUIStyle(EditorStyles.label)
{
fontSize = 15,
fontStyle = FontStyle.Bold
},
GUILayout.Height(20), GUILayout.Width(311));
GUILayout.Space(2);
}
private static void HeaderField(string header, string url)
{
if (GUILayout.Button(header, new GUIStyle(EditorStyles.label)
{
fontSize = 12,
fontStyle = FontStyle.Bold,
fixedHeight = 18
}, GUILayout.Width(200)))
{
Application.OpenURL(url);
}
GUILayout.Space(2);
}
private static string AdmobAppIdPlatformRow(string fieldTitle, string text, GUILayoutOption labelWidth,
GUILayoutOption textFieldWidthOption = null)
{
GUILayout.BeginHorizontal();
EditorGUILayout.LabelField(new GUIContent(fieldTitle), labelWidth);
text = textFieldWidthOption == null
? GUILayout.TextField(text)
: GUILayout.TextField(text, textFieldWidthOption);
GUILayout.EndHorizontal();
return text;
}
private static bool KeyRow(string fieldTitle, bool value)
{
GUILayout.Space(5);
var originalValue = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = 235;
value = EditorGUILayout.Toggle(fieldTitle, value);
EditorGUIUtility.labelWidth = originalValue;
return value;
}
[Serializable]
public class SkaNetworkItem
{
public string name;
public long id;
public string[] ids;
public string compatible_version;
}
}