Compare commits
2 Commits
705d6b4825
...
4976bf14ca
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4976bf14ca | ||
|
|
cb82705189 |
@@ -48,7 +48,7 @@ namespace Darkmatter.Features.Coloring.UI
|
|||||||
_canvasGroup.interactable = true;
|
_canvasGroup.interactable = true;
|
||||||
_canvasGroup.blocksRaycasts = true;
|
_canvasGroup.blocksRaycasts = true;
|
||||||
|
|
||||||
_activeSequence = Sequence.Create()
|
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||||
.Group(Tween.UIAnchoredPosition(animatedRoot, _shownAnchoredPos, showDuration, Ease.OutBack))
|
.Group(Tween.UIAnchoredPosition(animatedRoot, _shownAnchoredPos, showDuration, Ease.OutBack))
|
||||||
.Group(Tween.Alpha(_canvasGroup, 1f, showDuration, Ease.OutQuad));
|
.Group(Tween.Alpha(_canvasGroup, 1f, showDuration, Ease.OutQuad));
|
||||||
return _activeSequence;
|
return _activeSequence;
|
||||||
@@ -62,7 +62,7 @@ namespace Darkmatter.Features.Coloring.UI
|
|||||||
_canvasGroup.blocksRaycasts = false;
|
_canvasGroup.blocksRaycasts = false;
|
||||||
|
|
||||||
var hiddenPos = _shownAnchoredPos + hiddenOffset;
|
var hiddenPos = _shownAnchoredPos + hiddenOffset;
|
||||||
_activeSequence = Sequence.Create()
|
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||||
.Group(Tween.UIAnchoredPosition(animatedRoot, hiddenPos, hideDuration, Ease.InQuad))
|
.Group(Tween.UIAnchoredPosition(animatedRoot, hiddenPos, hideDuration, Ease.InQuad))
|
||||||
.Group(Tween.Alpha(_canvasGroup, 0f, hideDuration, Ease.InQuad))
|
.Group(Tween.Alpha(_canvasGroup, 0f, hideDuration, Ease.InQuad))
|
||||||
.ChainCallback(() => gameObject.SetActive(false));
|
.ChainCallback(() => gameObject.SetActive(false));
|
||||||
|
|||||||
@@ -79,6 +79,13 @@ namespace Darkmatter.Features.GameplayFlow.Systems
|
|||||||
_scopeCts = CancellationTokenSource.CreateLinkedTokenSource(cancellation);
|
_scopeCts = CancellationTokenSource.CreateLinkedTokenSource(cancellation);
|
||||||
var ct = _scopeCts.Token;
|
var ct = _scopeCts.Token;
|
||||||
|
|
||||||
|
// The in-editor AdMob placeholder interstitial pauses via Time.timeScale = 0 and is
|
||||||
|
// shown fire-and-forget during the Colorbook->Gameplay swap; the Colorbook scene unload
|
||||||
|
// destroys the placeholder before it can resume, stranding timeScale at 0 (gameplay and
|
||||||
|
// scaled tweens frozen). Gameplay must never start frozen, so restore it on entry.
|
||||||
|
// No-op on device, where the real ad clients don't touch timeScale.
|
||||||
|
Time.timeScale = 1f;
|
||||||
|
|
||||||
_templateId = _progression.LastOpenedTemplateId;
|
_templateId = _progression.LastOpenedTemplateId;
|
||||||
if (string.IsNullOrEmpty(_templateId))
|
if (string.IsNullOrEmpty(_templateId))
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ namespace Darkmatter.Features.ShapeBuilder.Systems
|
|||||||
private GameObject _piecePrefab;
|
private GameObject _piecePrefab;
|
||||||
private IDisposable _snappedSub;
|
private IDisposable _snappedSub;
|
||||||
private IDisposable _unsnappedSub;
|
private IDisposable _unsnappedSub;
|
||||||
|
private readonly CancellationTokenSource _lifetimeCts = new();
|
||||||
|
|
||||||
private readonly List<string> _snappedPieceIds = new();
|
private readonly List<string> _snappedPieceIds = new();
|
||||||
private readonly List<ShapePiece> _pieces = new();
|
private readonly List<ShapePiece> _pieces = new();
|
||||||
@@ -174,7 +175,32 @@ namespace Darkmatter.Features.ShapeBuilder.Systems
|
|||||||
private void CheckIfShapeAssembled()
|
private void CheckIfShapeAssembled()
|
||||||
{
|
{
|
||||||
if (_expected > 0 && _snapped == _expected)
|
if (_expected > 0 && _snapped == _expected)
|
||||||
_bus.Publish(new ShapeAssembledSignal(_currentTemplateId));
|
PublishAssembledWhenSettledAsync().Forget();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async UniTaskVoid PublishAssembledWhenSettledAsync()
|
||||||
|
{
|
||||||
|
var templateId = _currentTemplateId;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Hold the handoff to coloring until the final piece's snap
|
||||||
|
// animation has finished playing.
|
||||||
|
await UniTask.WaitWhile(AnyPieceSettling, cancellationToken: _lifetimeCts.Token);
|
||||||
|
}
|
||||||
|
catch (OperationCanceledException)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (templateId == _currentTemplateId)
|
||||||
|
_bus.Publish(new ShapeAssembledSignal(templateId));
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool AnyPieceSettling()
|
||||||
|
{
|
||||||
|
foreach (var piece in _pieces)
|
||||||
|
if (piece != null && piece.IsSnapSettling) return true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async UniTask TryLoadPiecePrefabAsync(CancellationToken ct)
|
private async UniTask TryLoadPiecePrefabAsync(CancellationToken ct)
|
||||||
@@ -241,6 +267,8 @@ namespace Darkmatter.Features.ShapeBuilder.Systems
|
|||||||
{
|
{
|
||||||
_snappedSub?.Dispose();
|
_snappedSub?.Dispose();
|
||||||
_unsnappedSub?.Dispose();
|
_unsnappedSub?.Dispose();
|
||||||
|
_lifetimeCts.Cancel();
|
||||||
|
_lifetimeCts.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
|||||||
_canvasGroup.interactable = true;
|
_canvasGroup.interactable = true;
|
||||||
_canvasGroup.blocksRaycasts = true;
|
_canvasGroup.blocksRaycasts = true;
|
||||||
|
|
||||||
_activeSequence = Sequence.Create()
|
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||||
.Group(Tween.UIAnchoredPosition(animatedRoot, _shownAnchoredPos, showDuration, Ease.OutBack))
|
.Group(Tween.UIAnchoredPosition(animatedRoot, _shownAnchoredPos, showDuration, Ease.OutBack))
|
||||||
.Group(Tween.Alpha(_canvasGroup, 1f, showDuration, Ease.OutQuad));
|
.Group(Tween.Alpha(_canvasGroup, 1f, showDuration, Ease.OutQuad));
|
||||||
return _activeSequence;
|
return _activeSequence;
|
||||||
@@ -67,7 +67,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
|||||||
_canvasGroup.blocksRaycasts = false;
|
_canvasGroup.blocksRaycasts = false;
|
||||||
|
|
||||||
var hiddenPos = _shownAnchoredPos + hiddenOffset;
|
var hiddenPos = _shownAnchoredPos + hiddenOffset;
|
||||||
_activeSequence = Sequence.Create()
|
_activeSequence = Sequence.Create(useUnscaledTime: true)
|
||||||
.Group(Tween.UIAnchoredPosition(animatedRoot, hiddenPos, hideDuration, Ease.InQuad))
|
.Group(Tween.UIAnchoredPosition(animatedRoot, hiddenPos, hideDuration, Ease.InQuad))
|
||||||
.Group(Tween.Alpha(_canvasGroup, 0f, hideDuration, Ease.InQuad))
|
.Group(Tween.Alpha(_canvasGroup, 0f, hideDuration, Ease.InQuad))
|
||||||
.ChainCallback(() => gameObject.SetActive(false));
|
.ChainCallback(() => gameObject.SetActive(false));
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Cysharp.Threading.Tasks;
|
||||||
using Darkmatter.Core.Contracts.Features.History;
|
using Darkmatter.Core.Contracts.Features.History;
|
||||||
using Darkmatter.Core.Contracts.Services.Audio;
|
using Darkmatter.Core.Contracts.Services.Audio;
|
||||||
using Darkmatter.Core.Data.Signals.Features.ShapeBuilder;
|
using Darkmatter.Core.Data.Signals.Features.ShapeBuilder;
|
||||||
@@ -45,6 +46,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
|||||||
private Vector2 _dragSizeDelta;
|
private Vector2 _dragSizeDelta;
|
||||||
private Vector3 _dragLocalScale;
|
private Vector3 _dragLocalScale;
|
||||||
private Sequence _previewSeq;
|
private Sequence _previewSeq;
|
||||||
|
private Sequence _snapSettle;
|
||||||
private bool _locked;
|
private bool _locked;
|
||||||
private bool _inPreview;
|
private bool _inPreview;
|
||||||
|
|
||||||
@@ -57,6 +59,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
|||||||
public Vector2 TrayPosition => _trayPos;
|
public Vector2 TrayPosition => _trayPos;
|
||||||
public Vector2 TraySize => _traySize;
|
public Vector2 TraySize => _traySize;
|
||||||
public SlotMarker ActiveSlot => _activeSlot;
|
public SlotMarker ActiveSlot => _activeSlot;
|
||||||
|
public bool IsSnapSettling => _snapSettle.isAlive;
|
||||||
|
|
||||||
public void ReassignActiveSlot(SlotMarker slot) => _activeSlot = slot;
|
public void ReassignActiveSlot(SlotMarker slot) => _activeSlot = slot;
|
||||||
|
|
||||||
@@ -236,12 +239,43 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
|||||||
|
|
||||||
internal void SnapInternal()
|
internal void SnapInternal()
|
||||||
{
|
{
|
||||||
|
_locked = true;
|
||||||
|
image.raycastTarget = false;
|
||||||
|
if (_activeSlot != null) _activeSlot.SetOccupied(true);
|
||||||
|
|
||||||
|
_sfx.Play(SfxId.ShapeSnap);
|
||||||
|
|
||||||
|
// Let the in-flight settle animation play to completion before locking the
|
||||||
|
// piece into its slot, so the final piece lands smoothly instead of being
|
||||||
|
// cut short the instant it's dropped.
|
||||||
|
if (_previewSeq.isAlive)
|
||||||
|
{
|
||||||
|
_snapSettle = _previewSeq;
|
||||||
|
SettleThenFinalizeAsync().Forget();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FinalizeSnapPose();
|
||||||
|
}
|
||||||
|
|
||||||
|
_bus.Publish(new PieceSnappedSignal(_shape.Id));
|
||||||
|
}
|
||||||
|
|
||||||
|
private async UniTaskVoid SettleThenFinalizeAsync()
|
||||||
|
{
|
||||||
|
await _snapSettle; // completes when the settle finishes or is stopped
|
||||||
|
FinalizeSnapPose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FinalizeSnapPose()
|
||||||
|
{
|
||||||
|
if (this == null || RectTransform == null) return;
|
||||||
|
_snapSettle = default;
|
||||||
|
// Bail if the piece was unsnapped (undo) or invalidated while settling.
|
||||||
|
if (!_locked || _activeSlot == null) return;
|
||||||
StopPreviewTweens();
|
StopPreviewTweens();
|
||||||
Lock();
|
Lock();
|
||||||
FillSlot();
|
FillSlot();
|
||||||
|
|
||||||
_sfx.Play(SfxId.ShapeSnap);
|
|
||||||
_bus.Publish(new PieceSnappedSignal(_shape.Id));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FillSlot()
|
private void FillSlot()
|
||||||
@@ -267,6 +301,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI
|
|||||||
_activeSlot = null;
|
_activeSlot = null;
|
||||||
|
|
||||||
Tween.StopAll(onTarget: RectTransform);
|
Tween.StopAll(onTarget: RectTransform);
|
||||||
|
_snapSettle = default;
|
||||||
|
|
||||||
RectTransform.SetParent(parent, worldPositionStays: false);
|
RectTransform.SetParent(parent, worldPositionStays: false);
|
||||||
if (siblingIndex >= 0) RectTransform.SetSiblingIndex(siblingIndex);
|
if (siblingIndex >= 0) RectTransform.SetSiblingIndex(siblingIndex);
|
||||||
|
|||||||
@@ -498,6 +498,11 @@ namespace Darkmatter.Services.Ads
|
|||||||
{
|
{
|
||||||
resolved = true; // stop the watchdog within one poll
|
resolved = true; // stop the watchdog within one poll
|
||||||
unsubscribe(onClosed, onFailed);
|
unsubscribe(onClosed, onFailed);
|
||||||
|
// The in-editor placeholder ad pauses via Time.timeScale = 0; if its resume is
|
||||||
|
// dropped (e.g. the host scene unloads before its close fires) the game stays
|
||||||
|
// frozen. The ad layer owns that pause, so never leave it stranded. No-op on
|
||||||
|
// device, where real ad clients don't touch timeScale.
|
||||||
|
Time.timeScale = 1f;
|
||||||
ScheduleReload(format);
|
ScheduleReload(format);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -567,7 +567,7 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 1
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 8713146880366692101}
|
- {fileID: 8713146880366692101}
|
||||||
- {fileID: 4954180409987358819}
|
- {fileID: 4954180409987358819}
|
||||||
|
|||||||
@@ -101,8 +101,8 @@ RectTransform:
|
|||||||
m_GameObject: {fileID: 3594252390097820856}
|
m_GameObject: {fileID: 3594252390097820856}
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 1
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 5980705335490319841}
|
- {fileID: 5980705335490319841}
|
||||||
- {fileID: 3827914630025194271}
|
- {fileID: 3827914630025194271}
|
||||||
|
|||||||
@@ -12,10 +12,11 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 52d6fdba64cc3491880636e34ed593d0, type: 3}
|
m_Script: {fileID: 11500000, guid: 52d6fdba64cc3491880636e34ed593d0, type: 3}
|
||||||
m_Name: ShapeBuilderConfig
|
m_Name: ShapeBuilderConfig
|
||||||
m_EditorClassIdentifier: Core::Darkmatter.Core.Data.Static.Features.ShapeBuilder.ShapeBuilderConfig
|
m_EditorClassIdentifier: Core::Darkmatter.Core.Data.Static.Features.ShapeBuilder.ShapeBuilderConfig
|
||||||
snapRadius: 100
|
snapRadius: 200
|
||||||
previewRadius: 200
|
previewRadius: 300
|
||||||
snapDuration: 0.25
|
snapDuration: 0.25
|
||||||
returnDuration: 0.25
|
returnDuration: 0.25
|
||||||
|
dragScale: 1.15
|
||||||
previewCurve:
|
previewCurve:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Curve:
|
m_Curve:
|
||||||
|
|||||||
@@ -1394,6 +1394,10 @@ PrefabInstance:
|
|||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TransformParent: {fileID: 0}
|
m_TransformParent: {fileID: 0}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
|
- target: {fileID: 4405976200006927252, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||||
|
propertyPath: devKey
|
||||||
|
value: DwvwaVs4yYqfPWfWjFcAL3
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
- target: {fileID: 6207133488976360133, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
value: 1021.8063
|
value: 1021.8063
|
||||||
@@ -1443,6 +1447,52 @@ PrefabInstance:
|
|||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 0bfe3b149145747cc92dc53bb4df4e9b, type: 3}
|
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
|
--- !u!1 &752713006
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1735,6 +1785,7 @@ MonoBehaviour:
|
|||||||
autoReload: 1
|
autoReload: 1
|
||||||
reloadDelaySeconds: 5
|
reloadDelaySeconds: 5
|
||||||
reloadMaxAttempts: 6
|
reloadMaxAttempts: 6
|
||||||
|
showWatchdogSeconds: 60
|
||||||
--- !u!1 &1239449674
|
--- !u!1 &1239449674
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2501,3 +2552,4 @@ SceneRoots:
|
|||||||
- {fileID: 196669903}
|
- {fileID: 196669903}
|
||||||
- {fileID: 673724413}
|
- {fileID: 673724413}
|
||||||
- {fileID: 1156238481}
|
- {fileID: 1156238481}
|
||||||
|
- {fileID: 680382929}
|
||||||
|
|||||||
8
Assets/Smartlook.meta
Executable file
8
Assets/Smartlook.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b33a6fe45d766964da5fc03d08014670
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 467e2fabc4e40d148b07e8728a86ca3c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics/Android.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/Android.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d06bca5055646b840abf8e0525eda4a5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar
Executable file
BIN
Assets/Smartlook/SmartlookAnalytics/Android/app-1.8.7-unity-lite-support.aar
Executable file
Binary file not shown.
@@ -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:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics/Documentation.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/Documentation.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 52fd817ee8e81624b969da5aed35fcb7
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
1
Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt
Executable file
1
Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt
Executable file
@@ -0,0 +1 @@
|
|||||||
|
Work in progress
|
||||||
7
Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt.meta
Executable file
7
Assets/Smartlook/SmartlookAnalytics/Documentation/Readme.txt.meta
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9af2dfa206055d847a637198672732dd
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics/Editor.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/Editor.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ebabf3b02b3cedd40811bb3e176a8c71
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
40
Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs
Executable file
40
Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs
Executable file
@@ -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<Settings>();
|
||||||
|
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<SmartlookInitializer>();
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs.meta
Executable file
11
Assets/Smartlook/SmartlookAnalytics/Editor/EditorSettings.cs.meta
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 71ff3ca4c29b2074286fc69d417442cc
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
5
Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml
Executable file
5
Assets/Smartlook/SmartlookAnalytics/Editor/SmartLookDependencies.xml
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
<dependencies>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10" />
|
||||||
|
</androidPackages>
|
||||||
|
</dependencies>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fc2b5e901decc7c4a80ab878bce70789
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
18
Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef
Executable file
18
Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef
Executable file
@@ -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
|
||||||
|
}
|
||||||
7
Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef.meta
Executable file
7
Assets/Smartlook/SmartlookAnalytics/Editor/Smartlook.Editor.asmdef.meta
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f9bdb6ee76021dc42832371ef3b3ff87
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
37
Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs
Executable file
37
Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs
Executable file
@@ -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
|
||||||
11
Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs.meta
Executable file
11
Assets/Smartlook/SmartlookAnalytics/Editor/SmartlookEditor.cs.meta
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7d8b442681228234d8880c0588704c83
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics/Resources.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/Resources.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3eba07253de2be546bff9739c3f40385
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5f06c1262ba16ba419a9ef51a9a0f320
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics/Scripts.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/Scripts.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 59d30f4c6329b944da8edf6ec31c83f0
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
6
Assets/Smartlook/SmartlookAnalytics/Scripts/README.md
Executable file
6
Assets/Smartlook/SmartlookAnalytics/Scripts/README.md
Executable file
@@ -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).
|
||||||
7
Assets/Smartlook/SmartlookAnalytics/Scripts/README.md.meta
Executable file
7
Assets/Smartlook/SmartlookAnalytics/Scripts/README.md.meta
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1dd0436bfcddcb04787b932eb0ac8365
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
25
Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs
Executable file
25
Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs
Executable file
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs.meta
Executable file
3
Assets/Smartlook/SmartlookAnalytics/Scripts/Settings.cs.meta
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8a037d972e344070808470b09a6f9228
|
||||||
|
timeCreated: 1680461368
|
||||||
272
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs
Executable file
272
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs
Executable file
@@ -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
|
||||||
11
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs.meta
Executable file
11
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.Android.cs.meta
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 872537cb224545f4a8c43d836d6b598e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
368
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs
Executable file
368
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs
Executable file
@@ -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
|
||||||
11
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs.meta
Executable file
11
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.IOS.cs.meta
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4cdf78a5d29fed94cafc9ebf39eec979
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
471
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs
Executable file
471
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs
Executable file
@@ -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<string> eventTrackingModes;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Setup Smartlook and start recording.
|
||||||
|
/// <param name="key">The application (project) specific SDK key, available in your Smartlook dashboard.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="key">The application (project) specific SDK key, available in your Smartlook dashboard.</param>
|
||||||
|
/// <param name="frameRate">Custom recording framerate.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="setupOptions">Instance of SetupOptions class.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="key">The application (project) specific SDK key, available in your Smartlook dashboard.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="key">The application (project) specific SDK key, available in your Smartlook dashboard.</param>
|
||||||
|
/// <param name="frameRate">Custom recording framerate.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="setupOptions">Instance of SetupOptions class.</param>
|
||||||
|
[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(); }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 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.
|
||||||
|
/// <summary>
|
||||||
|
/// <param name="eventName">Name of the event.</param>
|
||||||
|
/// <param name="properties">Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// eventId that can be used in StopTimedCustomEvent or CancelTimedCustomEvent methods
|
||||||
|
/// </returns>
|
||||||
|
[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); }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 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.
|
||||||
|
/// <summary>
|
||||||
|
/// <param name="eventName">Name of the event.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// eventId that can be used in StopTimedCustomEvent or CancelTimedCustomEvent methods
|
||||||
|
/// </returns>
|
||||||
|
/// <param name="eventName">Name of the event.</param>
|
||||||
|
[SL_COMPATIBILITY_NAME("name=startTimedCustomEvent;type=func;params=eventName{string};returns=string")]
|
||||||
|
public static string StartTimedCustomEvent(string eventName) { return StartTimedCustomEventInternal(eventName); }
|
||||||
|
|
||||||
|
/// Stops timed event
|
||||||
|
/// <param name="eventId">Name of the event.</param>
|
||||||
|
[SL_COMPATIBILITY_NAME("name=stopTimedCustomEvent;type=func;params=eventId{string}")]
|
||||||
|
public static void StopTimedCustomEvent(string eventId) { StopTimedCustomEventInternal(eventId); }
|
||||||
|
|
||||||
|
/// Stops timed event
|
||||||
|
/// <param name="eventId">Name of the event.</param>
|
||||||
|
/// <param name="properties">Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified.</param>
|
||||||
|
[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
|
||||||
|
/// <param name="eventId">Name of the event.</param>
|
||||||
|
/// <param name="reason">Cancellation Reason</param>
|
||||||
|
[SL_COMPATIBILITY_NAME("name=cancelTimedCustomEvent;type=func;params=eventId{string},reason{string}")]
|
||||||
|
public static void CancelTimedCustomEvent(string eventId, string reason) { CancelTimedCustomEventInternal(eventId, reason); }
|
||||||
|
|
||||||
|
/// <param name="eventId">Name of the event.</param>
|
||||||
|
/// <param name="reason">Cancellation Reason</param>
|
||||||
|
/// <param name="properties">Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="eventName">Name that identifies the event.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="eventName">Name that identifies the event.</param>
|
||||||
|
/// <param name="properties">Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified.</param>
|
||||||
|
[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
|
||||||
|
/// <param name="screenName">Name that identifies the screen user is currently on.</param>
|
||||||
|
/// <param name="direction">Navigation direction. Either entering the screen, or exiting the screen.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="key">Property key (name).</param>
|
||||||
|
/// <param name="value">Property Value.</param>
|
||||||
|
/// <param name="immutable">To change immutable property, you need to remove that property first.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="properties">Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified.</param>
|
||||||
|
/// <param name="immutable">To change immutable property, you need to remove that property first.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="withCurrentTimestamp">If true recording starts at current time</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="resetUser">Indicates whether new session starts with new user.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="renderingMode">Options are RenderingModeType.native (normal recording), and RenderingModeType.no_rendering (gray screen).</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="eventTrackingMode">Desired tracking mode.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="eventTrackingModes">Desired tracking modes.</param>
|
||||||
|
[SL_COMPATIBILITY_NAME("name=setEventTrackingModes;type=func;params=eventTrackingModes{List[EventTrackingMode]}")]
|
||||||
|
public static void setEventTrackingModes(List<EventTrackingMode> eventTrackingModes) { SetEventTrackingModesInternal(handleEventModes(eventTrackingModes)); }
|
||||||
|
|
||||||
|
private static string handleEventModes(List<EventTrackingMode> 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.
|
||||||
|
/// <param name="userIdentifier">The application-specific user identifier.</param>
|
||||||
|
[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.
|
||||||
|
/// <param name="userIdentifier">The application-specific user identifier.</param>
|
||||||
|
/// <param name="properties">Optional dictionary (json string, obtained for example with JsonUtility.ToJson(param)) with additional information. Non String values will be stringlified.</param>
|
||||||
|
[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
|
||||||
|
/// <param name="integrationListener">You provide your own subclass of IntegrationListener, with onSessionReady() and onVisitorReady callbacks, which are called when dashboard visitor url or dashboard session url changes.</param>
|
||||||
|
[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<bool>("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<string>("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<string>("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<string>("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<string>("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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs.meta
Executable file
11
Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs.meta
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9c57b92e3c12c1744824630b3f25d4f3
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
29
Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs
Executable file
29
Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs
Executable file
@@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs.meta
Executable file
3
Assets/Smartlook/SmartlookAnalytics/Scripts/SmartlookInitializer.cs.meta
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f8ef78bee04409481341d4213ba58aa
|
||||||
|
timeCreated: 1680463181
|
||||||
14
Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef
Executable file
14
Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "SmartlookAnalytics",
|
||||||
|
"rootNamespace": "SmartlookUnity",
|
||||||
|
"references": [],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
7
Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef.meta
Executable file
7
Assets/Smartlook/SmartlookAnalytics/SmartlookAnalytics.asmdef.meta
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 52537e7b5c9a4f64e9d1ef8878c041c3
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics/iOS.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/iOS.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4059014ff79ac2447b98dcf3a704d802
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
27
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta
Executable file
27
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta
Executable file
@@ -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:
|
||||||
8
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fb5a01a1e43952b408395b66bc8b5fce
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
358
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h
Executable file
358
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h
Executable file
@@ -0,0 +1,358 @@
|
|||||||
|
//
|
||||||
|
// Smartlook SDK, © 2022 Smartlook.com
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@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<SLEventTrackingMode> * _Nonnull)eventTrackingModes;
|
||||||
|
|
||||||
|
+ (nonnull NSArray<SLEventTrackingMode> *)currentEventTrackingModes;
|
||||||
|
|
||||||
|
|
||||||
|
// MARK: - Custom Events
|
||||||
|
|
||||||
|
+ (void)trackCustomEventWithName:(nonnull NSString*)eventName;
|
||||||
|
|
||||||
|
+ (void)trackCustomEventWithName:(nonnull NSString*)eventName props:(nullable NSDictionary<NSString*, NSString*>*)props;
|
||||||
|
|
||||||
|
+ (id _Nonnull)startTimedCustomEventWithName:(nonnull NSString*)eventName props:(nullable NSDictionary<NSString*, NSString*>*)props;
|
||||||
|
|
||||||
|
+ (void)trackTimedCustomEventWithEventId:(id _Nonnull)eventId props:(nullable NSDictionary<NSString*, NSString*>*)props;
|
||||||
|
|
||||||
|
+ (void)trackTimedCustomEventCancelWithEventId:(id _Nonnull)eventId reason:(NSString *_Nullable)reason props:(nullable NSDictionary<NSString*, NSString*>*)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<SLIntegration *> * _Nonnull)integrations;
|
||||||
|
|
||||||
|
+ (void)disableIntegrations:(NSArray<SLIntegration *> * _Nonnull)integrations;
|
||||||
|
|
||||||
|
+ (void)disableAllIntegrations;
|
||||||
|
|
||||||
|
+ (NSArray<SLIntegration *> * _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<SLEventTrackingMode> * _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<SLIntegration *> * _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<SLWireframeDataItem *> * _Nonnull items;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
@protocol SLBridgeInterface <NSObject>
|
||||||
|
|
||||||
|
@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<SLBridgeInterface> * _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
|
||||||
@@ -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
|
||||||
BIN
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist
Executable file
BIN
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist
Executable file
Binary file not shown.
8
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta
Executable file
8
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c9d04bd4826820c4791e2b9f2164b603
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 99e005aebd892ce4698de31d560d8807
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
@@ -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 {}
|
||||||
Binary file not shown.
Binary file not shown.
@@ -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 {}
|
||||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
|||||||
|
//
|
||||||
|
// Smartlook SDK, © 2022 Smartlook.com
|
||||||
|
//
|
||||||
|
|
||||||
|
framework module Smartlook {
|
||||||
|
umbrella header "Smartlook.h"
|
||||||
|
requires objc
|
||||||
|
}
|
||||||
BIN
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook
Executable file
BIN
Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook
Executable file
Binary file not shown.
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b95d672953d016f4dbab99e59b7a5d0e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,237 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Headers/Smartlook.h</key>
|
||||||
|
<data>
|
||||||
|
r6XbMWNSwbkrvOa8bJSdW8HKNIk=
|
||||||
|
</data>
|
||||||
|
<key>Headers/SmartlookCBridge.h</key>
|
||||||
|
<data>
|
||||||
|
pwne0rBASnuuf8BgvRiFKuzWJRg=
|
||||||
|
</data>
|
||||||
|
<key>Info.plist</key>
|
||||||
|
<data>
|
||||||
|
3J/5Xa4n4qx8rJI/ZMaqNVlU7XI=
|
||||||
|
</data>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc</key>
|
||||||
|
<data>
|
||||||
|
sscLtAQhiy8/76Cno5avJ5U7VAA=
|
||||||
|
</data>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface</key>
|
||||||
|
<data>
|
||||||
|
vzwvBCjZS/w/kE8luvlQ8Mk1kuE=
|
||||||
|
</data>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule</key>
|
||||||
|
<data>
|
||||||
|
0/BafHdO1SP3NW4pSkZ/E/aTHHE=
|
||||||
|
</data>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc</key>
|
||||||
|
<data>
|
||||||
|
P/NU8TBFILkBPoJzVXpWZweNRAc=
|
||||||
|
</data>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface</key>
|
||||||
|
<data>
|
||||||
|
3E+oHnq6ZtLLpMw5b39UGib2HSs=
|
||||||
|
</data>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule</key>
|
||||||
|
<data>
|
||||||
|
bDuSRQJG+SOszvsTNtklq4fzOAc=
|
||||||
|
</data>
|
||||||
|
<key>Modules/module.modulemap</key>
|
||||||
|
<data>
|
||||||
|
WJc6kjwz3eL/wIUY+ZSJnM+A0Lg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict>
|
||||||
|
<key>Headers/Smartlook.h</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
r6XbMWNSwbkrvOa8bJSdW8HKNIk=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
aSlcyxpxzYeixpazDg8GJo229A3OK8URDS47dCEdTEk=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Headers/SmartlookCBridge.h</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
pwne0rBASnuuf8BgvRiFKuzWJRg=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
D8G+InlD8teEUes9dcEQ3E7wKunIoImEuryJnScU3Fg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
sscLtAQhiy8/76Cno5avJ5U7VAA=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
9tmncEwsEimfNP/+XnHBZ0EYHja1k3+s72HovfNgoFE=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
vzwvBCjZS/w/kE8luvlQ8Mk1kuE=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
nMkbLW1kx+pDAPezywN3KQH52XcOxdzv2Dir9PZejTA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
0/BafHdO1SP3NW4pSkZ/E/aTHHE=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
78YxRN/cJWlzrz27Eow5k9viRQZKNrb5RF8PcvCAvWs=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
P/NU8TBFILkBPoJzVXpWZweNRAc=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
jIgjWaz53e6nOJzWij8tm3X5kkRmsD/TT0L/vADZ6uw=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
3E+oHnq6ZtLLpMw5b39UGib2HSs=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
mCH57AxU/c2X2D1KvaQ9IzH+Fem+T94Yc1v9W/+be7c=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
bDuSRQJG+SOszvsTNtklq4fzOAc=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
ARc3F/cBf2PVgfvTBoBoHb8IL7/O1dtGqbNIRFeDMeI=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Modules/module.modulemap</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash</key>
|
||||||
|
<data>
|
||||||
|
WJc6kjwz3eL/wIUY+ZSJnM+A0Lg=
|
||||||
|
</data>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
uhMe5HspvDwkjMMWBJspvWF4nJq7RglCNw/y6B2xMDQ=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -146,7 +146,6 @@ PlayerSettings:
|
|||||||
bundleVersion: 1.0
|
bundleVersion: 1.0
|
||||||
preloadedAssets:
|
preloadedAssets:
|
||||||
- {fileID: 11400000, guid: cc969dbecb228fa49b16da9273753a8f, type: 2}
|
- {fileID: 11400000, guid: cc969dbecb228fa49b16da9273753a8f, type: 2}
|
||||||
- {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
|
|
||||||
metroInputSource: 0
|
metroInputSource: 0
|
||||||
wsaTransparentSwapchain: 0
|
wsaTransparentSwapchain: 0
|
||||||
xboxOneDisableKinectGpuReservation: 1
|
xboxOneDisableKinectGpuReservation: 1
|
||||||
|
|||||||
Reference in New Issue
Block a user