138 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			138 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System.Collections.Generic; | ||
|  | using UnityEngine; | ||
|  | using UnityEditor; | ||
|  | 
 | ||
|  | namespace AdjustSdk | ||
|  | { | ||
|  |     [CustomEditor(typeof(AdjustSettings))] | ||
|  |     public class AdjustSettingsEditor : Editor | ||
|  |     { | ||
|  |         SerializedProperty iOSFrameworkAdSupport; | ||
|  |         SerializedProperty iOSFrameworkAdServices; | ||
|  |         SerializedProperty iOSFrameworkAppTrackingTransparency; | ||
|  |         SerializedProperty iOSFrameworkStoreKit; | ||
|  |         SerializedProperty androidPermissionInternet; | ||
|  |         SerializedProperty androidPermissionInstallReferrerService; | ||
|  |         SerializedProperty androidPermissionAdId; | ||
|  |         SerializedProperty androidPermissionAccessNetworkState; | ||
|  |         SerializedProperty iOSUserTrackingUsageDescription; | ||
|  |         SerializedProperty iOSUrlIdentifier; | ||
|  |         SerializedProperty iOSUrlSchemes; | ||
|  |         SerializedProperty iOSUniversalLinksDomains; | ||
|  |         SerializedProperty androidUriSchemes; | ||
|  |         SerializedProperty androidCustomActivityName; | ||
|  | 
 | ||
|  |         void OnEnable() | ||
|  |         { | ||
|  |             iOSFrameworkAdSupport = serializedObject.FindProperty("_iOSFrameworkAdSupport"); | ||
|  |             iOSFrameworkAdServices = serializedObject.FindProperty("_iOSFrameworkAdServices"); | ||
|  |             iOSFrameworkAppTrackingTransparency = serializedObject.FindProperty("_iOSFrameworkAppTrackingTransparency"); | ||
|  |             iOSFrameworkStoreKit = serializedObject.FindProperty("_iOSFrameworkStoreKit"); | ||
|  |             androidPermissionInternet = serializedObject.FindProperty("_androidPermissionInternet"); | ||
|  |             androidPermissionInstallReferrerService = serializedObject.FindProperty("_androidPermissionInstallReferrerService"); | ||
|  |             androidPermissionAdId = serializedObject.FindProperty("_androidPermissionAdId"); | ||
|  |             androidPermissionAccessNetworkState = serializedObject.FindProperty("_androidPermissionAccessNetworkState"); | ||
|  |             iOSUserTrackingUsageDescription = serializedObject.FindProperty("_iOSUserTrackingUsageDescription"); | ||
|  |             iOSUrlIdentifier = serializedObject.FindProperty("_iOSUrlIdentifier"); | ||
|  |             iOSUrlSchemes = serializedObject.FindProperty("_iOSUrlSchemes"); | ||
|  |             iOSUniversalLinksDomains = serializedObject.FindProperty("_iOSUniversalLinksDomains"); | ||
|  |             androidUriSchemes = serializedObject.FindProperty("androidUriSchemes"); | ||
|  |             androidCustomActivityName = serializedObject.FindProperty("_androidCustomActivityName"); | ||
|  |         } | ||
|  |         public override void OnInspectorGUI() | ||
|  |         { | ||
|  |             GUIStyle darkerCyanTextFieldStyles = new GUIStyle(EditorStyles.boldLabel); | ||
|  |             darkerCyanTextFieldStyles.normal.textColor = new Color(0f/255f, 190f/255f, 190f/255f); | ||
|  | 
 | ||
|  |             EditorGUILayout.Space(); | ||
|  |             EditorGUILayout.LabelField("LINK IOS FRAMEWORKS:", darkerCyanTextFieldStyles); | ||
|  |             EditorGUI.indentLevel += 1; | ||
|  |             EditorGUILayout.PropertyField(iOSFrameworkAdSupport, | ||
|  |                 new GUIContent("AdSupport.framework", | ||
|  |                     "iOS framework needed to access IDFA value"), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(iOSFrameworkAdServices, | ||
|  |                 new GUIContent("AdServices.framework", | ||
|  |                     "iOS framework needed to support AdServices based Apple Search Ads attribution"), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(iOSFrameworkAppTrackingTransparency, | ||
|  |                 new GUIContent("AppTrackingTransparency.framework", | ||
|  |                     "iOS framework needed to display tracking consent dialog"), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(iOSFrameworkStoreKit, | ||
|  |                 new GUIContent("StoreKit.framework", | ||
|  |                     "iOS framework needed to use SKAdNetwork capabilities"), | ||
|  |                 true); | ||
|  |             EditorGUI.indentLevel -= 1; | ||
|  |             EditorGUILayout.Space(); | ||
|  |             EditorGUILayout.LabelField("ADD ANDROID PERMISSIONS:", darkerCyanTextFieldStyles); | ||
|  |             EditorGUI.indentLevel += 1; | ||
|  |             EditorGUILayout.PropertyField(androidPermissionInternet, | ||
|  |                 new GUIContent("android.permission.INTERNET", | ||
|  |                     "Android permission needed to send data to Adjust backend"), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(androidPermissionInstallReferrerService, | ||
|  |                 new GUIContent("com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE", | ||
|  |                     "Android permission needed to read install referrer"), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(androidPermissionAdId, | ||
|  |                 new GUIContent("com.google.android.gms.permission.AD_ID", | ||
|  |                     "Android permission needed to read Google Advertising ID if you target API 33 or later"), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(androidPermissionAccessNetworkState, | ||
|  |                 new GUIContent("android.permission.ACCESS_NETWORK_STATE", | ||
|  |                     "Android permission needed to determine type of network device is connected to"), | ||
|  |                 true); | ||
|  |             EditorGUI.indentLevel -= 1; | ||
|  |             EditorGUILayout.Space(); | ||
|  |             EditorGUILayout.LabelField("IOS PRIVACY:", darkerCyanTextFieldStyles); | ||
|  |             EditorGUI.indentLevel += 1; | ||
|  |             EditorGUILayout.PropertyField(iOSUserTrackingUsageDescription, | ||
|  |                 new GUIContent("User Tracking Description", | ||
|  |                     "String you would like to display to your users describing the reason " + | ||
|  |                     "behind asking for tracking permission."), | ||
|  |                 true); | ||
|  |             EditorGUI.indentLevel -= 1; | ||
|  |             EditorGUILayout.Space(); | ||
|  |             EditorGUILayout.LabelField("ANDROID ACTIVITY NAME:", darkerCyanTextFieldStyles); | ||
|  |             EditorGUI.indentLevel += 1; | ||
|  |             EditorGUILayout.PropertyField(androidCustomActivityName, | ||
|  |                 new GUIContent("Custom Android Activity Name", | ||
|  |                     "In case you are using custom activity instead of the default Unity activity " + | ||
|  |                     "(com.unity3d.player.UnityPlayerActivity), please specify it's full name."), | ||
|  |                 true); | ||
|  |             EditorGUI.indentLevel -= 1; | ||
|  |             EditorGUILayout.Space(); | ||
|  |             EditorGUILayout.LabelField("DEEP LINKING:", darkerCyanTextFieldStyles); | ||
|  |             EditorGUI.indentLevel += 1; | ||
|  |             EditorGUILayout.PropertyField(iOSUrlIdentifier, | ||
|  |                 new GUIContent("iOS URL Identifier", | ||
|  |                     "Value of CFBundleURLName property of the root CFBundleURLTypes element. " + | ||
|  |                     "If not needed otherwise, value should be your bundle ID."), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(iOSUrlSchemes, | ||
|  |                 new GUIContent("iOS URL Schemes", | ||
|  |                     "URL schemes handled by your app. " + | ||
|  |                     "Make sure to enter just the scheme name without :// part at the end."), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(iOSUniversalLinksDomains, | ||
|  |                 new GUIContent("iOS Universal Links Domains", | ||
|  |                     "Associated domains handled by your app. State just the domain part without applinks: part in front."), | ||
|  |                 true); | ||
|  |             EditorGUILayout.PropertyField(androidUriSchemes, | ||
|  |                 new GUIContent("Android URI Schemes", | ||
|  |                     "URI schemes handled by your app. " + | ||
|  |                     "Make sure to enter just the scheme name with :// part at the end."), | ||
|  |                 true); | ||
|  |             EditorGUILayout.HelpBox( | ||
|  |                 "Please note that Adjust SDK doesn't remove existing URI Schemes, " + | ||
|  |                 "so if you need to clean previously added entries, " + | ||
|  |                 "you need to do it manually from \"Assets/Plugins/Android/AndroidManifest.xml\"", | ||
|  |                 MessageType.Info, | ||
|  |                 true); | ||
|  |             EditorGUI.indentLevel -= 1; | ||
|  |             serializedObject.ApplyModifiedProperties(); | ||
|  |         } | ||
|  |     } | ||
|  | } |