diff --git a/src/DynamoCore/Logging/AnalyticsService.cs b/src/DynamoCore/Logging/AnalyticsService.cs
index e9c33a75eee..500796725dc 100644
--- a/src/DynamoCore/Logging/AnalyticsService.cs
+++ b/src/DynamoCore/Logging/AnalyticsService.cs
@@ -1,4 +1,3 @@
-using Dynamo.Graph.Workspaces;
using Dynamo.Models;
using Autodesk.Analytics.ADP;
using Autodesk.Analytics.Core;
@@ -24,7 +23,7 @@ internal class AnalyticsService
/// Starts the Analytics client. This method initializes
/// the Analytics service and application life cycle start is tracked.
///
- internal static void Start(DynamoModel model)
+ internal static void Start()
{
// Initialize the concrete class only when we initialize the Service.
// This will also load the Analytics.Net.ADP assembly
@@ -32,19 +31,6 @@ internal static void Start(DynamoModel model)
adpAnalyticsUI = new ADPAnalyticsUI();
Analytics.Start(new DynamoAnalyticsClient(DynamoModel.HostAnalyticsInfo));
-
- if(model != null)
- {
- model.WorkspaceAdded += OnWorkspaceAdded;
- }
- }
-
- static void OnWorkspaceAdded(WorkspaceModel obj)
- {
- if (obj is CustomNodeWorkspaceModel)
- Analytics.TrackScreenView("CustomWorkspace");
- else
- Analytics.TrackScreenView("Workspace");
}
///
@@ -92,7 +78,10 @@ internal static bool IsADPAvailable()
///
internal static void ShutDown()
{
- Analytics.ShutDown();
+ if (!KeepAlive)
+ {
+ Analytics.ShutDown();
+ }
}
///
diff --git a/src/DynamoCore/Models/DynamoModel.cs b/src/DynamoCore/Models/DynamoModel.cs
index 06995dad9e1..0d3368d1f66 100644
--- a/src/DynamoCore/Models/DynamoModel.cs
+++ b/src/DynamoCore/Models/DynamoModel.cs
@@ -453,10 +453,7 @@ public void ShutDown(bool shutdownHost)
ShutDownCore(shutdownHost);
PostShutdownCore(shutdownHost);
- if (!AnalyticsService.KeepAlive)
- {
- AnalyticsService.ShutDown();
- }
+ AnalyticsService.ShutDown();
State = DynamoModelState.NotStarted;
OnShutdownCompleted(); // Notify possible event handlers.
@@ -1042,13 +1039,13 @@ private void HandleAnalytics()
// So we don't want to start it when splash screen or dynamo window is launched again.
if (Analytics.client == null)
{
- AnalyticsService.Start(this);
+ AnalyticsService.Start();
}
else if (Analytics.client is DynamoAnalyticsClient dac)
{
if (dac.Session == null)
{
- AnalyticsService.Start(this);
+ AnalyticsService.Start();
}
}
}
diff --git a/src/DynamoCore/Models/DynamoModelEvents.cs b/src/DynamoCore/Models/DynamoModelEvents.cs
index 7a76d0379c7..2860fd24ad4 100644
--- a/src/DynamoCore/Models/DynamoModelEvents.cs
+++ b/src/DynamoCore/Models/DynamoModelEvents.cs
@@ -8,6 +8,7 @@
using System.Collections.Generic;
using Dynamo.Graph;
using Dynamo.Extensions;
+using Dynamo.Logging;
namespace Dynamo.Models
{
@@ -158,6 +159,11 @@ protected virtual void OnWorkspaceAdded(WorkspaceModel obj)
var handler = WorkspaceAdded;
if (handler != null) handler(obj);
+ if (obj is CustomNodeWorkspaceModel)
+ Analytics.TrackScreenView("CustomWorkspace");
+ else
+ Analytics.TrackScreenView("Workspace");
+
WorkspaceEvents.OnWorkspaceAdded(obj.Guid, obj.Name, obj.GetType());
}