diff --git a/Analytics-CSharp/Analytics-CSharp.csproj b/Analytics-CSharp/Analytics-CSharp.csproj
index 604abc8..2d383d7 100644
--- a/Analytics-CSharp/Analytics-CSharp.csproj
+++ b/Analytics-CSharp/Analytics-CSharp.csproj
@@ -10,7 +10,7 @@
Segment, Inc
The hassle-free way to add analytics to your C# app.
- 2.3.2
+ 2.3.4
MIT
https://github.com/segmentio/Analytics-CSharp
git
diff --git a/Analytics-CSharp/Segment/Analytics/Settings.cs b/Analytics-CSharp/Segment/Analytics/Settings.cs
index 339b748..5a9fe8a 100644
--- a/Analytics-CSharp/Segment/Analytics/Settings.cs
+++ b/Analytics-CSharp/Segment/Analytics/Settings.cs
@@ -16,7 +16,7 @@ public struct Settings
public partial class Analytics
{
- internal async void Update(Settings settings) {
+ internal async Task Update(Settings settings) {
System systemState = await Store.CurrentState();
HashSet initializedPlugins = new HashSet();
Timeline.Apply(plugin => {
@@ -49,7 +49,7 @@ await Scope.WithContext(NetworkIODispatcher, async () =>
settings = systemState._settings;
}
- Update(settings.Value);
+ await Update(settings.Value);
await Store.Dispatch(new System.ToggleRunningAction(true));
}
}
diff --git a/Analytics-CSharp/Segment/Analytics/State.cs b/Analytics-CSharp/Segment/Analytics/State.cs
index 49aa430..c1c755e 100644
--- a/Analytics-CSharp/Segment/Analytics/State.cs
+++ b/Analytics-CSharp/Segment/Analytics/State.cs
@@ -37,7 +37,15 @@ internal static System DefaultState(Configuration configuration, IStorage storag
try
{
string cache = storage.Read(StorageConstants.Settings) ?? "";
- settings = JsonUtility.FromJson(cache);
+ if (string.IsNullOrEmpty(cache))
+ {
+ Analytics.Logger.Log(LogLevel.Information, null, "No settings loaded from storage. Switch to default settings provided through configuration.");
+ settings = configuration.DefaultSettings;
+ }
+ else
+ {
+ settings = JsonUtility.FromJson(cache);
+ }
}
catch (Exception e)
{
diff --git a/Analytics-CSharp/Segment/Analytics/Version.cs b/Analytics-CSharp/Segment/Analytics/Version.cs
index c1c498f..7b97d1f 100644
--- a/Analytics-CSharp/Segment/Analytics/Version.cs
+++ b/Analytics-CSharp/Segment/Analytics/Version.cs
@@ -2,6 +2,6 @@ namespace Segment.Analytics
{
internal static class Version
{
- internal const string SegmentVersion = "2.3.2";
+ internal const string SegmentVersion = "2.3.4";
}
}
diff --git a/README.md b/README.md
index 00d1456..8616a67 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
# Analytics-CSharp
+
+### 🎉 Flagship 🎉
+This library is one of Segment’s most popular Flagship libraries. It is actively maintained by Segment, benefitting from new feature releases and ongoing support.
+

[](https://openupm.com/packages/com.segment.analytics.csharp/)
[](https://github.com/segmentio/analytics-csharp/actions)
diff --git a/Tests/StateTest.cs b/Tests/StateTest.cs
index d85fb91..e70e745 100644
--- a/Tests/StateTest.cs
+++ b/Tests/StateTest.cs
@@ -55,6 +55,20 @@ public void TestSystemDefaultState()
Assert.False(actual._running);
}
+ [Fact]
+ public void TestSystemDefaultStateEmpty()
+ {
+ _storage
+ .Setup(o => o.Read(It.IsAny()))
+ .Returns("");
+
+ var actual = Segment.Analytics.System.DefaultState(_configuration, _storage.Object);
+
+ Assert.Equal(_configuration, actual._configuration);
+ Assert.Equal(_settings.Integrations.ToString(), actual._settings.Integrations.ToString());
+ Assert.False(actual._running);
+ }
+
[Fact]
public void TestSystemDefaultStateException()
{