Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
>28.0.3</AndroidSdkBuildToolsVersion>
<AndroidTlsProvider></AndroidTlsProvider>
<AndroidClassParser>class-parse</AndroidClassParser>
<NoWarn>$(NoWarn);CS0618;BG8A00;BG8102;BG8401;BG8403;BG8502;BG8503;BG8605;BG8606;BG8700;BG8701;BG8800;BG8801;BG8C00;BG8C01</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -37,12 +38,6 @@
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Mono.Android" />
</ItemGroup>
<ItemGroup>
<None Include="Additions\AboutAdditions.txt" />
<None Include="Jars\AboutJars.txt" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
>28.0.3</AndroidSdkBuildToolsVersion>
<AndroidTlsProvider></AndroidTlsProvider>
<AndroidClassParser>class-parse</AndroidClassParser>
<NoWarn>$(NoWarn);BG8A04;BG8605;BG8606</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -37,12 +38,6 @@
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Mono.Android" />
</ItemGroup>
<ItemGroup>
<None Include="Additions\AboutAdditions.txt" />
<None Include="Jars\AboutJars.txt" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
>28.0.3</AndroidSdkBuildToolsVersion>
<AndroidTlsProvider></AndroidTlsProvider>
<AndroidClassParser>class-parse</AndroidClassParser>
<NoWarn>$(NoWarn);BG8A04;BG8605;BG8606</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -37,12 +38,6 @@
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Mono.Android" />
</ItemGroup>
<ItemGroup>
<None Include="Additions\AboutAdditions.txt" />
<None Include="Jars\AboutJars.txt" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
>28.0.3</AndroidSdkBuildToolsVersion>
<AndroidTlsProvider></AndroidTlsProvider>
<AndroidClassParser>class-parse</AndroidClassParser>
<NoWarn>$(NoWarn);BG8A04;BG8401;BG8403;BG8605;BG8606</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -37,12 +38,6 @@
<AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Mono.Android" />
</ItemGroup>
<ItemGroup>
<None Include="Additions\AboutAdditions.txt" />
<None Include="Jars\AboutJars.txt" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public void SetPushToStartToken(string activityType, string token)
Console.WriteLine("OneSignal: SetPushToStartToken is available on iOS only");
}

public void SetupDefault(LiveActivitySetupOptions options = null)
public void SetupDefault(LiveActivitySetupOptions? options = null)
{
Console.WriteLine("OneSignal: SetupDefault is available on iOS only");
}
Expand Down
44 changes: 22 additions & 22 deletions OneSignalSDK.DotNet.Android/AndroidNotificationsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,38 +190,38 @@ as IDictionary<string, object>

