diff --git a/Assets/Darkmatter/Scenes/Boot.unity b/Assets/Darkmatter/Scenes/Boot.unity index b6e301d..068f07d 100644 --- a/Assets/Darkmatter/Scenes/Boot.unity +++ b/Assets/Darkmatter/Scenes/Boot.unity @@ -1443,6 +1443,52 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3} +--- !u!1 &680382927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 680382929} + - component: {fileID: 680382928} + m_Layer: 0 + m_Name: Smartlook Initializer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &680382928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680382927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f8ef78bee04409481341d4213ba58aa, type: 3} + m_Name: + m_EditorClassIdentifier: SmartlookAnalytics::SmartlookUnity.SmartlookInitializer + ResetSession: 0 + ResetUser: 0 +--- !u!4 &680382929 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680382927} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &752713006 GameObject: m_ObjectHideFlags: 0 @@ -1735,6 +1781,7 @@ MonoBehaviour: autoReload: 1 reloadDelaySeconds: 5 reloadMaxAttempts: 6 + showWatchdogSeconds: 60 --- !u!1 &1239449674 GameObject: m_ObjectHideFlags: 0 @@ -2501,3 +2548,4 @@ SceneRoots: - {fileID: 196669903} - {fileID: 673724413} - {fileID: 1156238481} + - {fileID: 680382929} diff --git a/Assets/Smartlook.meta b/Assets/Smartlook.meta new file mode 100755 index 0000000..30e527d --- /dev/null +++ b/Assets/Smartlook.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b33a6fe45d766964da5fc03d08014670 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics.meta b/Assets/Smartlook/SmartlookAnalytics.meta new file mode 100755 index 0000000..dccf8c2 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 467e2fabc4e40d148b07e8728a86ca3c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Android.meta b/Assets/Smartlook/SmartlookAnalytics/Android.meta new file mode 100755 index 0000000..f87b435 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d06bca5055646b840abf8e0525eda4a5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar b/Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar new file mode 100755 index 0000000..18ba963 Binary files /dev/null and b/Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar differ diff --git a/Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar.meta b/Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar.meta new file mode 100755 index 0000000..caf5180 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 90631a0ec3430a544b991bac301a39d8 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Documentation.meta b/Assets/Smartlook/SmartlookAnalytics/Documentation.meta new file mode 100755 index 0000000..6603c82 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 52fd817ee8e81624b969da5aed35fcb7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt b/Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt new file mode 100755 index 0000000..01ee763 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt @@ -0,0 +1 @@ +Work in progress \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt.meta b/Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt.meta new file mode 100755 index 0000000..5b6291b --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9af2dfa206055d847a637198672732dd +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor.meta b/Assets/Smartlook/SmartlookAnalytics/Editor.meta new file mode 100755 index 0000000..be67fe7 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebabf3b02b3cedd40811bb3e176a8c71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs b/Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs new file mode 100755 index 0000000..21b4adc --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs @@ -0,0 +1,40 @@ +using UnityEditor; +using UnityEngine; + +namespace SmartlookUnity.Editor +{ + public static class EditorSettings + { + private const string SettingsResourceSuffix = ".asset"; + private const string SettingsResourceFolder = "Assets/Smartlook/SmartlookAnalytics/Resources/"; + + [MenuItem("Smartlook/Edit Settings")] + public static void EditSettings() + { + var setting = Settings.LoadSettings(); + if (setting == null) + { + setting = ScriptableObject.CreateInstance(); + AssetDatabase.CreateAsset(setting, SettingsResourceFolder + Settings.SettingsResourceName + SettingsResourceSuffix); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + EditorUtility.FocusProjectWindow(); + } + + Selection.activeObject = setting; + } + + [MenuItem("GameObject/Smartlook/Initializer", false, 10)] + [MenuItem("Smartlook/Create Initializer")] + public static void CreateInitializer(MenuCommand menuCommand) + { + var go = new GameObject("Smartlook Initializer"); + go.AddComponent(); + // Ensure it gets reparented if this was a context click (otherwise does nothing) + GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject); + // Register the creation in the undo system + Undo.RegisterCreatedObjectUndo(go, "Create " + go.name); + Selection.activeObject = go; + } + } +} \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs.meta b/Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs.meta new file mode 100755 index 0000000..c9c2422 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 71ff3ca4c29b2074286fc69d417442cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml new file mode 100755 index 0000000..0fbc7db --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml.meta b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml.meta new file mode 100755 index 0000000..1a20b0e --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fc2b5e901decc7c4a80ab878bce70789 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef b/Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef new file mode 100755 index 0000000..57a497b --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Smartlook.Editor", + "rootNamespace": "SmartlookUnity", + "references": [ + "GUID:52537e7b5c9a4f64e9d1ef8878c041c3" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef.meta b/Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef.meta new file mode 100755 index 0000000..2d98156 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f9bdb6ee76021dc42832371ef3b3ff87 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs new file mode 100755 index 0000000..a76b87b --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs @@ -0,0 +1,37 @@ +#if UNITY_IOS || UNITY_TVOS + +using System.IO; +using UnityEditor; +using UnityEditor.Callbacks; +using UnityEditor.iOS.Xcode; +using UnityEditor.iOS.Xcode.Extensions; + +namespace SmartlookUnity.Editor +{ + public partial class SmartlookEditor + { + private const string FRAMEWORK_TARGET_PATH = "Frameworks/Smartlook/SmartlookAnalytics/iOS"; // relative to build folder + private const string FRAMEWORK_NAME = "Smartlook.framework"; + + [PostProcessBuild(500)] + public static void OnPostProcessBuild(BuildTarget target, string path) + { + string destPath = Path.Combine(FRAMEWORK_TARGET_PATH, FRAMEWORK_NAME); + + // obtain the xcode project + string pbxProjectPath = PBXProject.GetPBXProjectPath(path); + + PBXProject project = new PBXProject(); + project.ReadFromFile(pbxProjectPath); + + string targetGuid = project.GetUnityMainTargetGuid(); + + // add the framework to the project and enable 'Embed & Sign' for it + string fileGuid = project.AddFile(destPath, destPath); + + project.AddFileToEmbedFrameworks(targetGuid, fileGuid); + project.WriteToFile(pbxProjectPath); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs.meta b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs.meta new file mode 100755 index 0000000..94f983a --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d8b442681228234d8880c0588704c83 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Resources.meta b/Assets/Smartlook/SmartlookAnalytics/Resources.meta new file mode 100755 index 0000000..1f87f38 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3eba07253de2be546bff9739c3f40385 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Resources/SmartlookSettings.asset b/Assets/Smartlook/SmartlookAnalytics/Resources/SmartlookSettings.asset new file mode 100644 index 0000000..4c50389 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Resources/SmartlookSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a037d972e344070808470b09a6f9228, type: 3} + m_Name: SmartlookSettings + m_EditorClassIdentifier: + ProjectKey: 3bcfb098c5c4f6f1f48d8bbef4c0c94d7c2f9bc9 + FPS: 30 diff --git a/Assets/Smartlook/SmartlookAnalytics/Resources/SmartlookSettings.asset.meta b/Assets/Smartlook/SmartlookAnalytics/Resources/SmartlookSettings.asset.meta new file mode 100755 index 0000000..e2d2486 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Resources/SmartlookSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5f06c1262ba16ba419a9ef51a9a0f320 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts.meta b/Assets/Smartlook/SmartlookAnalytics/Scripts.meta new file mode 100755 index 0000000..40a87d7 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59d30f4c6329b944da8edf6ec31c83f0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/README.md b/Assets/Smartlook/SmartlookAnalytics/Scripts/README.md new file mode 100755 index 0000000..9a39798 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/README.md @@ -0,0 +1,6 @@ +# Unity SDK bridge + +Single source of truth for Unity C# bridge + +## Report a issue +If you want to **submit new issue** please use [smartlook-mobile-issue-tracker](https://github.com/smartlook/smartlook-mobile-issue-tracker). diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/README.md.meta b/Assets/Smartlook/SmartlookAnalytics/Scripts/README.md.meta new file mode 100755 index 0000000..807cc00 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1dd0436bfcddcb04787b932eb0ac8365 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs b/Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs new file mode 100755 index 0000000..ff968b6 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +namespace SmartlookUnity +{ + public class Settings : ScriptableObject + { + public const string SettingsResourceName = "SmartlookSettings"; + + [SerializeField] + [Tooltip("Project Key")] + public string ProjectKey; + [SerializeField] + [Tooltip("Frames per second")] + [Range(1, 30)] + public int FPS = 2; + + private static Settings _instance; + public static Settings Instance => _instance ??= LoadSettings(); + + public static Settings LoadSettings() + { + return Resources.Load(SettingsResourceName) as Settings; + } + } +} \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs.meta b/Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs.meta new file mode 100755 index 0000000..12128c1 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8a037d972e344070808470b09a6f9228 +timeCreated: 1680461368 \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs new file mode 100755 index 0000000..dc3fd44 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs @@ -0,0 +1,272 @@ +#if UNITY_ANDROID +using UnityEngine; + +namespace SmartlookUnity +{ + public partial class Smartlook + { + static AndroidJavaClass SL; + + static AndroidJavaClass getSLClass() + { + if (SL == null) SL = new AndroidJavaClass("com.smartlook.sdk.smartlook.Smartlook"); + return SL; + } + + static partial void SetupAndStartRecordingInternal(string key) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setupAndStartRecording", key); + } + } + + static partial void SetupAndStartRecordingInternal(string key, int frameRate) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setupAndStartRecording", key, frameRate); + } + } + + static partial void SetupAndStartRecordingInternal(SetupOptions setupOptions) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setupAndStartRecordingBridge", JsonUtility.ToJson(setupOptions)); + } + } + + static partial void SetupInternal(string key) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setup", key); + } + } + + static partial void SetupInternal(string key, int frameRate) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setup", key, frameRate); + } + } + + static partial void SetupInternal(SetupOptions setupOptions) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setupBridge", JsonUtility.ToJson(setupOptions)); + } + } + + static partial void StartFullscreenSensitiveModeInternal() + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("startFullscreenSensitiveMode"); + } + } + + static partial void StopFullscreenSensitiveModeInternal() + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("stopFullscreenSensitiveMode"); + } + } + + static partial void SetReferrerInternal(string referrer, string source) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setReferrer", referrer, source); + } + } + + static partial void TrackCustomEventInternal(string eventName) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("trackCustomEvent", eventName); + } + } + + static partial void TrackCustomEventInternal(string eventName, string properties) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("trackCustomEvent", eventName, properties); + } + } + + static partial void TrackNavigationEventInternal(string screenName, int direction) + { + if (Application.platform == RuntimePlatform.Android) + { + string internalDirection = "start"; + + if (direction.Equals(NavigationEventType.exit)) + { + internalDirection = "stop"; + } + + getSLClass().CallStatic("trackNavigationEvent", screenName, internalDirection); + } + } + + static partial void StopTimedCustomEventInternal(string eventId) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("stopTimedCustomEvent", eventId); + } + } + + static partial void StopTimedCustomEventInternal(string eventId, string properties) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("stopTimedCustomEvent", eventId, properties); + } + } + + static partial void CancelTimedCustomEventInternal(string eventId, string reason) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("cancelTimedCustomEvent", eventId, reason); + } + } + + static partial void CancelTimedCustomEventInternal(string eventId, string reason, string properties) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("cancelTimedCustomEvent", eventId, reason, properties); + } + } + + static partial void SetGlobalEventPropertyInternal(string eventName, string eventValue, bool immutable) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setGlobalEventProperty", eventName, eventValue, immutable); + } + } + + static partial void SetGlobalEventPropertiesInternal(string properties, bool immutable) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setGlobalEventProperties", properties, immutable); + } + } + + static partial void RemoveGlobalEventPropertyInternal(string eventName) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("removeGlobalEventProperty", eventName); + } + } + + static partial void RemoveAllGlobalEventPropertiesInternal() + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("removeAllGlobalEventProperties"); + } + } + + static partial void SetUserIdentifierInternal(string userIdentifier) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setUserIdentifier", userIdentifier); + } + } + + static partial void SetUserIdentifierInternal(string userIdentifier, string properties) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setUserIdentifier", userIdentifier); + getSLClass().CallStatic("setUserProperties", properties, false); + } + } + + static partial void StartRecordingInternal() + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("startRecording"); + } + } + + static partial void StopRecordingInternal() + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("stopRecording"); + } + } + + static partial void EnableCrashlyticsInternal(bool enable) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("enableCrashlytics", enable); + } + } + + static partial void ResetSessionInternal(bool resetUser) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("resetSession", resetUser); + } + } + + static partial void SetRenderingModeInternal(int renderingMode) + { + if (Application.platform == RuntimePlatform.Android) + { + string internalRenderingMode = "native"; + + if (renderingMode.Equals(RenderingModeType.no_rendering)) + { + internalRenderingMode = "no_rendering"; + } + + getSLClass().CallStatic("setRenderingMode", internalRenderingMode); + } + } + + static partial void SetEventTrackingModeInternal(string eventTrackingMode) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setEventTrackingMode", eventTrackingMode); + } + } + + static partial void SetEventTrackingModesInternal(string eventTrackingModes) + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("setEventTrackingModes", eventTrackingModes); + } + } + + static partial void UnregisterIntegrationListenerInternal() + { + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("unregisterIntegrationListener"); + } + } + } +} +#endif diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs.meta b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs.meta new file mode 100755 index 0000000..a823f28 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 872537cb224545f4a8c43d836d6b598e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs new file mode 100755 index 0000000..d732c51 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs @@ -0,0 +1,368 @@ +#if UNITY_IOS + +namespace SmartlookUnity { + using System.Runtime.InteropServices; + using UnityEngine; + using System.Collections; + using AOT; + + public partial class Smartlook { + + [DllImport("__Internal")] + static extern void SmartlookSetupAndStartRecording(string key); + + static partial void SetupAndStartRecordingInternal(string key) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetupAndStartRecording(key); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetupAndStartRecordingWithFramerate(string key, int frameRate); + + static partial void SetupAndStartRecordingInternal(string key, int frameRate) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetupAndStartRecordingWithFramerate(key, frameRate); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetupAndStartRecordingWithOptions(string setupOptions); + + static partial void SetupAndStartRecordingInternal(SetupOptions setupOptions) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetupAndStartRecordingWithOptions(JsonUtility.ToJson(setupOptions)); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetup(string key); + + static partial void SetupInternal(string key) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetup(key); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetupWithFramerate(string key, int frameRate); + + static partial void SetupInternal(string key, int frameRate) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetupWithFramerate(key, frameRate); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetupWithOptions(string setupOptions); + + static partial void SetupInternal(SetupOptions setupOptions) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetupWithOptions(JsonUtility.ToJson(setupOptions)); + } + } + + [DllImport("__Internal")] + static extern void SmartlookStartRecording(); + + static partial void StartRecordingInternal() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookStartRecording(); + } + } + + [DllImport("__Internal")] + static extern void SmartlookStopRecording(); + + static partial void StopRecordingInternal() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookStopRecording(); + } + } + + [DllImport("__Internal")] + static extern void SmartlookStartFullscreenSensitiveMode(); + + static partial void StartFullscreenSensitiveModeInternal() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookStartFullscreenSensitiveMode(); + } + } + + [DllImport("__Internal")] + static extern void SmartlookStopFullscreenSensitiveMode(); + + static partial void StopFullscreenSensitiveModeInternal() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookStopFullscreenSensitiveMode(); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetReferrer(string referrer, string source); + + static partial void SetReferrerInternal(string referrer, string source) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetReferrer(referrer, source); + } + } + + [DllImport("__Internal")] + static extern void SmartlookTrackCustomEvent(string eventName); + + static partial void TrackCustomEventInternal(string eventName) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookTrackCustomEvent(eventName); + } + } + + [DllImport("__Internal")] + static extern void SmartlookTrackCustomEventWithProperties(string eventName, string properties); + + static partial void TrackCustomEventInternal(string eventName, string properties) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookTrackCustomEventWithProperties(eventName, properties); + } + } + + [DllImport("__Internal")] + static extern void SmartlookTrackNavigationEvent(string screenName, int direction); + + static partial void TrackNavigationEventInternal(string screenName, int direction) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookTrackNavigationEvent(screenName, direction); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetUserIdentifier(string userIdentifier); + + static partial void SetUserIdentifierInternal(string userIdentifier) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetUserIdentifier(userIdentifier); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetUserIdentifierWithProperties(string userIdentifier, string properties); + + static partial void SetUserIdentifierInternal(string userIdentifier, string properties) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetUserIdentifierWithProperties(userIdentifier, properties); + } + } + + [DllImport("__Internal")] + static extern bool SmartlookIsRecording(); + + public static bool IsRecordingInternalIOS() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return SmartlookIsRecording(); + } + + return false; + } + + [DllImport("__Internal")] + static extern string SmartlookGetDashboardSessionUrl(bool withTimestamp); + + public static string GetDashboardSessionUrlInternalIOS(bool withTimestamp) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return SmartlookGetDashboardSessionUrl(withTimestamp); + } + + return null; + } + + [DllImport("__Internal")] + static extern string SmartlookGetDashboardVisitorUrl(); + + public static string GetDashboardVisitorUrlInternalIOS() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return SmartlookGetDashboardVisitorUrl(); + } + + return null; + } + + [DllImport("__Internal")] + static extern void SmartlookEnableCrashlytics(bool enable); + + static partial void EnableCrashlyticsInternal(bool enable) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookEnableCrashlytics(enable); + } + } + + [DllImport("__Internal")] + static extern string SmartlookStartTimedCustomEvent(string eventName); + + public static string StartTimedCustomEventInternalIOS(string eventName) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return SmartlookStartTimedCustomEvent(eventName); + } + + return null; + } + + [DllImport("__Internal")] + static extern string SmartlookStartTimedCustomEventWithProperties(string eventName, string properties); + + public static string StartTimedCustomEventInternalIOS(string eventName, string properties) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return SmartlookStartTimedCustomEventWithProperties(eventName, properties); + } + + return null; + } + + [DllImport("__Internal")] + static extern void SmartlookStopTimedCustomEvent(string eventId); + + static partial void StopTimedCustomEventInternal(string eventId) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookStopTimedCustomEvent(eventId); + } + } + + [DllImport("__Internal")] + static extern void SmartlookStopTimedCustomEventWithProperties(string eventId, string properties); + + static partial void StopTimedCustomEventInternal(string eventId, string properties) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookStopTimedCustomEventWithProperties(eventId, properties); + } + } + + [DllImport("__Internal")] + static extern void SmartlookCancelTimedCustomEvent(string eventId, string reason); + + static partial void CancelTimedCustomEventInternal(string eventId, string reason) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookCancelTimedCustomEvent(eventId, reason); + } + } + + [DllImport("__Internal")] + static extern void SmartlookCancelTimedCustomEventWithProperties(string eventId, string reason, string properties); + + static partial void CancelTimedCustomEventInternal(string eventId, string reason, string properties) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookCancelTimedCustomEventWithProperties(eventId, reason, properties); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetGlobalEventProperty(string key, string value, bool immutable); + + static partial void SetGlobalEventPropertyInternal(string key, string value, bool immutable) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetGlobalEventProperty(key, value, immutable); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetGlobalEventProperties(string properties, bool immutable); + + static partial void SetGlobalEventPropertiesInternal(string properties, bool immutable) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetGlobalEventProperties(properties, immutable); + } + } + + [DllImport("__Internal")] + static extern void SmartlookRemoveGlobalEventProperty(string key); + + static partial void RemoveGlobalEventPropertyInternal(string key) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookRemoveGlobalEventProperty(key); + } + } + + [DllImport("__Internal")] + static extern void SmartlookRemoveAllGlobalEventProperties(); + + static partial void RemoveAllGlobalEventPropertiesInternal() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookRemoveAllGlobalEventProperties(); + } + } + + [DllImport("__Internal")] + static extern void SmartlookResetSession(bool resetUser); + + static partial void ResetSessionInternal(bool resetUser) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookResetSession(resetUser); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetRenderingMode(int renderingMode); + + static partial void SetRenderingModeInternal(int renderingMode) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetRenderingMode(renderingMode); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetEventTrackingMode(string eventTrackingMode); + + static partial void SetEventTrackingModeInternal(string eventTrackingMode) + { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetEventTrackingMode(eventTrackingMode); + } + } + + [DllImport("__Internal")] + static extern void SmartlookSetEventTrackingModes(string eventTrackingModes); + + static partial void SetEventTrackingModesInternal(string eventTrackingModes) + { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookSetEventTrackingModes(eventTrackingModes); + } + } + + private static IntegrationListener privateIntegrationListener; + private delegate void DelegateMessage(string message); + + [MonoPInvokeCallback(typeof(DelegateMessage))] + private static void delegateVisitorUrlChanged(string message) { + privateIntegrationListener.onVisitorReady(message); + } + + [MonoPInvokeCallback(typeof(DelegateMessage))] + private static void delegateSessionUrlChanged(string message) { + privateIntegrationListener.onSessionReady(message); + } + + + [DllImport("__Internal")] + static extern void SmartlookSetDashboardSessionUrlListener(DelegateMessage callback); + [DllImport("__Internal")] + static extern void SmartlookSetDashboardVisitorUrlListener(DelegateMessage callback); + + public static void RegisterIntegrationListenerInternalIOS(IntegrationListener integrationListener) { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + privateIntegrationListener = integrationListener; + + SmartlookSetDashboardSessionUrlListener(delegateSessionUrlChanged); + SmartlookSetDashboardVisitorUrlListener(delegateVisitorUrlChanged); + } + } + + [DllImport("__Internal")] + static extern void SmartlookUnregisterDashboardListener(); + + static partial void UnregisterIntegrationListenerInternal() { + if (Application.platform == RuntimePlatform.IPhonePlayer) { + SmartlookUnregisterDashboardListener(); + } + } + } +} + +#endif diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs.meta b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs.meta new file mode 100755 index 0000000..9b38331 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4cdf78a5d29fed94cafc9ebf39eec979 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs new file mode 100755 index 0000000..0d2768a --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs @@ -0,0 +1,471 @@ +using System; +using UnityEngine; +using System.Collections.Generic; + +namespace SmartlookUnity +{ + +#if UNITY_ANDROID + /// Extended class can be passed to RegisterIntegrationListener method + [SL_COMPATIBILITY_NAME("name=IntegrationListener;type=callback;members=onSessionReady,onVisitorReady")] + public abstract class IntegrationListener : AndroidJavaProxy + { + public IntegrationListener() : base("com.smartlook.sdk.smartlook.integration.IntegrationListener") { } + + public abstract void onSessionReady(string dashboardSessionUrl); + public abstract void onVisitorReady(string dashboardVisitorUrl); + } +#elif UNITY_IOS + /// Extended class can be passed to RegisterIntegrationListener method + public abstract class IntegrationListener + { + public abstract void onSessionReady(string dashboardSessionUrl); + public abstract void onVisitorReady(string dashboardVisitorUrl); + } +#else + public abstract class IntegrationListener + { + public abstract void onSessionReady(string dashboardSessionUrl); + public abstract void onVisitorReady(string dashboardVisitorUrl); + } +#endif + + [System.AttributeUsage(System.AttributeTargets.All, AllowMultiple = true)] + public class SL_COMPATIBILITY_NAME : System.Attribute + { + private string value; + + public SL_COMPATIBILITY_NAME(string value) + { + this.value = value; + } + } + + public class SetupOptionsBuilder + { + protected string ApiKey { get; set; } + protected int Fps { get; set; } + protected bool StartNewSession { get; set; } = false; + protected bool StartNewSessionAndUser { get; set; } = false; + + public SetupOptionsBuilder(string ApiKey) + { + this.ApiKey = ApiKey; + } + + public SetupOptionsBuilder SetFps(int Fps) + { + this.Fps = Fps; + return this; + } + + public SetupOptionsBuilder SetStartNewSession(bool StartNewSession) + { + this.StartNewSession = StartNewSession; + return this; + } + + public SetupOptionsBuilder SetStartNewSessionAndUser(bool StartNewSessionAndUser) + { + this.StartNewSessionAndUser = StartNewSessionAndUser; + return this; + } + + public SetupOptions Build() + { + return new SetupOptions(ApiKey, Fps, StartNewSession, StartNewSessionAndUser); + } + } + + /// Setup options used in SetupAndStartRecording(SetupOptions setupOptions) + [SL_COMPATIBILITY_NAME("name=SetupOptions;type=builder;members=smartlookAPIKey,fps,startNewSession,startNewSessionAndUser")] + public class SetupOptions + { + public string ApiKey; + public int Fps; + public bool StartNewSession; + public bool StartNewSessionAndUser; + + public SetupOptions(string ApiKey, int Fps, bool StartNewSession, bool StartNewSessionAndUser) + { + this.ApiKey = ApiKey; + this.Fps = Fps; + this.StartNewSession = StartNewSession; + this.StartNewSessionAndUser = StartNewSessionAndUser; + } + + } + + public static partial class Smartlook + { + public enum NavigationEventType { enter = 0, exit = 1 } + public enum RenderingModeType { native = 0, no_rendering = 1 } + [Serializable] + public enum EventTrackingMode { FULL_TRACKING, IGNORE_USER_INTERACTION, IGNORE_NAVIGATION_INTERACTION, IGNORE_RAGE_CLICKS, NO_TRACKING } + + [Serializable] + public class TrackingEventsWrapper + { + public List eventTrackingModes; + } + + /// Setup Smartlook and start recording. + /// The application (project) specific SDK key, available in your Smartlook dashboard. + [SL_COMPATIBILITY_NAME("name=setupAndStartRecording;type=func;params=smartlookAPIKey{string}")] + public static void SetupAndStartRecording(string key) { SetupAndStartRecordingInternal(key); } + + /// Setup Smartlook and start recording, with custom framerate. + /// The application (project) specific SDK key, available in your Smartlook dashboard. + /// Custom recording framerate. + [SL_COMPATIBILITY_NAME("name=setupAndStartRecording;type=func;params=smartlookAPIKey{string},fps{int};deprecated=yes")] + public static void SetupAndStartRecording(string key, int frameRate) { SetupAndStartRecordingInternal(key, frameRate); } + + /// Setup Smartlook and start recording with custom setup options. + /// Instance of SetupOptions class. + [SL_COMPATIBILITY_NAME("name=setupAndStartRecording;type=func;params=setupOptions{SetupOptions}")] + public static void SetupAndStartRecording(SetupOptions setupOptions) { SetupAndStartRecordingInternal(setupOptions); } + + /// Setup Smartlook. This method initializes Smartlook SDK, but does not start recording. To start recording, call StartRecording() method. + /// The application (project) specific SDK key, available in your Smartlook dashboard. + [SL_COMPATIBILITY_NAME("name=setup;type=func;params=smartlookAPIKey{string}")] + public static void Setup(string key) { SetupInternal(key); } + + /// Setup Smartlook. This method initializes Smartlook SDK, but does not start recording. To start recording, call StartRecording() method. + /// The application (project) specific SDK key, available in your Smartlook dashboard. + /// Custom recording framerate. + [SL_COMPATIBILITY_NAME("name=setup;type=func;params=smartlookAPIKey{string},fps{int};deprecated=yes")] + public static void Setup(string key, int frameRate) { SetupInternal(key, frameRate); } + + /// Setup Smartlook. This method initializes Smartlook SDK, but does not start recording. To start recording, call StartRecording() method. + /// Instance of SetupOptions class. + [SL_COMPATIBILITY_NAME("name=setup;type=func;params=setupOptions{SetupOptions}")] + public static void Setup(SetupOptions setupOptions) { SetupInternal(setupOptions); } + + /// Starts video and events recording. + [SL_COMPATIBILITY_NAME("name=startRecording;type=func")] + public static void StartRecording() { StartRecordingInternal(); } + + /// Stops video and events recording. + [SL_COMPATIBILITY_NAME("name=stopRecording;type=func")] + public static void StopRecording() { StopRecordingInternal(); } + + /// Current video and events recording state. + [SL_COMPATIBILITY_NAME("name=isRecording;type=func;returns=boolean")] + public static bool IsRecording() { return IsRecordingInternal(); } + + /// + /// Start timer for custom event. + /// This method does not record an event. It is the subsequent `RecordEvent` call with the same `eventId` that does. + /// In the resulting event, the property dictionaries of `start` and `record` are merged (the `record` values override the `start` ones if the key is the same), and a `duration` property is added to them. + /// + /// Name of the event. + /// Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified. + /// + /// eventId that can be used in StopTimedCustomEvent or CancelTimedCustomEvent methods + /// + [SL_COMPATIBILITY_NAME("name=startTimedCustomEvent;type=func;params=eventName{string},eventProperties{JSONObject};returns=string")] + [SL_COMPATIBILITY_NAME("name=startTimedCustomEvent;type=func;params=eventName{string},bundle{Bundle};returns=string")] + [SL_COMPATIBILITY_NAME("name=startTimedCustomEvent;type=func;params=eventName{string},eventProperties{string};returns=string")] + public static string StartTimedCustomEvent(string eventName, string properties) { return StartTimedCustomEventInternal(eventName, properties); } + + /// + /// Start timer for custom event. + /// This method does not record an event. It is the subsequent `RecordEvent` call with the same `eventId` that does. + /// In the resulting event, the property dictionaries of `start` and `record` are merged (the `record` values override the `start` ones if the key is the same), and a `duration` property is added to them. + /// + /// Name of the event. + /// + /// eventId that can be used in StopTimedCustomEvent or CancelTimedCustomEvent methods + /// + /// Name of the event. + [SL_COMPATIBILITY_NAME("name=startTimedCustomEvent;type=func;params=eventName{string};returns=string")] + public static string StartTimedCustomEvent(string eventName) { return StartTimedCustomEventInternal(eventName); } + + /// Stops timed event + /// Name of the event. + [SL_COMPATIBILITY_NAME("name=stopTimedCustomEvent;type=func;params=eventId{string}")] + public static void StopTimedCustomEvent(string eventId) { StopTimedCustomEventInternal(eventId); } + + /// Stops timed event + /// Name of the event. + /// Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified. + [SL_COMPATIBILITY_NAME("name=stopTimedCustomEvent;type=func;params=eventId{string},eventProperties{JSONObject}")] + [SL_COMPATIBILITY_NAME("name=stopTimedCustomEvent;type=func;params=eventId{string},bundle{Bundle}")] + [SL_COMPATIBILITY_NAME("name=stopTimedCustomEvent;type=func;params=eventId{string},eventProperties{string}")] + public static void StopTimedCustomEvent(string eventId, string properties) { StopTimedCustomEventInternal(eventId, properties); } + + /// Cancels timed event + /// Name of the event. + /// Cancellation Reason + [SL_COMPATIBILITY_NAME("name=cancelTimedCustomEvent;type=func;params=eventId{string},reason{string}")] + public static void CancelTimedCustomEvent(string eventId, string reason) { CancelTimedCustomEventInternal(eventId, reason); } + + /// Name of the event. + /// Cancellation Reason + /// Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified. + [SL_COMPATIBILITY_NAME("name=cancelTimedCustomEvent;type=func;params=eventId{string},reason{string},eventProperties{JSONObject}")] + [SL_COMPATIBILITY_NAME("name=cancelTimedCustomEvent;type=func;params=eventId{string},reason{string},bundle{Bundle}")] + [SL_COMPATIBILITY_NAME("name=cancelTimedCustomEvent;type=func;params=eventId{string},reason{string},eventProperties{string}")] + public static void CancelTimedCustomEvent(string eventId, string reason, string properties) { CancelTimedCustomEventInternal(eventId, reason, properties); } + + /// Records timestamped custom event. + /// Name that identifies the event. + [SL_COMPATIBILITY_NAME("name=trackCustomEvent;type=func;params=eventName{string}")] + public static void TrackCustomEvent(string eventName) { TrackCustomEventInternal(eventName); } + + /// Records timestamped custom event with optional properties. + /// Name that identifies the event. + /// Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified. + [SL_COMPATIBILITY_NAME("name=trackCustomEvent;type=func;params=eventName{string},eventProperties{JSONObject}")] + [SL_COMPATIBILITY_NAME("name=trackCustomEvent;type=func;params=eventName{string},bundle{Bundle}")] + [SL_COMPATIBILITY_NAME("name=trackCustomEvent;type=func;params=eventName{string},properties{string}")] + public static void TrackCustomEvent(string eventName, string properties) { TrackCustomEventInternal(eventName, properties); } + + /// Records navigation event + /// Name that identifies the screen user is currently on. + /// Navigation direction. Either entering the screen, or exiting the screen. + [SL_COMPATIBILITY_NAME("name=trackNavigationEvent;type=func;params=name{string},viewState{ViewState}")] + public static void TrackNavigationEvent(string screenName, NavigationEventType direction) { TrackNavigationEventInternal(screenName, (int)direction); } + + /// Global event properties are sent with every event. + /// Property key (name). + /// Property Value. + /// To change immutable property, you need to remove that property first. + [SL_COMPATIBILITY_NAME("name=setGlobalEventProperty;type=func;params=key{string},value{string},immutable{boolean}")] + public static void SetGlobalEventProperty(string key, string value, bool immutable) { SetGlobalEventPropertyInternal(key, value, immutable); } + + /// Global event properties are sent with every event. + /// Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified. + /// To change immutable property, you need to remove that property first. + [SL_COMPATIBILITY_NAME("name=setGlobalEventProperties;type=func;params=globalEventProperties{JSONObject},immutable{boolean}")] + [SL_COMPATIBILITY_NAME("name=setGlobalEventProperties;type=func;params=globalEventProperties{Bundle},immutable{boolean}")] + [SL_COMPATIBILITY_NAME("name=setGlobalEventProperties;type=func;params=globalEventProperties{string},immutable{boolean}")] + public static void SetGlobalEventProperties(string properties, bool immutable) { SetGlobalEventPropertiesInternal(properties, immutable); } + + /// Removes global event property + [SL_COMPATIBILITY_NAME("name=removeGlobalEventProperty;type=func;params=key{string}")] + public static void RemoveGlobalEventProperty(string key) { RemoveGlobalEventPropertyInternal(key); } + + /// Removes all global event properties + [SL_COMPATIBILITY_NAME("name=removeAllGlobalEventProperties;type=func")] + public static void RemoveAllGlobalEventProperties() { RemoveAllGlobalEventPropertiesInternal(); } + + /// Returns URL leading to the Dashboard player for the current Smartlook session. This URL can be access by everyone with the access rights to the dashboard. + /// If true recording starts at current time + [SL_COMPATIBILITY_NAME("name=getDashboardSessionUrl;type=func;params=withCurrentTimestamp{boolean};returns=string")] + public static string GetDashboardSessionUrl(bool withCurrentTimestamp) { return GetDashboardSessionUrlInternal(withCurrentTimestamp); } + + /// Returns URL leading to the Dashboard for current visitor. This URL can be access by everyone with the access rights to the dashboard. + [SL_COMPATIBILITY_NAME("name=getDashboardVisitorUrl;type=func;returns=string")] + public static string GetDashboardVisitorUrl() { return GetDashboardVisitorUrlInternal(); } + + /// Use this method to enter the **full sensitive mode**. No video is recorded, just analytics events. + [SL_COMPATIBILITY_NAME("name=startFullscreenSensitiveMode;type=func;deprecated=yes")] + public static void StartFullscreenSensitiveMode() { StartFullscreenSensitiveModeInternal(); } + + /// Use this method to leave the **full sensitive mode**. Video is recorded again. + [SL_COMPATIBILITY_NAME("name=stopFullscreenSensitiveMode;type=func;deprecated=yes")] + public static void StopFullscreenSensitiveMode() { StopFullscreenSensitiveModeInternal(); } + + [SL_COMPATIBILITY_NAME("name=setReferrer;type=func;params=referrer{string},source{string}")] + public static void SetReferrer(string referrer, string source) { SetReferrerInternal(referrer, source); } + + /// Enables/disabled Crashlytics integration + [SL_COMPATIBILITY_NAME("name=enableCrashlytics;type=func;params=enable{boolean}")] + public static void EnableCrashlytics(bool enable) { EnableCrashlyticsInternal(enable); } + + /// Resets the current session by implicitly starting a new session. Optionally, it also resets the user. + /// Indicates whether new session starts with new user. + [SL_COMPATIBILITY_NAME("name=resetSession;type=func;params=resetUser{boolean}")] + public static void ResetSession(bool resetUser) { ResetSessionInternal(resetUser); } + + /// By changing rendering mode you can adjust the way we render the application for recordings. + /// Options are RenderingModeType.native (normal recording), and RenderingModeType.no_rendering (gray screen). + [SL_COMPATIBILITY_NAME("name=setRenderingMode;type=func;params=renderingMode{RenderingMode}")] + public static void SetRenderingMode(RenderingModeType renderingMode) { SetRenderingModeInternal((int)renderingMode); } + + /// By changing rendering mode you can adjust the way we render the application for recordings. + /// Desired tracking mode. + [SL_COMPATIBILITY_NAME("name=setEventTrackingMode;type=func;params=eventTrackingMode{EventTrackingMode}")] + public static void setEventTrackingMode(EventTrackingMode eventTrackingMode) { SetEventTrackingModeInternal(eventTrackingMode.ToString()); } + + /// By changing rendering mode you can adjust the way we render the application for recordings. + /// Desired tracking modes. + [SL_COMPATIBILITY_NAME("name=setEventTrackingModes;type=func;params=eventTrackingModes{List[EventTrackingMode]}")] + public static void setEventTrackingModes(List eventTrackingModes) { SetEventTrackingModesInternal(handleEventModes(eventTrackingModes)); } + + private static string handleEventModes(List modes) + { + SmartlookUnity.Smartlook.TrackingEventsWrapper wrapper = new SmartlookUnity.Smartlook.TrackingEventsWrapper() { eventTrackingModes = modes.ConvertAll(mode => mode.ToString()) }; + string input = JsonUtility.ToJson(wrapper); + string array = "[" + input.Split('[')[1].Split(']')[0] + "]"; + return array; + } + + /// Set the app's user identifier. + /// The application-specific user identifier. + [SL_COMPATIBILITY_NAME("name=setUserIdentifier;type=func;params=identifier{string}")] + public static void SetUserIdentifier(string userIdentifier) { SetUserIdentifierInternal(userIdentifier); } + + /// Set the app's user identifier with additional properties. + /// The application-specific user identifier. + /// Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified. + [SL_COMPATIBILITY_NAME("name=setUserProperties;type=func;params=sessionProperties{JSONObject},immutable{boolean}")] + [SL_COMPATIBILITY_NAME("name=setUserProperties;type=func;params=sessionProperties{Bundle},immutable{boolean}")] + [SL_COMPATIBILITY_NAME("name=setUserProperties;type=func;params=sessionProperties{string},immutable{boolean}")] + public static void SetUserIdentifier(string userIdentifier, string properties) { SetUserIdentifierInternal(userIdentifier, properties); } + + /// Set integration listener + /// You provide your own subclass of IntegrationListener, with onSessionReady() and onVisitorReady callbacks, which are called when dashboard visitor url or dashboard session url changes. + [SL_COMPATIBILITY_NAME("name=registerIntegrationListener;type=func;params=integrationListener{IntegrationListener}")] + public static void RegisterIntegrationListener(IntegrationListener integrationListener) { RegisterIntegrationListenerInternal(integrationListener); } + + /// Unregister integration listener + [SL_COMPATIBILITY_NAME("name=unregisterIntegrationListener;type=func")] + public static void UnregisterIntegrationListener() { UnregisterIntegrationListenerInternal(); } + + public static void EnableLogging() + { +#if UNITY_ANDROID + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("enableLogging", "[ALL]"); + } +#endif + } + + // Internal + static partial void SetupAndStartRecordingInternal(string key); + static partial void SetupAndStartRecordingInternal(string key, int frameRate); + static partial void SetupAndStartRecordingInternal(SetupOptions setupOptions); + static partial void SetupInternal(string key); + static partial void SetupInternal(string key, int frameRate); + static partial void SetupInternal(SetupOptions setupOptions); + static partial void StartRecordingInternal(); + static partial void StopRecordingInternal(); + static partial void TrackCustomEventInternal(string eventName); + static partial void TrackCustomEventInternal(string eventName, string properties); + static partial void TrackNavigationEventInternal(string screenName, int direction); + static partial void SetGlobalEventPropertyInternal(string key, string value, bool immutable); + static partial void SetGlobalEventPropertiesInternal(string properties, bool immutable); + static partial void RemoveGlobalEventPropertyInternal(string key); + static partial void RemoveAllGlobalEventPropertiesInternal(); + static partial void StartFullscreenSensitiveModeInternal(); + static partial void StopFullscreenSensitiveModeInternal(); + static partial void SetReferrerInternal(string referrer, string source); + static partial void EnableCrashlyticsInternal(bool enable); + static partial void SetUserIdentifierInternal(string userIdentifier); + static partial void SetUserIdentifierInternal(string userIdentifier, string properties); + static partial void StopTimedCustomEventInternal(string eventId); + static partial void StopTimedCustomEventInternal(string eventId, string properties); + static partial void CancelTimedCustomEventInternal(string eventId, string reason); + static partial void CancelTimedCustomEventInternal(string eventId, string reason, string properties); + static partial void ResetSessionInternal(bool resetUser); + static partial void SetRenderingModeInternal(int renderingMode); + static partial void SetEventTrackingModeInternal(string eventTrackingMode); + static partial void SetEventTrackingModesInternal(string eventTrackingModes); + static partial void UnregisterIntegrationListenerInternal(); + + + public static bool IsRecordingInternal() + { +#if UNITY_ANDROID + if (Application.platform == RuntimePlatform.Android) + { + return getSLClass().CallStatic("isRecording"); + } +#endif + +#if UNITY_IOS + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return IsRecordingInternalIOS(); + } +#endif + return false; + } + + public static string GetDashboardSessionUrlInternal(bool withCurrentTimestamp) + { +#if UNITY_ANDROID + if (Application.platform == RuntimePlatform.Android) + { + return getSLClass().CallStatic("getDashboardSessionUrl", withCurrentTimestamp); + } +#endif + +#if UNITY_IOS + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return GetDashboardSessionUrlInternalIOS(withCurrentTimestamp); + } +#endif + return ""; + } + + public static string GetDashboardVisitorUrlInternal() + { +#if UNITY_ANDROID + if (Application.platform == RuntimePlatform.Android) + { + return getSLClass().CallStatic("getDashboardVisitorUrl"); + } +#endif + +#if UNITY_IOS + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return GetDashboardVisitorUrlInternalIOS(); + } +#endif + return ""; + } + + public static string StartTimedCustomEventInternal(string eventName) + { +#if UNITY_ANDROID + if (Application.platform == RuntimePlatform.Android) + { + return getSLClass().CallStatic("startTimedCustomEvent", eventName); + } +#endif + +#if UNITY_IOS + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return StartTimedCustomEventInternalIOS(eventName); + } +#endif + return ""; + } + + public static string StartTimedCustomEventInternal(string eventName, string properties) + { +#if UNITY_ANDROID + if (Application.platform == RuntimePlatform.Android) + { + return getSLClass().CallStatic("startTimedCustomEvent", eventName, properties); + } +#endif + +#if UNITY_IOS + if (Application.platform == RuntimePlatform.IPhonePlayer) { + return StartTimedCustomEventInternalIOS(eventName, properties); + } +#endif + return ""; + } + + private static void RegisterIntegrationListenerInternal(IntegrationListener integrationListener) + { +#if UNITY_ANDROID + if (Application.platform == RuntimePlatform.Android) + { + getSLClass().CallStatic("registerIntegrationListener", integrationListener); + } +#endif + +#if UNITY_IOS + if (Application.platform == RuntimePlatform.IPhonePlayer) { + RegisterIntegrationListenerInternalIOS(integrationListener); + } +#endif + } + } +} diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs.meta b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs.meta new file mode 100755 index 0000000..d0b6391 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9c57b92e3c12c1744824630b3f25d4f3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs b/Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs new file mode 100755 index 0000000..b75a6f3 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace SmartlookUnity +{ + [DefaultExecutionOrder(-5000)] + public class SmartlookInitializer : MonoBehaviour + { + [Tooltip("Reset Session")] + public bool ResetSession; + [Tooltip("Reset User")] + public bool ResetUser; + + private void Awake() + { + var settings = Settings.Instance; + if (settings == null) + { + Debug.LogError("Smartlook: Settings file missing. Open menu \"Smartlook/Edit Settings\" and provide desired settings"); + return; + } + if (string.IsNullOrEmpty(settings.ProjectKey)) + { + Debug.LogError("Smartlook: Project Key is missing. Open menu \"Smartlook/Edit Settings\" and provide correct Project Key."); + return; + } + Smartlook.SetupAndStartRecording(new SetupOptions(settings.ProjectKey, settings.FPS, ResetSession, ResetUser)); + } + } +} \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs.meta b/Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs.meta new file mode 100755 index 0000000..c3d09ff --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8f8ef78bee04409481341d4213ba58aa +timeCreated: 1680463181 \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef b/Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef new file mode 100755 index 0000000..a96eaf6 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef @@ -0,0 +1,14 @@ +{ + "name": "SmartlookAnalytics", + "rootNamespace": "SmartlookUnity", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef.meta b/Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef.meta new file mode 100755 index 0000000..1918c10 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 52537e7b5c9a4f64e9d1ef8878c041c3 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS.meta b/Assets/Smartlook/SmartlookAnalytics/iOS.meta new file mode 100755 index 0000000..08ac28c --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4059014ff79ac2447b98dcf3a704d802 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta new file mode 100755 index 0000000..b28c386 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 33894b541167eb34f99313d27a41826e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta new file mode 100755 index 0000000..f9bd2c9 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fb5a01a1e43952b408395b66bc8b5fce +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h new file mode 100755 index 0000000..19ff32f --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h @@ -0,0 +1,358 @@ +// +// Smartlook SDK, © 2022 Smartlook.com +// + +#import +#import + +@class SLSetupConfiguration; +@class SLIntegration; + + +// MARK: - Enumerations + +typedef NSString * SLNavigationType NS_TYPED_ENUM; +static SLNavigationType const _Nonnull SLNavigationTypeEnter = @"enter"; +static SLNavigationType const _Nonnull SLNavigationTypeExit = @"exit"; + +typedef NSString * SLRenderingMode NS_TYPED_ENUM; +static SLRenderingMode const _Nonnull SLRenderingModeNative = @"rendering-method-native"; +static SLRenderingMode const _Nonnull SLRenderingModeWireframe = @"rendering-method-wireframe"; +static SLRenderingMode const _Nonnull SLRenderingModeNoRendering = @"no-rendering"; + +typedef NSString * SLRenderingModeOption NS_TYPED_ENUM; +static SLRenderingModeOption const _Nonnull SLRenderingModeOptionNone = @"rendering-method-option-none"; +static SLRenderingModeOption const _Nonnull SLRenderingModeOptionColorWireframe = @"rendering-method-option-color-wireframe"; +static SLRenderingModeOption const _Nonnull SLRenderingModeOptionBlueprintWireframe = @"rendering-method-option-blueprint-wireframe"; +static SLRenderingModeOption const _Nonnull SLRenderingModeOptionIconBlueprintWireframe = @"rendering-method-option-icon-blueprint-wireframe"; + +typedef NSString * SLEventTrackingMode NS_TYPED_ENUM; +static SLEventTrackingMode const _Nonnull SLEventTrackingModeFullTracking = @"event-tracking-mode-full"; +static SLEventTrackingMode const _Nonnull SLEventTrackingModeIgnoreUserInteractionEvents = @"event-tracking-mode-ignore-user-interaction"; +static SLEventTrackingMode const _Nonnull SLEventTrackingModeNoTracking = @"event-tracking-mode-no-tracking"; +static SLEventTrackingMode const _Nonnull SLEventTrackingModeIgnoreNavigationInteractionEvents = @"event-tracking-mode-ignore-navigation-interaction-events"; +static SLEventTrackingMode const _Nonnull SLEventTrackingModeIgnoreRageClickEvents = @"event-tracking-mode-ignore-rage-click-events"; + +typedef NSString * SLRegion NS_TYPED_ENUM; +static SLRegion const _Nonnull SLRegionEU = @"eu"; +static SLRegion const _Nonnull SLRegionUS = @"us"; + +// MARK: - Dashboard URL change notification +static NSNotificationName const _Nonnull SLDashboardSessionURLChangedNotification = @"dashboard-session-URL-changed-notification"; +static NSNotificationName const _Nonnull SLDashboardVisitorURLChangedNotification = @"dashboard-visitor-URL-changed-notification"; + +// MARK: - Bridge technologies +typedef NSString * SLBridgeTechnology NS_TYPED_ENUM; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyReactNative = @"react_native"; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyFlutter = @"flutter"; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyCordova = @"cordova"; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyIonic = @"ionic"; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyUnity = @"unity"; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyUnreal = @"unreal"; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyXamarin = @"xamarin"; +static SLBridgeTechnology const _Nonnull SLBridgeTechnologyOther = @"other"; + + +// MARK: - Smartlook + +@interface Smartlook : NSObject + + +// MARK: - Setup + ++ (void)setupWithConfiguration:(nonnull SLSetupConfiguration *)configuration; + ++ (void)setupAndStartRecordingWithConfiguration:(nonnull SLSetupConfiguration *)configuration; + + +// MARK: - Reset session + ++ (void)resetSessionAndUser:(BOOL)resetUser; + + +// MARK: - Start/Stop Recording + ++ (void)startRecording; + ++ (void)stopRecording; + ++ (BOOL)isRecording; + + +// MARK: - Switch Rendering Mode + ++ (void)setRenderingModeTo:(nonnull SLRenderingMode)renderingMode; + ++ (void)setRenderingModeTo:(nonnull SLRenderingMode)renderingMode withOption:(nullable SLRenderingModeOption)renderingModeOption; + ++ (_Nonnull SLRenderingMode)currentRenderingMode; + ++ (_Nullable SLRenderingModeOption)currentRenderingModeOption; + + +// MARK: - Events Tracking Mode + + ++ (void)setEventTrackingModeTo:(SLEventTrackingMode _Nonnull)eventTrackingMode; + ++ (void)setEventTrackingModesTo:(NSArray * _Nonnull)eventTrackingModes; + ++ (nonnull NSArray *)currentEventTrackingModes; + + +// MARK: - Custom Events + ++ (void)trackCustomEventWithName:(nonnull NSString*)eventName; + ++ (void)trackCustomEventWithName:(nonnull NSString*)eventName props:(nullable NSDictionary*)props; + ++ (id _Nonnull)startTimedCustomEventWithName:(nonnull NSString*)eventName props:(nullable NSDictionary*)props; + ++ (void)trackTimedCustomEventWithEventId:(id _Nonnull)eventId props:(nullable NSDictionary*)props; + ++ (void)trackTimedCustomEventCancelWithEventId:(id _Nonnull)eventId reason:(NSString *_Nullable)reason props:(nullable NSDictionary*)props; + + +// MARK: - Session and Global Event Properties + ++ (void)setUserIdentifier:(nullable NSString*)userIdentifier; + +typedef NS_OPTIONS(NSUInteger, SLPropertyOption) { + SLPropertyOptionDefaults = 0, + SLPropertyOptionImmutable = 1 << 0 +}; + ++ (void)setSessionPropertyValue:(nonnull NSString *)value forName:(nonnull NSString *)name; + ++ (void)setSessionPropertyValue:(nonnull NSString *)value forName:(nonnull NSString *)name withOptions:(SLPropertyOption)options; + ++ (void)removeSessionPropertyForName:(nonnull NSString *)name; + ++ (void)clearSessionProperties; + ++ (void)setGlobalEventPropertyValue:(nonnull NSString *)value forName:(nonnull NSString *)name; + ++ (void)setGlobalEventPropertyValue:(nonnull NSString *)value forName:(nonnull NSString *)name withOptions:(SLPropertyOption)options; + ++ (void)removeGlobalEventPropertyForName:(nonnull NSString *)name; + ++ (void)clearGlobalEventProperties; + + +// MARK: - Sensitive Views + ++ (void)setBlacklistedItemsColor:(nonnull UIColor *)color; + ++ (void)registerWhitelistedObject:(nonnull id)object; + + ++ (void)unregisterWhitelistedObject:(nonnull id)object; + ++ (void)registerBlacklistedObject:(nonnull id)object; + ++ (void)unregisterBlacklistedObject:(nonnull id)object; + + +// MARK: - Dashboard session URL + ++ (nullable NSURL *)getDashboardSessionURLWithCurrentTimestamp:(BOOL)withTimestamp; + ++ (nullable NSURL *)getDashboardVisitorURL; + ++ (void)trackNavigationEventWithControllerId:(nonnull NSString *)controllerId type:(nonnull SLNavigationType)type; + + +// MARK: - Automated Integrations + ++ (void)enableIntegrations:(NSArray * _Nonnull)integrations; + ++ (void)disableIntegrations:(NSArray * _Nonnull)integrations; + ++ (void)disableAllIntegrations; + ++ (NSArray * _Nonnull)currentlyEnabledIntegrations; + +@end + + +// MARK: - Setup Configuration + +@interface SLSetupConfiguration : NSObject + +@property (nonatomic, strong) NSString * _Nonnull apiKey; + +@property (nonatomic) NSInteger framerate; + +@property (nonatomic) BOOL enableAdaptiveFramerate; + +@property (nonatomic, copy) NSArray * _Nullable eventTrackingModes; + +@property (nonatomic, strong) SLRenderingMode _Nullable renderingMode; + +@property (nonatomic, strong) SLRenderingModeOption _Nullable renderingModeOption; + +@property (nonatomic) BOOL resetSession; + +@property (nonatomic) BOOL resetSessionAndUser; + +@property (nonatomic, strong) SLRegion _Nullable regionalStorage; + +@property (nonatomic, strong) NSArray * _Nullable requestHeaderFilters; + +@property (nonatomic, strong) NSDictionary * _Nullable urlPatternFilters; + +@property (nonatomic, strong) NSArray * _Nullable URLQueryParamFilters; + +@property (nonatomic, copy) NSArray * _Nullable enableIntegrations; + +- (instancetype _Nonnull)initWithKey:(NSString *_Nonnull)apiKey; + +- (void)setInternalProps:(id _Nonnull)internalProps; + +@end + + +// MARK: - Sensitivity Protocols + +@protocol SLSensitiveData +@end + +@protocol SLNonSensitiveData +@end + + +// MARK: - Bridge Interface + +@interface SLWireframeDataItem : NSObject + +@property CGFloat left; +@property CGFloat top; +@property CGFloat width; +@property CGFloat height; + +@property (nonatomic, copy) UIColor * _Nonnull color; + +@end + + +@interface SLWireframeData : NSObject + +@property CGFloat width; +@property CGFloat height; + +@property (nonatomic, copy) NSArray * _Nonnull items; + +@end + + +@protocol SLBridgeInterface + +@property (nonatomic, copy) NSString * _Nullable sdkFramework; +@property (nonatomic, copy) NSString * _Nullable sdkFrameworkVersion; +@property (nonatomic, copy) NSString * _Nullable sdkFrameworkPluginVersion; + + +- (void)obtainWireframeDataWithCompletion:(void (^_Nonnull)(SLWireframeData * _Nullable result))completionHandler; + +@end + + +@interface Smartlook (BridgeInterface) + ++ (void)registerBridgeInterface:(NSObject * _Nonnull)bridgeInterface; + +@end + + +// MARK: - UIView category + +@interface UIView (Smartlook) + +@property (nonatomic, assign) IBInspectable BOOL slSensitive; + +@end + + +// MARK: - Integrations + +@interface SLIntegration : NSObject; + +@property (nonatomic, nonnull, readonly) id integratedObject; +@property (nonatomic, nonnull, readonly) NSString *name; + +@property (nonatomic, readonly) BOOL isValid; + +@end + + +// MARK: - Firebase Crashlytics + +static NSString * const _Nonnull SLIntegrationFirebaseCrashlyticsName = @"firebase_crashlytics"; + +@class FIRCrashlytics; + +@interface SLFirebaseCrashlyticsIntegration : SLIntegration +- (instancetype _Nonnull)initIntegrationWith:(FIRCrashlytics *_Nonnull)crashlytics; +@end; + + +// MARK: - Firebase Analytics + +static NSString * const _Nonnull SLIntegrationFirebaseAnalyticsName = @"firebase_analytics"; + +@interface SLFirebaseAnalyticsIntegration : SLIntegration +- (instancetype _Nonnull)initIntegrationWith:(Class _Nonnull)analyticsClass; +@end + + +// MARK: - Amplitude + +extern NSString * const _Nonnull SLIntegrationAmplitudeName; + +@class Amplitude; + +@interface SLAmplitudeIntegration : SLIntegration +- (instancetype _Nonnull)initIntegrationWith:(Amplitude *_Nonnull)amplitudeInstance; +@end + + +// MARK: - Mixpanel + +extern NSString * const _Nonnull SLIntegrationMixpanelName; + +@class Mixpanel; + +@interface SLMixpanelIntegration : SLIntegration +- (instancetype _Nonnull)initIntegrationWith:(Mixpanel *_Nonnull)mixpanelInstance; +@end + + +// MARK: - Heap + +extern NSString * const _Nonnull SLIntegrationHeapName; + +@interface SLHeapIntegration : SLIntegration +- (instancetype _Nonnull)initIntegrationWith:(Class _Nonnull)heapClass; +@end + + +// MARK: - Segment + +@class SEGBlockMiddleware; + + +typedef NS_OPTIONS(NSUInteger, SLSegmentMiddlewareOption) { + SLSegmentMiddlewareOptionTrack = 1 << 0, + SLSegmentMiddlewareOptionScreen = 1 << 1, + SLSegmentMiddlewareOptionIdentify = 1 << 2, + SLSegmentMiddlewareOptionAlias = 1 << 3, + SLSegmentMiddlewareOptionReset = 1 << 4, + SLSegmentMiddlewareOptionAll = 0xFF, + SLSegmentMiddlewareOptionDefault = SLSegmentMiddlewareOptionAll & ~SLSegmentMiddlewareOptionScreen & ~SLSegmentMiddlewareOptionAlias, +}; + +@interface Smartlook (Segment) + ++(SEGBlockMiddleware * _Nullable)segmentSourceMiddlewareWithOptions:(SLSegmentMiddlewareOption)option whereSEGResetEventTypeIs:(NSInteger)resetEventType; + +@end diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/SmartlookCBridge.h b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/SmartlookCBridge.h new file mode 100755 index 0000000..597db8c --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/SmartlookCBridge.h @@ -0,0 +1,57 @@ +// +// SmartlookCBridge.h +// Smartlook iOS SDK 1.2.0 +// +// Copyright © 2019 Smartsupp.com, s.r.o. All rights reserved. +// + +#pragma once + +typedef void (*DashboardUrlCallback)(const char* url); + +#if defined __cplusplus +extern "C" { +#endif + void SmartlookSetupAndStartRecording(const char* key); + void SmartlookSetupAndStartRecordingWithFramerate(const char* key, int framerate); + void SmartlookSetupAndStartRecordingWithOptions(const char* options); + void SmartlookSetup(const char* key); + void SmartlookSetupWithFramerate(const char* key, int framerate); + void SmartlookSetupWithOptions(const char* options); + void SmartlookStartRecording(); + void SmartlookStopRecording(); + void SmartlookStartFullscreenSensitiveMode(); + void SmartlookStopFullscreenSensitiveMode(); + void SmartlookSetReferrer(const char* referrer, const char* source); + void SmartlookTrackCustomEvent(const char* eventName); + void SmartlookTrackCustomEventWithProperties(const char* eventName, const char* properties); + void SmartlookTrackNavigationEvent(const char* screenName, int direction); + void SmartlookSetUserIdentifier(const char* userIdentifier); + void SmartlookSetUserIdentifierWithProperties(const char* userIdentifier, const char* properties); + bool SmartlookIsRecording(); + const char* SmartlookGetDashboardSessionUrl(bool withTimestamp) + const char* SmartlookGetDashboardVisitorUrl(); + void SmartlookEnableCrashlytics(bool enable); + const char* SmartlookStartTimedCustomEvent(const char* eventName); + const char* SmartlookStartTimedCustomEventWithProperties(const char* eventName, const char* properties); + void SmartlookStopTimedCustomEvent(const char* eventId); + void SmartlookStopTimedCustomEventWithProperties(const char* eventId, const char* properties); + void SmartlookCancelTimedCustomEvent(const char* eventId, const char* reason); + void SmartlookCancelTimedCustomEventWithProperties(const char* eventId, const char* reason, const char* properties); + void SmartlookSetGlobalEventProperty(const char* key, const char* value, bool immutable); + void SmartlookSetGlobalEventProperties(const char* properties, bool immutable); + void SmartlookRemoveGlobalEventProperty(const char* key); + void SmartlookRemoveAllGlobalEventProperties(); + void SmartlookResetSession(bool resetUser); + void SmartlookSetRenderingMode(int renderingMode); // native = 0, no rendering = 1 + void SmartlookSetEventTrackingMode(const char* eventTrackingMode); + void SmartlookSetEventTrackingModes(const char* eventTrackingModes); + + typedef void (*DashboardUrlCallback)(const char* url); + void SmartlookSetDashboardSessionUrlListener(DashboardUrlCallback callback); + void SmartlookSetDashboardVisitorUrlListener(DashboardUrlCallback callback); + void SmartlookUnregisterDashboardListener(); + +#if defined __cplusplus +}; +#endif diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist new file mode 100755 index 0000000..ffd80a1 Binary files /dev/null and b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist differ diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta new file mode 100755 index 0000000..95f250f --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9d04bd4826820c4791e2b9f2164b603 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule.meta new file mode 100755 index 0000000..52d3b2c --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99e005aebd892ce4698de31d560d8807 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc new file mode 100755 index 0000000..f91cac6 Binary files /dev/null and b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface new file mode 100755 index 0000000..9208bcb --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface @@ -0,0 +1,456 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) +// swift-module-flags: -target arm64-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Smartlook +import AVFoundation +import CoreData +import CoreGraphics +import CoreMedia +import CoreVideo +import Foundation +import MapKit +import MetalKit +import OSLog +import QuartzCore +import SceneKit +@_exported import Smartlook +import SpriteKit +import Swift +import UIKit +import Vision +import WebKit +import _Concurrency +extension UIKit.UIImage { + convenience public init?(color: Smartlook.PlatformColor, size: CoreGraphics.CGSize = CGSize(width: 1, height: 1)) +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(trackCustomEventWithName:) dynamic public class func objcTrackCustomEvent(name: Swift.String) + @objc(trackCustomEventWithName:props:) dynamic public class func trackCustomEvent(name: Swift.String, props: [Swift.String : Swift.String]? = nil) +} +extension Smartlook.Smartlook { + @objc(startTimedCustomEventWithName:props:) dynamic public class func startTimedCustomEvent(name: Swift.String, props: [Swift.String : Swift.String]? = nil) -> Swift.String + @objc(trackTimedCustomEventWithEventId:props:) dynamic public class func trackTimedCustomEvent(eventId: Swift.String, props: [Swift.String : Swift.String]? = nil) + @objc(trackTimedCustomEventCancelWithEventId:reason:props:) dynamic public class func trackTimedCustomEventCancel(eventId: Swift.String, reason: Swift.String?, props: [Swift.String : Swift.String]?) +} +extension Smartlook.Smartlook { + public enum NavigationEventType : Swift.String { + case enter + case exit + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } + public class func trackNavigationEvent(withControllerId name: Swift.String, type: Smartlook.Smartlook.NavigationEventType) +} +public typealias SLNavigationType = Foundation.NSString +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(trackNavigationEventWithControllerId:type:) dynamic public class func objcTrackNavigationEvent(controllerId: Swift.String, type: Foundation.NSString) +} +extension Smartlook.Smartlook { + public class func setGlobalEventProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption) + @objc(setGlobalEventPropertyValue:forName:immutable:) dynamic public class func setGlobalEventProperty(value: Swift.String, forName name: Swift.String, immutable: Swift.Bool = false) + @objc(removeGlobalEventPropertyForName:) dynamic public class func removeGlobalEventProperty(forName name: Swift.String) + @objc(clearGlobalEventProperties) dynamic public class func clearGlobalEventProperties() +} +extension Smartlook.Smartlook { + @available(*, deprecated, message: "Use `setGlobalEventProperty(value:forName:immutable:)` instead.") + @objc(setGlobalEventPropertyValue:forName:withOptions:) dynamic public class func objcSetGlobalEventProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption) + @available(swift, obsoleted: 0.1) + @objc(setGlobalEventPropertyValue:forName:) dynamic public class func objcSetGlobalEventProperty(value: Swift.String, forName name: Swift.String) +} +@objc(SLSensitiveData) public protocol SensitiveData { +} +@objc(SLNonSensitiveData) public protocol NonSensitiveData { +} +@_inheritsConvenienceInitializers @objc(Smartlook) public class Smartlook : ObjectiveC.NSObject { + @objc override dynamic public init() + @objc deinit +} +extension Smartlook.Smartlook { + @objc(SLAmplitudeIntegration) public class AmplitudeIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith amplitudeInstance: Any) + @objc deinit + } +} +extension Smartlook.Smartlook { + @objc(SLDashboardVisitorURLChangedNotification) dynamic public class var dashboardVisitorURLChanged: Foundation.NSNotification.Name { + @objc get + } + @objc(setUserIdentifier:) dynamic public class func setUserIdentifier(_ userIdentifier: Swift.String?) + @objc public enum SLPropertyOption : Swift.Int { + case `default` = 0 + case immutable = 1 + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } + } + public class func setSessionProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption? = nil) + @objc(removeSessionPropertyForName:) dynamic public class func removeSessionProperty(forName name: Swift.String) + @objc(clearSessionProperties) dynamic public class func clearSessionProperties() +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setSessionPropertyValue:forName:withOptions:) dynamic public class func objcSetSessionProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption) + @available(swift, obsoleted: 0.1) + @objc(setSessionPropertyValue:forName:) dynamic public class func objcSetSessionProperty(value: Swift.String, forName name: Swift.String) +} +extension Smartlook.Smartlook { + @objc(startRecording) dynamic public class func startRecording() + @objc(stopRecording) dynamic public class func stopRecording() + @objc(isRecording) dynamic public class func isRecording() -> Swift.Bool +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setEventTrackingModeTo:) dynamic public class func objcSetEventTrackingMode(to mode: Foundation.NSString) + @available(swift, obsoleted: 0.1) + @objc(setEventTrackingModesTo:) dynamic public class func objcSetEventTrackingModes(to modes: [Foundation.NSString]) + @available(swift, obsoleted: 0.1) + @objc(currentEventTrackingModes) dynamic public class func objcCurrentEventTrackingModes() -> [Foundation.NSString] +} +extension Smartlook.Smartlook { + @objc(SLDashboardSessionURLChangedNotification) dynamic public class var dashboardSessionURLChanged: Foundation.NSNotification.Name { + @objc get + } + @objc(resetSessionAndUser:) dynamic public class func resetSession(resetUser: Swift.Bool = false) +} +extension Smartlook.Smartlook { + @objc(SLFirebaseAnalyticsIntegration) public class FirebaseAnalyticsIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith analyticsClass: Swift.AnyClass) + @objc deinit + } +} +public enum BridgeTechnology : Swift.String { + case reactNative + case flutter + case cordova + case ionic + case unity + case unreal + case xamarin + case other + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } +} +infix operator <~ : AssignmentPrecedence +extension UIKit.UIView { + @objc @_Concurrency.MainActor(unsafe) dynamic public var slSensitive: Swift.Bool { + @objc get + @objc set + } +} +extension Smartlook.Smartlook { + @objc(getDashboardSessionURLWithCurrentTimestamp:) dynamic public class func getDashboardSessionURL(withCurrentTimestamp withTimestamp: Swift.Bool = false) -> Foundation.URL? + @objc(getDashboardVisitorURL) dynamic public class func getDashboardVisitorURL() -> Foundation.URL? +} +extension Smartlook.Smartlook { + @objc(setBlacklistedItemsColor:) dynamic public class func setBlacklistedItem(color: Smartlook.PlatformColor) + @objc(registerBlacklistedObject:) dynamic public class func registerBlacklisted(object: Any) + @objc(unregisterBlacklistedObject:) dynamic public class func unregisterBlacklisted(object: Any) + @objc(registerWhitelistedObject:) dynamic public class func registerWhitelisted(object: Any) + @objc(unregisterWhitelistedObject:) dynamic public class func unregisterWhitelisted(object: Any) +} +public typealias PlatformApplication = UIKit.UIApplication +public typealias PlatformScreen = UIKit.UIScreen +public typealias PlatformResponder = UIKit.UIResponder +public typealias PlatformImage = UIKit.UIImage +public typealias PlatformColor = UIKit.UIColor +public typealias PlatformFont = UIKit.UIFont +@available(iOS 13, tvOS 13, *) +public typealias PlatformScene = UIKit.UIScene +@available(iOS 13, tvOS 13, *) +public typealias PlatformWindowScene = UIKit.UIWindowScene +public typealias PlatformWindow = UIKit.UIWindow +public typealias PlatformView = UIKit.UIView +public typealias PlatformViewController = UIKit.UIViewController +public typealias PlatformImageView = UIKit.UIImageView +public typealias PlatformScrollView = UIKit.UIScrollView +public typealias PlatformCollectionView = UIKit.UICollectionView +public typealias PlatformTableView = UIKit.UITableView +public typealias PlatformTableViewCell = UIKit.UITableViewCell +public typealias PlatformActivityIndicatorView = UIKit.UIActivityIndicatorView +public typealias PlatformVisualEffectView = UIKit.UIVisualEffectView +public typealias PlatformLabel = UIKit.UILabel +public typealias PlatformTextView = UIKit.UITextView +public typealias PlatformTextField = UIKit.UITextField +public typealias PlatformButton = UIKit.UIButton +public typealias PlatformPageControl = UIKit.UIPageControl +public typealias PlatformImageRendererFormat = UIKit.UIGraphicsImageRendererFormat +public typealias PlatformImageRenderer = UIKit.UIGraphicsImageRenderer +public typealias PlatformBezierPath = UIKit.UIBezierPath +public typealias PlatformPickerView = UIKit.UIPickerView +public typealias PlatformRefreshControl = UIKit.UIRefreshControl +public typealias PlatformSwitch = UIKit.UISwitch +public typealias PlatformSlider = UIKit.UISlider +public typealias PlatformStepper = UIKit.UIStepper +public typealias PlatformDatePicker = UIKit.UIDatePicker +extension Smartlook.Smartlook { + @objc(SLMixpanelIntegration) public class MixpanelIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith mixpanelInstance: Any) + @objc deinit + } +} +extension Smartlook.Smartlook { + @objc(SLFirebaseCrashlyticsIntegration) public class FirebaseCrashlyticsIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith crashlytics: Any) + @objc deinit + } +} +extension Smartlook.Smartlook { + public enum RenderingModeOption : Swift.String { + case none + case colorWireframe + case blueprintWireframe + case iconBlueprintWireframe + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } + public enum RenderingMode : Swift.String { + case native + case wireframe + case noRendering + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } + public class func setRenderingMode(to renderingMode: Smartlook.Smartlook.RenderingMode, option: Smartlook.Smartlook.RenderingModeOption? = nil) + public class func currentRenderingMode() -> Smartlook.Smartlook.RenderingMode + public class func currentRenderingModeOption() -> Smartlook.Smartlook.RenderingModeOption +} +infix operator ?= : AssignmentPrecedence +infix operator ?+ : AdditionPrecedence +infix operator ≈ : DefaultPrecedence +extension Smartlook.Smartlook { + public enum EventTrackingMode : Swift.String, Swift.Codable { + case noTracking + case fullTracking + case ignoreUserInteractionEvents + case ignoreNavigationInteractionEvents + case ignoreRageClickEvents + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } +} +extension Smartlook.Smartlook.EventTrackingMode : Swift.Comparable { + public static func < (lhs: Smartlook.Smartlook.EventTrackingMode, rhs: Smartlook.Smartlook.EventTrackingMode) -> Swift.Bool +} +extension Smartlook.Smartlook { + public class func setEventTrackingMode(to eventTrackingMode: Smartlook.Smartlook.EventTrackingMode) + public class func setEventTrackingModes(to eventTrackingModes: [Smartlook.Smartlook.EventTrackingMode]) + public class func currentEventTrackingModes() -> [Smartlook.Smartlook.EventTrackingMode] +} +extension Smartlook.Smartlook { + @_inheritsConvenienceInitializers @objc(SLSetupConfiguration) public class ObjCSetupConfiguration : ObjectiveC.NSObject { + @objc public var apiKey: Swift.String + @objc public var framerate: Swift.Int + @objc public var enableAdaptiveFramerate: Swift.Bool + @objc public var renderingMode: Foundation.NSString? + @objc public var renderingModeOption: Foundation.NSString? + @objc public var eventTrackingModes: [Foundation.NSString]? + @objc public var resetSession: Swift.Bool + @objc public var resetSessionAndUser: Swift.Bool + @objc public var regionalStorage: Foundation.NSString? + @objc public var enableIntegrations: [Smartlook.Smartlook.Integration]? + @available(swift, obsoleted: 0.1) + @objc(setInternalProps:) public func objcSetInternalProperties(_ props: Any) + @objc(init) override dynamic public init() + @objc(initWithKey:) public init(withKey: Swift.String) + @available(swift, obsoleted: 0.1) + @objc(configurationWithKey:) public class func objcConfiguration(withKey key: Swift.String) -> Smartlook.Smartlook.ObjCSetupConfiguration + @objc deinit + } +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setupWithConfiguration:) dynamic public class func objcSetup(configuration: Smartlook.Smartlook.ObjCSetupConfiguration) + @available(swift, obsoleted: 0.1) + @objc(setupAndStartRecordingWithConfiguration:) dynamic public class func objcSetupAndStartRecording(configuration: Smartlook.Smartlook.ObjCSetupConfiguration) +} +extension QuartzCore.CATransform3D : Swift.Codable { + public init(from decoder: Swift.Decoder) throws + public func encode(to encoder: Swift.Encoder) throws +} +extension QuartzCore.CATransform3D : Swift.Equatable { + public static func == (lhs: QuartzCore.CATransform3D, rhs: QuartzCore.CATransform3D) -> Swift.Bool +} +extension Smartlook.Smartlook { + public enum Region : Swift.String { + case eu + case us + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } +} +extension Smartlook.Smartlook { + public struct SegmentMiddlewareOption : Swift.OptionSet { + public let rawValue: Swift.UInt32 + public init(rawValue: Swift.UInt32) + public static let track: Smartlook.Smartlook.SegmentMiddlewareOption + public static let screen: Smartlook.Smartlook.SegmentMiddlewareOption + public static let identify: Smartlook.Smartlook.SegmentMiddlewareOption + public static let alias: Smartlook.Smartlook.SegmentMiddlewareOption + public static let reset: Smartlook.Smartlook.SegmentMiddlewareOption + public static let all: Smartlook.Smartlook.SegmentMiddlewareOption + public static let `default`: Smartlook.Smartlook.SegmentMiddlewareOption + public typealias ArrayLiteralElement = Smartlook.Smartlook.SegmentMiddlewareOption + public typealias Element = Smartlook.Smartlook.SegmentMiddlewareOption + public typealias RawValue = Swift.UInt32 + } + public class func segmentSourceMiddleware(options option: Smartlook.Smartlook.SegmentMiddlewareOption, segResetEventType resetEventType: Swift.Int) -> Any? + @available(swift, obsoleted: 0.1) + @objc(segmentSourceMiddlewareWithOptions:whereSEGResetEventTypeIs:) dynamic public class func objcSegmentSourceMiddleware(options option: Swift.UInt32, segResetEventType resetEventType: Swift.Int) -> Any? +} +extension Smartlook.Smartlook { + public class SetupConfiguration { + final public let apiKey: Swift.String + public var framerate: Swift.Int? + public var enableAdaptiveFramerate: Swift.Bool? + public var renderingMode: Smartlook.Smartlook.RenderingMode? + public var renderingModeOption: Smartlook.Smartlook.RenderingModeOption? + public var eventTrackingModes: [Smartlook.Smartlook.EventTrackingMode]? + public var resetSession: Swift.Bool? + public var resetSessionAndUser: Swift.Bool? + public var regionalStorage: Smartlook.Smartlook.Region? + public var enableIntegrations: [Smartlook.Smartlook.Integration]? + public init(key: Swift.String) + public func setInternalProps(_ props: Any) + @objc deinit + } + public class func setup(configuration: Smartlook.Smartlook.SetupConfiguration) + public class func setupAndStartRecording(configuration: Smartlook.Smartlook.SetupConfiguration) +} +@_inheritsConvenienceInitializers @objc(SLWireframeDataItem) public class WireframeDataItem : ObjectiveC.NSObject { + @objc public var left: CoreGraphics.CGFloat + @objc public var top: CoreGraphics.CGFloat + @objc public var width: CoreGraphics.CGFloat + @objc public var height: CoreGraphics.CGFloat + @objc public var color: UIKit.UIColor? + @objc override dynamic public init() + @objc deinit +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setRenderingModeTo:) dynamic public class func objcSetRenderingMode(to mode: Foundation.NSString) + @available(swift, obsoleted: 0.1) + @objc(setRenderingModeTo:withOption:) dynamic public class func objcSetRenderingMode(to mode: Foundation.NSString, options: Foundation.NSString) + @available(swift, obsoleted: 0.1) + @objc(currentRenderingMode) dynamic public class func objcCurrentRenderingMode() -> Foundation.NSString + @available(swift, obsoleted: 0.1) + @objc(currentRenderingModeOption) dynamic public class func objcCurrentRenderingModeOption() -> Foundation.NSString +} +extension Smartlook.Smartlook { + @objc(enableIntegrations:) dynamic public class func enable(integrations: [Smartlook.Smartlook.Integration]) + @objc(disableIntegrations:) dynamic public class func disable(integrations: [Smartlook.Smartlook.Integration]) + @objc(disableAllIntegrations) dynamic public class func disableAllIntegrations() + @objc(currentlyEnabledIntegrations) dynamic public class func currentlyEnabledIntegrations() -> [Smartlook.Smartlook.Integration] +} +extension Smartlook.Smartlook { + @objc(SLHeapIntegration) public class HeapIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith heapClass: Swift.AnyClass) + @objc deinit + } +} +@_inheritsConvenienceInitializers @objc(SLWireframeData) public class WireframeData : ObjectiveC.NSObject { + @objc public var width: CoreGraphics.CGFloat + @objc public var height: CoreGraphics.CGFloat + @objc public var items: [Smartlook.WireframeDataItem] + @objc override dynamic public init() + @objc deinit +} +extension Smartlook.Smartlook { + @_inheritsConvenienceInitializers @objc(SLIntegration) public class Integration : ObjectiveC.NSObject { + @objc public var name: Swift.String { + @objc get + } + @objc public var isValid: Swift.Bool { + @objc get + } + @objc public var integratedObject: Any? + @objc override dynamic public init() + @objc deinit + } +} +extension Smartlook.Smartlook { + public static func registerDenied(_ object: Any) + public static func unregisterDenied(_ object: Any) + public static func registerAllowed(_ object: Any) + public static func unregisterAllowed(_ object: Any) + public static func isSensitive(_ view: Swift.AnyObject) -> Swift.Bool +} +@objc(SLBridgeInterface) public protocol BridgeInterface { + @objc var sdkFramework: Swift.String? { get set } + @objc var sdkFrameworkVersion: Swift.String? { get set } + @objc var sdkFrameworkPluginVersion: Swift.String? { get set } + @objc(obtainWireframeDataWithCompletion:) func obtainWireframeData(completion: (Smartlook.WireframeData?) -> Swift.Void) +} +extension Smartlook.Smartlook { + @objc(registerBridgeInterface:) dynamic public class func register(bridgeInterface: Smartlook.BridgeInterface) +} +extension Smartlook.Smartlook.NavigationEventType : Swift.Equatable {} +extension Smartlook.Smartlook.NavigationEventType : Swift.Hashable {} +extension Smartlook.Smartlook.NavigationEventType : Swift.RawRepresentable {} +extension Smartlook.Smartlook.SLPropertyOption : Swift.Equatable {} +extension Smartlook.Smartlook.SLPropertyOption : Swift.Hashable {} +extension Smartlook.Smartlook.SLPropertyOption : Swift.RawRepresentable {} +extension Smartlook.BridgeTechnology : Swift.Equatable {} +extension Smartlook.BridgeTechnology : Swift.Hashable {} +extension Smartlook.BridgeTechnology : Swift.RawRepresentable {} +extension Smartlook.Smartlook.RenderingModeOption : Swift.Equatable {} +extension Smartlook.Smartlook.RenderingModeOption : Swift.Hashable {} +extension Smartlook.Smartlook.RenderingModeOption : Swift.RawRepresentable {} +extension Smartlook.Smartlook.RenderingMode : Swift.Equatable {} +extension Smartlook.Smartlook.RenderingMode : Swift.Hashable {} +extension Smartlook.Smartlook.RenderingMode : Swift.RawRepresentable {} +extension Smartlook.Smartlook.EventTrackingMode : Swift.Hashable {} +extension Smartlook.Smartlook.EventTrackingMode : Swift.RawRepresentable {} +extension Smartlook.Smartlook.Region : Swift.Equatable {} +extension Smartlook.Smartlook.Region : Swift.Hashable {} +extension Smartlook.Smartlook.Region : Swift.RawRepresentable {} diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule new file mode 100755 index 0000000..9fab290 Binary files /dev/null and b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule differ diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc new file mode 100755 index 0000000..a7ccadb Binary files /dev/null and b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc differ diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface new file mode 100755 index 0000000..2755c79 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface @@ -0,0 +1,456 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) +// swift-module-flags: -target armv7-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name Smartlook +import AVFoundation +import CoreData +import CoreGraphics +import CoreMedia +import CoreVideo +import Foundation +import MapKit +import MetalKit +import OSLog +import QuartzCore +import SceneKit +@_exported import Smartlook +import SpriteKit +import Swift +import UIKit +import Vision +import WebKit +import _Concurrency +extension UIKit.UIImage { + convenience public init?(color: Smartlook.PlatformColor, size: CoreGraphics.CGSize = CGSize(width: 1, height: 1)) +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(trackCustomEventWithName:) dynamic public class func objcTrackCustomEvent(name: Swift.String) + @objc(trackCustomEventWithName:props:) dynamic public class func trackCustomEvent(name: Swift.String, props: [Swift.String : Swift.String]? = nil) +} +extension Smartlook.Smartlook { + @objc(startTimedCustomEventWithName:props:) dynamic public class func startTimedCustomEvent(name: Swift.String, props: [Swift.String : Swift.String]? = nil) -> Swift.String + @objc(trackTimedCustomEventWithEventId:props:) dynamic public class func trackTimedCustomEvent(eventId: Swift.String, props: [Swift.String : Swift.String]? = nil) + @objc(trackTimedCustomEventCancelWithEventId:reason:props:) dynamic public class func trackTimedCustomEventCancel(eventId: Swift.String, reason: Swift.String?, props: [Swift.String : Swift.String]?) +} +extension Smartlook.Smartlook { + public enum NavigationEventType : Swift.String { + case enter + case exit + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } + public class func trackNavigationEvent(withControllerId name: Swift.String, type: Smartlook.Smartlook.NavigationEventType) +} +public typealias SLNavigationType = Foundation.NSString +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(trackNavigationEventWithControllerId:type:) dynamic public class func objcTrackNavigationEvent(controllerId: Swift.String, type: Foundation.NSString) +} +extension Smartlook.Smartlook { + public class func setGlobalEventProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption) + @objc(setGlobalEventPropertyValue:forName:immutable:) dynamic public class func setGlobalEventProperty(value: Swift.String, forName name: Swift.String, immutable: Swift.Bool = false) + @objc(removeGlobalEventPropertyForName:) dynamic public class func removeGlobalEventProperty(forName name: Swift.String) + @objc(clearGlobalEventProperties) dynamic public class func clearGlobalEventProperties() +} +extension Smartlook.Smartlook { + @available(*, deprecated, message: "Use `setGlobalEventProperty(value:forName:immutable:)` instead.") + @objc(setGlobalEventPropertyValue:forName:withOptions:) dynamic public class func objcSetGlobalEventProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption) + @available(swift, obsoleted: 0.1) + @objc(setGlobalEventPropertyValue:forName:) dynamic public class func objcSetGlobalEventProperty(value: Swift.String, forName name: Swift.String) +} +@objc(SLSensitiveData) public protocol SensitiveData { +} +@objc(SLNonSensitiveData) public protocol NonSensitiveData { +} +@_inheritsConvenienceInitializers @objc(Smartlook) public class Smartlook : ObjectiveC.NSObject { + @objc override dynamic public init() + @objc deinit +} +extension Smartlook.Smartlook { + @objc(SLAmplitudeIntegration) public class AmplitudeIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith amplitudeInstance: Any) + @objc deinit + } +} +extension Smartlook.Smartlook { + @objc(SLDashboardVisitorURLChangedNotification) dynamic public class var dashboardVisitorURLChanged: Foundation.NSNotification.Name { + @objc get + } + @objc(setUserIdentifier:) dynamic public class func setUserIdentifier(_ userIdentifier: Swift.String?) + @objc public enum SLPropertyOption : Swift.Int { + case `default` = 0 + case immutable = 1 + public init?(rawValue: Swift.Int) + public typealias RawValue = Swift.Int + public var rawValue: Swift.Int { + get + } + } + public class func setSessionProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption? = nil) + @objc(removeSessionPropertyForName:) dynamic public class func removeSessionProperty(forName name: Swift.String) + @objc(clearSessionProperties) dynamic public class func clearSessionProperties() +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setSessionPropertyValue:forName:withOptions:) dynamic public class func objcSetSessionProperty(value: Swift.String, forName name: Swift.String, options: Smartlook.Smartlook.SLPropertyOption) + @available(swift, obsoleted: 0.1) + @objc(setSessionPropertyValue:forName:) dynamic public class func objcSetSessionProperty(value: Swift.String, forName name: Swift.String) +} +extension Smartlook.Smartlook { + @objc(startRecording) dynamic public class func startRecording() + @objc(stopRecording) dynamic public class func stopRecording() + @objc(isRecording) dynamic public class func isRecording() -> Swift.Bool +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setEventTrackingModeTo:) dynamic public class func objcSetEventTrackingMode(to mode: Foundation.NSString) + @available(swift, obsoleted: 0.1) + @objc(setEventTrackingModesTo:) dynamic public class func objcSetEventTrackingModes(to modes: [Foundation.NSString]) + @available(swift, obsoleted: 0.1) + @objc(currentEventTrackingModes) dynamic public class func objcCurrentEventTrackingModes() -> [Foundation.NSString] +} +extension Smartlook.Smartlook { + @objc(SLDashboardSessionURLChangedNotification) dynamic public class var dashboardSessionURLChanged: Foundation.NSNotification.Name { + @objc get + } + @objc(resetSessionAndUser:) dynamic public class func resetSession(resetUser: Swift.Bool = false) +} +extension Smartlook.Smartlook { + @objc(SLFirebaseAnalyticsIntegration) public class FirebaseAnalyticsIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith analyticsClass: Swift.AnyClass) + @objc deinit + } +} +public enum BridgeTechnology : Swift.String { + case reactNative + case flutter + case cordova + case ionic + case unity + case unreal + case xamarin + case other + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } +} +infix operator <~ : AssignmentPrecedence +extension UIKit.UIView { + @objc @_Concurrency.MainActor(unsafe) dynamic public var slSensitive: Swift.Bool { + @objc get + @objc set + } +} +extension Smartlook.Smartlook { + @objc(getDashboardSessionURLWithCurrentTimestamp:) dynamic public class func getDashboardSessionURL(withCurrentTimestamp withTimestamp: Swift.Bool = false) -> Foundation.URL? + @objc(getDashboardVisitorURL) dynamic public class func getDashboardVisitorURL() -> Foundation.URL? +} +extension Smartlook.Smartlook { + @objc(setBlacklistedItemsColor:) dynamic public class func setBlacklistedItem(color: Smartlook.PlatformColor) + @objc(registerBlacklistedObject:) dynamic public class func registerBlacklisted(object: Any) + @objc(unregisterBlacklistedObject:) dynamic public class func unregisterBlacklisted(object: Any) + @objc(registerWhitelistedObject:) dynamic public class func registerWhitelisted(object: Any) + @objc(unregisterWhitelistedObject:) dynamic public class func unregisterWhitelisted(object: Any) +} +public typealias PlatformApplication = UIKit.UIApplication +public typealias PlatformScreen = UIKit.UIScreen +public typealias PlatformResponder = UIKit.UIResponder +public typealias PlatformImage = UIKit.UIImage +public typealias PlatformColor = UIKit.UIColor +public typealias PlatformFont = UIKit.UIFont +@available(iOS 13, tvOS 13, *) +public typealias PlatformScene = UIKit.UIScene +@available(iOS 13, tvOS 13, *) +public typealias PlatformWindowScene = UIKit.UIWindowScene +public typealias PlatformWindow = UIKit.UIWindow +public typealias PlatformView = UIKit.UIView +public typealias PlatformViewController = UIKit.UIViewController +public typealias PlatformImageView = UIKit.UIImageView +public typealias PlatformScrollView = UIKit.UIScrollView +public typealias PlatformCollectionView = UIKit.UICollectionView +public typealias PlatformTableView = UIKit.UITableView +public typealias PlatformTableViewCell = UIKit.UITableViewCell +public typealias PlatformActivityIndicatorView = UIKit.UIActivityIndicatorView +public typealias PlatformVisualEffectView = UIKit.UIVisualEffectView +public typealias PlatformLabel = UIKit.UILabel +public typealias PlatformTextView = UIKit.UITextView +public typealias PlatformTextField = UIKit.UITextField +public typealias PlatformButton = UIKit.UIButton +public typealias PlatformPageControl = UIKit.UIPageControl +public typealias PlatformImageRendererFormat = UIKit.UIGraphicsImageRendererFormat +public typealias PlatformImageRenderer = UIKit.UIGraphicsImageRenderer +public typealias PlatformBezierPath = UIKit.UIBezierPath +public typealias PlatformPickerView = UIKit.UIPickerView +public typealias PlatformRefreshControl = UIKit.UIRefreshControl +public typealias PlatformSwitch = UIKit.UISwitch +public typealias PlatformSlider = UIKit.UISlider +public typealias PlatformStepper = UIKit.UIStepper +public typealias PlatformDatePicker = UIKit.UIDatePicker +extension Smartlook.Smartlook { + @objc(SLMixpanelIntegration) public class MixpanelIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith mixpanelInstance: Any) + @objc deinit + } +} +extension Smartlook.Smartlook { + @objc(SLFirebaseCrashlyticsIntegration) public class FirebaseCrashlyticsIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith crashlytics: Any) + @objc deinit + } +} +extension Smartlook.Smartlook { + public enum RenderingModeOption : Swift.String { + case none + case colorWireframe + case blueprintWireframe + case iconBlueprintWireframe + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } + public enum RenderingMode : Swift.String { + case native + case wireframe + case noRendering + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } + public class func setRenderingMode(to renderingMode: Smartlook.Smartlook.RenderingMode, option: Smartlook.Smartlook.RenderingModeOption? = nil) + public class func currentRenderingMode() -> Smartlook.Smartlook.RenderingMode + public class func currentRenderingModeOption() -> Smartlook.Smartlook.RenderingModeOption +} +infix operator ?= : AssignmentPrecedence +infix operator ?+ : AdditionPrecedence +infix operator ≈ : DefaultPrecedence +extension Smartlook.Smartlook { + public enum EventTrackingMode : Swift.String, Swift.Codable { + case noTracking + case fullTracking + case ignoreUserInteractionEvents + case ignoreNavigationInteractionEvents + case ignoreRageClickEvents + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } +} +extension Smartlook.Smartlook.EventTrackingMode : Swift.Comparable { + public static func < (lhs: Smartlook.Smartlook.EventTrackingMode, rhs: Smartlook.Smartlook.EventTrackingMode) -> Swift.Bool +} +extension Smartlook.Smartlook { + public class func setEventTrackingMode(to eventTrackingMode: Smartlook.Smartlook.EventTrackingMode) + public class func setEventTrackingModes(to eventTrackingModes: [Smartlook.Smartlook.EventTrackingMode]) + public class func currentEventTrackingModes() -> [Smartlook.Smartlook.EventTrackingMode] +} +extension Smartlook.Smartlook { + @_inheritsConvenienceInitializers @objc(SLSetupConfiguration) public class ObjCSetupConfiguration : ObjectiveC.NSObject { + @objc public var apiKey: Swift.String + @objc public var framerate: Swift.Int + @objc public var enableAdaptiveFramerate: Swift.Bool + @objc public var renderingMode: Foundation.NSString? + @objc public var renderingModeOption: Foundation.NSString? + @objc public var eventTrackingModes: [Foundation.NSString]? + @objc public var resetSession: Swift.Bool + @objc public var resetSessionAndUser: Swift.Bool + @objc public var regionalStorage: Foundation.NSString? + @objc public var enableIntegrations: [Smartlook.Smartlook.Integration]? + @available(swift, obsoleted: 0.1) + @objc(setInternalProps:) public func objcSetInternalProperties(_ props: Any) + @objc(init) override dynamic public init() + @objc(initWithKey:) public init(withKey: Swift.String) + @available(swift, obsoleted: 0.1) + @objc(configurationWithKey:) public class func objcConfiguration(withKey key: Swift.String) -> Smartlook.Smartlook.ObjCSetupConfiguration + @objc deinit + } +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setupWithConfiguration:) dynamic public class func objcSetup(configuration: Smartlook.Smartlook.ObjCSetupConfiguration) + @available(swift, obsoleted: 0.1) + @objc(setupAndStartRecordingWithConfiguration:) dynamic public class func objcSetupAndStartRecording(configuration: Smartlook.Smartlook.ObjCSetupConfiguration) +} +extension QuartzCore.CATransform3D : Swift.Codable { + public init(from decoder: Swift.Decoder) throws + public func encode(to encoder: Swift.Encoder) throws +} +extension QuartzCore.CATransform3D : Swift.Equatable { + public static func == (lhs: QuartzCore.CATransform3D, rhs: QuartzCore.CATransform3D) -> Swift.Bool +} +extension Smartlook.Smartlook { + public enum Region : Swift.String { + case eu + case us + public init?(rawValue: Swift.String) + public typealias RawValue = Swift.String + public var rawValue: Swift.String { + get + } + } +} +extension Smartlook.Smartlook { + public struct SegmentMiddlewareOption : Swift.OptionSet { + public let rawValue: Swift.UInt32 + public init(rawValue: Swift.UInt32) + public static let track: Smartlook.Smartlook.SegmentMiddlewareOption + public static let screen: Smartlook.Smartlook.SegmentMiddlewareOption + public static let identify: Smartlook.Smartlook.SegmentMiddlewareOption + public static let alias: Smartlook.Smartlook.SegmentMiddlewareOption + public static let reset: Smartlook.Smartlook.SegmentMiddlewareOption + public static let all: Smartlook.Smartlook.SegmentMiddlewareOption + public static let `default`: Smartlook.Smartlook.SegmentMiddlewareOption + public typealias ArrayLiteralElement = Smartlook.Smartlook.SegmentMiddlewareOption + public typealias Element = Smartlook.Smartlook.SegmentMiddlewareOption + public typealias RawValue = Swift.UInt32 + } + public class func segmentSourceMiddleware(options option: Smartlook.Smartlook.SegmentMiddlewareOption, segResetEventType resetEventType: Swift.Int) -> Any? + @available(swift, obsoleted: 0.1) + @objc(segmentSourceMiddlewareWithOptions:whereSEGResetEventTypeIs:) dynamic public class func objcSegmentSourceMiddleware(options option: Swift.UInt32, segResetEventType resetEventType: Swift.Int) -> Any? +} +extension Smartlook.Smartlook { + public class SetupConfiguration { + final public let apiKey: Swift.String + public var framerate: Swift.Int? + public var enableAdaptiveFramerate: Swift.Bool? + public var renderingMode: Smartlook.Smartlook.RenderingMode? + public var renderingModeOption: Smartlook.Smartlook.RenderingModeOption? + public var eventTrackingModes: [Smartlook.Smartlook.EventTrackingMode]? + public var resetSession: Swift.Bool? + public var resetSessionAndUser: Swift.Bool? + public var regionalStorage: Smartlook.Smartlook.Region? + public var enableIntegrations: [Smartlook.Smartlook.Integration]? + public init(key: Swift.String) + public func setInternalProps(_ props: Any) + @objc deinit + } + public class func setup(configuration: Smartlook.Smartlook.SetupConfiguration) + public class func setupAndStartRecording(configuration: Smartlook.Smartlook.SetupConfiguration) +} +@_inheritsConvenienceInitializers @objc(SLWireframeDataItem) public class WireframeDataItem : ObjectiveC.NSObject { + @objc public var left: CoreGraphics.CGFloat + @objc public var top: CoreGraphics.CGFloat + @objc public var width: CoreGraphics.CGFloat + @objc public var height: CoreGraphics.CGFloat + @objc public var color: UIKit.UIColor? + @objc override dynamic public init() + @objc deinit +} +extension Smartlook.Smartlook { + @available(swift, obsoleted: 0.1) + @objc(setRenderingModeTo:) dynamic public class func objcSetRenderingMode(to mode: Foundation.NSString) + @available(swift, obsoleted: 0.1) + @objc(setRenderingModeTo:withOption:) dynamic public class func objcSetRenderingMode(to mode: Foundation.NSString, options: Foundation.NSString) + @available(swift, obsoleted: 0.1) + @objc(currentRenderingMode) dynamic public class func objcCurrentRenderingMode() -> Foundation.NSString + @available(swift, obsoleted: 0.1) + @objc(currentRenderingModeOption) dynamic public class func objcCurrentRenderingModeOption() -> Foundation.NSString +} +extension Smartlook.Smartlook { + @objc(enableIntegrations:) dynamic public class func enable(integrations: [Smartlook.Smartlook.Integration]) + @objc(disableIntegrations:) dynamic public class func disable(integrations: [Smartlook.Smartlook.Integration]) + @objc(disableAllIntegrations) dynamic public class func disableAllIntegrations() + @objc(currentlyEnabledIntegrations) dynamic public class func currentlyEnabledIntegrations() -> [Smartlook.Smartlook.Integration] +} +extension Smartlook.Smartlook { + @objc(SLHeapIntegration) public class HeapIntegration : Smartlook.Smartlook.Integration { + @objc override public var name: Swift.String { + @objc get + } + @objc override public var isValid: Swift.Bool { + @objc get + } + @objc(initIntegrationWith:) public init(integrationWith heapClass: Swift.AnyClass) + @objc deinit + } +} +@_inheritsConvenienceInitializers @objc(SLWireframeData) public class WireframeData : ObjectiveC.NSObject { + @objc public var width: CoreGraphics.CGFloat + @objc public var height: CoreGraphics.CGFloat + @objc public var items: [Smartlook.WireframeDataItem] + @objc override dynamic public init() + @objc deinit +} +extension Smartlook.Smartlook { + @_inheritsConvenienceInitializers @objc(SLIntegration) public class Integration : ObjectiveC.NSObject { + @objc public var name: Swift.String { + @objc get + } + @objc public var isValid: Swift.Bool { + @objc get + } + @objc public var integratedObject: Any? + @objc override dynamic public init() + @objc deinit + } +} +extension Smartlook.Smartlook { + public static func registerDenied(_ object: Any) + public static func unregisterDenied(_ object: Any) + public static func registerAllowed(_ object: Any) + public static func unregisterAllowed(_ object: Any) + public static func isSensitive(_ view: Swift.AnyObject) -> Swift.Bool +} +@objc(SLBridgeInterface) public protocol BridgeInterface { + @objc var sdkFramework: Swift.String? { get set } + @objc var sdkFrameworkVersion: Swift.String? { get set } + @objc var sdkFrameworkPluginVersion: Swift.String? { get set } + @objc(obtainWireframeDataWithCompletion:) func obtainWireframeData(completion: (Smartlook.WireframeData?) -> Swift.Void) +} +extension Smartlook.Smartlook { + @objc(registerBridgeInterface:) dynamic public class func register(bridgeInterface: Smartlook.BridgeInterface) +} +extension Smartlook.Smartlook.NavigationEventType : Swift.Equatable {} +extension Smartlook.Smartlook.NavigationEventType : Swift.Hashable {} +extension Smartlook.Smartlook.NavigationEventType : Swift.RawRepresentable {} +extension Smartlook.Smartlook.SLPropertyOption : Swift.Equatable {} +extension Smartlook.Smartlook.SLPropertyOption : Swift.Hashable {} +extension Smartlook.Smartlook.SLPropertyOption : Swift.RawRepresentable {} +extension Smartlook.BridgeTechnology : Swift.Equatable {} +extension Smartlook.BridgeTechnology : Swift.Hashable {} +extension Smartlook.BridgeTechnology : Swift.RawRepresentable {} +extension Smartlook.Smartlook.RenderingModeOption : Swift.Equatable {} +extension Smartlook.Smartlook.RenderingModeOption : Swift.Hashable {} +extension Smartlook.Smartlook.RenderingModeOption : Swift.RawRepresentable {} +extension Smartlook.Smartlook.RenderingMode : Swift.Equatable {} +extension Smartlook.Smartlook.RenderingMode : Swift.Hashable {} +extension Smartlook.Smartlook.RenderingMode : Swift.RawRepresentable {} +extension Smartlook.Smartlook.EventTrackingMode : Swift.Hashable {} +extension Smartlook.Smartlook.EventTrackingMode : Swift.RawRepresentable {} +extension Smartlook.Smartlook.Region : Swift.Equatable {} +extension Smartlook.Smartlook.Region : Swift.Hashable {} +extension Smartlook.Smartlook.Region : Swift.RawRepresentable {} diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule new file mode 100755 index 0000000..ade0627 Binary files /dev/null and b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule differ diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/module.modulemap b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/module.modulemap new file mode 100755 index 0000000..490868b --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/module.modulemap @@ -0,0 +1,8 @@ +// +// Smartlook SDK, © 2022 Smartlook.com +// + +framework module Smartlook { + umbrella header "Smartlook.h" + requires objc +} diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook new file mode 100755 index 0000000..83df52b Binary files /dev/null and b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook differ diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature.meta new file mode 100755 index 0000000..172a3b9 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b95d672953d016f4dbab99e59b7a5d0e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature/CodeResources b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature/CodeResources new file mode 100755 index 0000000..cbecc84 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature/CodeResources @@ -0,0 +1,237 @@ + + + + + files + + Headers/Smartlook.h + + r6XbMWNSwbkrvOa8bJSdW8HKNIk= + + Headers/SmartlookCBridge.h + + pwne0rBASnuuf8BgvRiFKuzWJRg= + + Info.plist + + 3J/5Xa4n4qx8rJI/ZMaqNVlU7XI= + + Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc + + sscLtAQhiy8/76Cno5avJ5U7VAA= + + Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface + + vzwvBCjZS/w/kE8luvlQ8Mk1kuE= + + Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule + + 0/BafHdO1SP3NW4pSkZ/E/aTHHE= + + Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc + + P/NU8TBFILkBPoJzVXpWZweNRAc= + + Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface + + 3E+oHnq6ZtLLpMw5b39UGib2HSs= + + Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule + + bDuSRQJG+SOszvsTNtklq4fzOAc= + + Modules/module.modulemap + + WJc6kjwz3eL/wIUY+ZSJnM+A0Lg= + + + files2 + + Headers/Smartlook.h + + hash + + r6XbMWNSwbkrvOa8bJSdW8HKNIk= + + hash2 + + aSlcyxpxzYeixpazDg8GJo229A3OK8URDS47dCEdTEk= + + + Headers/SmartlookCBridge.h + + hash + + pwne0rBASnuuf8BgvRiFKuzWJRg= + + hash2 + + D8G+InlD8teEUes9dcEQ3E7wKunIoImEuryJnScU3Fg= + + + Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc + + hash + + sscLtAQhiy8/76Cno5avJ5U7VAA= + + hash2 + + 9tmncEwsEimfNP/+XnHBZ0EYHja1k3+s72HovfNgoFE= + + + Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface + + hash + + vzwvBCjZS/w/kE8luvlQ8Mk1kuE= + + hash2 + + nMkbLW1kx+pDAPezywN3KQH52XcOxdzv2Dir9PZejTA= + + + Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule + + hash + + 0/BafHdO1SP3NW4pSkZ/E/aTHHE= + + hash2 + + 78YxRN/cJWlzrz27Eow5k9viRQZKNrb5RF8PcvCAvWs= + + + Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc + + hash + + P/NU8TBFILkBPoJzVXpWZweNRAc= + + hash2 + + jIgjWaz53e6nOJzWij8tm3X5kkRmsD/TT0L/vADZ6uw= + + + Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface + + hash + + 3E+oHnq6ZtLLpMw5b39UGib2HSs= + + hash2 + + mCH57AxU/c2X2D1KvaQ9IzH+Fem+T94Yc1v9W/+be7c= + + + Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule + + hash + + bDuSRQJG+SOszvsTNtklq4fzOAc= + + hash2 + + ARc3F/cBf2PVgfvTBoBoHb8IL7/O1dtGqbNIRFeDMeI= + + + Modules/module.modulemap + + hash + + WJc6kjwz3eL/wIUY+ZSJnM+A0Lg= + + hash2 + + uhMe5HspvDwkjMMWBJspvWF4nJq7RglCNw/y6B2xMDQ= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + +