Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions OneSignalExample/Assets/OneSignal/Attribution/VspAttribution.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,15 @@ public static AnalyticsResult SendAttributionEvent(string actionName, string par
return AnalyticsResult.AnalyticsDisabled;
}
}

#if ONE_SIGNAL_INSTALLED
[RuntimeInitializeOnLoadMethod]
public static void AttachToInit()
=> OneSignal.OnInitialize += appId => SendAttributionEvent("Login", "OneSignal", appId);
[RuntimeInitializeOnLoadMethod]
public static void AttachToInit() {
if (string.IsNullOrEmpty(OneSignal.AppId))
OneSignal.OnInitialize += appId => SendAttributionEvent("Login", "OneSignal", appId);
else
SendAttributionEvent("Login", "OneSignal", OneSignal.AppId);
}
#endif
}
}
1 change: 1 addition & 0 deletions OneSignalExample/Assets/OneSignal/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `NotificationPermission` return from native SDK no longer raises a casting exception on iOS
- Resolved infinite loops on logging initialization conditions
- iOS postprocessing will respect existing entitlement files
- Will no longer init SDK again if done before `RuntimeInitializeOnLoadMethod`

## [3.0.0-beta.3]
### Fixed
Expand Down
5 changes: 4 additions & 1 deletion com.onesignal.unity.android/Runtime/OneSignalAndroidInit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ namespace OneSignalSDK {
///
/// </summary>
internal static class OneSignalAndroidInit {
[RuntimeInitializeOnLoadMethod] public static void Init() => OneSignal.Default = new OneSignalAndroid();
[RuntimeInitializeOnLoadMethod] public static void Init() {
if (!OneSignal.DidInitialize)
OneSignal.Default = new OneSignalAndroid();
}
}
}
#endif
9 changes: 8 additions & 1 deletion com.onesignal.unity.core/Runtime/OneSignal.Internal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,15 @@

namespace OneSignalSDK {
public abstract partial class OneSignal {
internal static string AppId { get; private set; }
internal static bool DidInitialize { get; private set; }
internal static event Action<string> OnInitialize;
protected static void _completedInit(string appId) => OnInitialize?.Invoke(appId);

protected static void _completedInit(string appId) {
AppId = appId;
DidInitialize = true;
OnInitialize?.Invoke(AppId);
}

protected LogLevel _logLevel = LogLevel.Fatal;
protected LogLevel _alertLevel = LogLevel.None;
Expand Down
5 changes: 4 additions & 1 deletion com.onesignal.unity.ios/Runtime/OneSignalIOSInit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ namespace OneSignalSDK {
///
/// </summary>
internal static class OneSignalIOSInit {
[RuntimeInitializeOnLoadMethod] public static void Init() => OneSignal.Default = new OneSignalIOS();
[RuntimeInitializeOnLoadMethod] public static void Init() {
if (!OneSignal.DidInitialize)
OneSignal.Default = new OneSignalIOS();
}
}
}
#endif