public AndroidDisplayableNotification(
Com.OneSignal.Android.Notifications.IDisplayableNotification displayableNotification,
string title,
string body,
string sound,
string launchUrl,
string? title,
string? body,
string? sound,
string? launchUrl,
IList<ActionButton> actionButtons,
IDictionary<string, object> additionalData,
string notificationId,
IList<OneSignalSDK.DotNet.Core.Notifications.Notification> groupedNotifications = null,
BackgroundImageLayout backgroundImageLayout = null,
string templateId = null,
string templateName = null,
string groupKey = null,
string groupMessage = null,
string ledColor = null,
string? notificationId,
IList<OneSignalSDK.DotNet.Core.Notifications.Notification>? groupedNotifications = null,
BackgroundImageLayout? backgroundImageLayout = null,
string? templateId = null,
string? templateName = null,
string? groupKey = null,
string? groupMessage = null,
string? ledColor = null,
int? priority = null,
string smallIcon = null,
string largeIcon = null,
string bigPicture = null,
string collapseId = null,
string fromProjectNumber = null,
string smallIconAccentColor = null,
string? smallIcon = null,
string? largeIcon = null,
string? bigPicture = null,
string? collapseId = null,
string? fromProjectNumber = null,
string? smallIconAccentColor = null,
int? lockScreenVisibility = null,
int? androidNotificationId = null,
int? badge = null,
int? badgeIncrement = null,
string category = null,
string threadId = null,
string subtitle = null,
string? category = null,
string? threadId = null,
string? subtitle = null,
float? relevanceScore = null,
bool? mutableContent = null,
bool? contentAvailable = null,
string interruptionLevel = null
string? interruptionLevel = null
)
: base(
title,
Expand Down
15 changes: 7 additions & 8 deletions OneSignalSDK.DotNet.Android/AndroidOneSignal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,13 @@ namespace OneSignalSDK.DotNet.Android;

public class AndroidOneSignal : IOneSignal
{
/** These static references are not used, but we need to reference at least one class
* in the binding projects that are otherwised not referenced. If we did *not*, then
* the binding DLLs will not be included in the output bin directory.
*/

private static Com.OneSignal.Android.InAppMessages.IInAppMessagesManager InAppMessagesBuildConfig;
private static Com.OneSignal.Android.Notifications.INotificationsManager NotificationsBuildConfig;
private static Com.OneSignal.Android.Location.ILocationManager LocationBuildConfig;
/** Retain binding assembly references so optional module DLLs are copied to output. */
private static readonly Type[] BindingRetentionTypes =
{
typeof(Com.OneSignal.Android.InAppMessages.IInAppMessagesManager),
typeof(Com.OneSignal.Android.Notifications.INotificationsManager),
typeof(Com.OneSignal.Android.Location.ILocationManager),
};

public IUserManager User { get; } = new AndroidUserManager();

Expand Down
30 changes: 15 additions & 15 deletions OneSignalSDK.DotNet.Android/AndroidUserManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,25 +25,25 @@ public void Initialize()
((AndroidPushSubscription)PushSubscription).Initialize();
}

public string OneSignalId
public string? OneSignalId
{
get
{
string id = OneSignalNative.User.OnesignalId;
string? id = OneSignalNative.User.OnesignalId;
return string.IsNullOrEmpty(id) ? null : id;
}
}

public string ExternalId
public string? ExternalId
{
get
{
string id = OneSignalNative.User.ExternalId;
string? id = OneSignalNative.User.ExternalId;
return string.IsNullOrEmpty(id) ? null : id;
}
}

public event EventHandler<UserStateChangedEventArgs> Changed;
public event EventHandler<UserStateChangedEventArgs>? Changed;

public void AddAlias(string label, string id) => OneSignalNative.User.AddAlias(label, id);

Expand Down Expand Up @@ -71,20 +71,20 @@ public void RemoveAliases(params string[] labels) =>

public void RemoveTags(params string[] keys) => OneSignalNative.User.RemoveTags(keys);

public IDictionary<string, string> GetTags() => OneSignalNative.User.Tags;
public IDictionary<string, string>? GetTags() => OneSignalNative.User.Tags;

public void TrackEvent(string name, IDictionary<string, object>? properties = null)
{
OneSignalNative.User.TrackEvent(name, ToNativeConversion.DictToJavaMap(properties));
OneSignalNative.User.TrackEvent(name, ToNativeConversion.DictToJavaMap(properties)!);
}

private sealed class InternalUserState : IUserState
{
public string OneSignalId { get; }
public string? OneSignalId { get; }

public string ExternalId { get; }
public string? ExternalId { get; }

public InternalUserState(string onesignalId, string externalId)
public InternalUserState(string? onesignalId, string? externalId)
{
OneSignalId = onesignalId;
ExternalId = externalId;
Expand Down Expand Up @@ -116,11 +116,11 @@ public void OnUserStateChange(Com.OneSignal.Android.User.State.UserChangedState

public class AndroidPushSubscription : IPushSubscription
{
public string Token => OneSignalNative.User.PushSubscription.Token;
public string? Token => OneSignalNative.User.PushSubscription.Token;

public bool OptedIn => OneSignalNative.User.PushSubscription.OptedIn;

public string Id => OneSignalNative.User.PushSubscription.Id;
public string? Id => OneSignalNative.User.PushSubscription.Id;

public event EventHandler<PushSubscriptionChangedEventArgs>? Changed;

Expand All @@ -144,13 +144,13 @@ public void OptOut()

private sealed class InternalPushSubscriptionState : IPushSubscriptionState
{
public string Id { get; }
public string? Id { get; }

public string Token { get; }
public string? Token { get; }

public bool OptedIn { get; }

public InternalPushSubscriptionState(string token, bool optedIn, string id)
public InternalPushSubscriptionState(string? token, bool optedIn, string? id)
{
Token = token;
OptedIn = optedIn;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<OutputType>Library</OutputType>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>OneSignalSDK.DotNet.Android</RootNamespace>
<AssemblyName>OneSignalSDK.DotNet.Android</AssemblyName>
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
Expand Down
2 changes: 2 additions & 0 deletions OneSignalSDK.DotNet.Android/Utilities/ToNativeConversion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public static Com.OneSignal.Android.Debug.LogLevel ToLogLevel(LogLevel logLevel)
}
}

#pragma warning disable CA1422 // Java.Lang boxed types remain required for primitive interop on minSdk 21.
public static Java.Lang.Object? ToJavaObject(object? value)
{
if (value == null)
Expand Down Expand Up @@ -91,6 +92,7 @@ public static Com.OneSignal.Android.Debug.LogLevel ToLogLevel(LogLevel logLevel)

return null;
}
#pragma warning restore CA1422

public static IDictionary<string, Java.Lang.Object>? DictToJavaMap(
IDictionary<string, object>? dict
Expand Down
2 changes: 1 addition & 1 deletion OneSignalSDK.DotNet.Core/IOneSignal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public interface IOneSignal
/// login operation.Required when identity verification has been enabled. See
/// <a href="https://documentation.onesignal.com/docs/identity-verification">Identity Verification | OneSignal</a>
/// </param>
void Login(String externalId, String jwtBearerToken = null);
void Login(String externalId, String? jwtBearerToken = null);

/// <summary>
/// Logout the user previously logged in via <see cref="Login(string, string?)"/>. The
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ public class InAppMessageClickResult
/// <summary>
/// An optional action id defined for the action element
/// </summary>
public string ActionId { get; }
public string? ActionId { get; }

/// <summary>
/// An optional URL that opens when the action takes place
/// </summary>
public string Url { get; }
public string? Url { get; }

/// <summary>
/// Optional where the url will be launched
Expand All @@ -30,8 +30,8 @@ public class InAppMessageClickResult
public bool ClosingMessage { get; }

public InAppMessageClickResult(
string actionId,
string url,
string? actionId,
string? url,
InAppMessageActionUrlType urlTarget,
bool closingMessage
)
Expand Down
9 changes: 7 additions & 2 deletions OneSignalSDK.DotNet.Core/Internal/Utilities/Json.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public static class Json
/// </summary>
/// <param name="json">A JSON string.</param>
/// <returns>An List&lt;object&gt;, a Dictionary&lt;string, object&gt;, a double, an integer,a string, null, true, or false</returns>
public static object Deserialize(string json)
public static object? Deserialize(string? json)
{
// save the string for debug information
if (json == null)
Expand All @@ -22,6 +22,7 @@ public static object Deserialize(string json)
return Parser.Parse(json);
}

#nullable disable
sealed class Parser : IDisposable
{
const string WORD_BREAK = "{}[],:\"";
Expand Down Expand Up @@ -363,6 +364,8 @@ TOKEN NextToken
}
}

#nullable restore

/// <summary>
/// Converts a IDictionary / IList object or a simple type (string, int, etc.) into a JSON string
/// </summary>
Expand All @@ -373,6 +376,7 @@ public static string Serialize(object obj)
return Serializer.Serialize(obj);
}

#nullable disable
sealed class Serializer
{
StringBuilder builder;
Expand All @@ -393,9 +397,9 @@ public static string Serialize(object obj)

void SerializeValue(object value)
{
string asStr;
IList asList;
IDictionary asDict;
string asStr;

if (value == null)
{
Expand Down Expand Up @@ -552,5 +556,6 @@ value is int
}
}
}
#nullable restore
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public static class WrapperSDK
{
public static string Type = "dotnet";

public static string Version
public static string? Version
{
get
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public interface ILiveActivitiesManager
/// Only applies to iOS.
/// </summary>
/// <param name="options">An optional structure to provide for more granular setup options.</param>
void SetupDefault(LiveActivitySetupOptions options = null);
void SetupDefault(LiveActivitySetupOptions? options = null);

/// <summary>
/// Start a new LiveActivity that is modelled by the default`DefaultLiveActivityAttributes`
Expand Down
Loading