84 lines
2.7 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
using System;
using UnityEngine;
namespace Unity.Notifications.Android
{
internal static class AndroidNotificationExtensions
{
public static Importance ToImportance(this int importance)
{
if (Enum.IsDefined(typeof(Importance), importance))
return (Importance)importance;
return Importance.Default;
}
public static LockScreenVisibility ToLockScreenVisibility(this int lockscreenVisibility)
{
if (Enum.IsDefined(typeof(LockScreenVisibility), lockscreenVisibility))
return (LockScreenVisibility)lockscreenVisibility;
return LockScreenVisibility.Public;
}
public static NotificationStyle ToNotificationStyle(this int notificationStyle)
{
if (Enum.IsDefined(typeof(NotificationStyle), notificationStyle))
return (NotificationStyle)notificationStyle;
return NotificationStyle.None;
}
public static GroupAlertBehaviours ToGroupAlertBehaviours(this int groupAlertBehaviour)
{
if (Enum.IsDefined(typeof(GroupAlertBehaviours), groupAlertBehaviour))
return (GroupAlertBehaviours)groupAlertBehaviour;
return GroupAlertBehaviours.GroupAlertAll;
}
public static Color ToColor(this int color)
{
int a = (color >> 24) & 0xff;
int r = (color >> 16) & 0xff;
int g = (color >> 8) & 0xff;
int b = (color) & 0xff;
return new Color32((byte)r, (byte)g, (byte)b, (byte)a);
}
public static int ToInt(this Color? color)
{
if (!color.HasValue)
return 0;
var color32 = (Color32)color.Value;
return (color32.a & 0xff) << 24 | (color32.r & 0xff) << 16 | (color32.g & 0xff) << 8 | (color32.b & 0xff);
}
public static long ToLong(this DateTime dateTime)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
TimeSpan diff = dateTime.ToUniversalTime() - origin;
return (long)Math.Floor(diff.TotalMilliseconds);
}
public static DateTime ToDatetime(this long dateTime)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
return origin.AddMilliseconds(dateTime).ToLocalTime();
}
public static long ToLong(this TimeSpan? timeSpan)
{
return timeSpan.HasValue ? (long)timeSpan.Value.TotalMilliseconds : -1L;
}
public static TimeSpan ToTimeSpan(this long timeSpan)
{
return TimeSpan.FromMilliseconds(timeSpan);
}
}
}