Skip to content

Commit c5baf55

Browse files
committed
Fix time kind when querying
1 parent b49a8d9 commit c5baf55

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

com.unity.mobile.notifications/Runtime/iOS/Plugins/UnityNotificationData.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ typedef struct iOSNotificationData
4949
int minute;
5050
int second;
5151
unsigned char repeats;
52+
unsigned char originalUtc;
5253
} calendar;
5354

5455
struct

com.unity.mobile.notifications/Runtime/iOS/iOSNotification.cs

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ internal struct CalendarTriggerData
4949
public Int32 minute;
5050
public Int32 second;
5151
public Byte repeats;
52+
public Byte originalUtc;
5253
}
5354

5455
[StructLayout(LayoutKind.Sequential)]
@@ -273,7 +274,14 @@ public iOSNotificationTrigger Trigger
273274
}
274275
case iOSNotificationTriggerType.Calendar:
275276
{
276-
var trigger = ((iOSNotificationCalendarTrigger)value).ToUtc();
277+
var trigger = ((iOSNotificationCalendarTrigger)value);
278+
if (trigger.UtcTime)
279+
data.trigger.calendar.originalUtc = 1;
280+
else
281+
{
282+
data.trigger.calendar.originalUtc = 0;
283+
trigger = trigger.ToUtc();
284+
}
277285
data.trigger.calendar.year = trigger.Year != null ? trigger.Year.Value : -1;
278286
data.trigger.calendar.month = trigger.Month != null ? trigger.Month.Value : -1;
279287
data.trigger.calendar.day = trigger.Day != null ? trigger.Day.Value : -1;
@@ -313,17 +321,22 @@ public iOSNotificationTrigger Trigger
313321
Repeats = data.trigger.timeInterval.repeats != 0,
314322
};
315323
case iOSNotificationTriggerType.Calendar:
316-
return new iOSNotificationCalendarTrigger()
317324
{
318-
Year = (data.trigger.calendar.year > 0) ? (int?)data.trigger.calendar.year : null,
319-
Month = (data.trigger.calendar.month > 0) ? (int?)data.trigger.calendar.month : null,
320-
Day = (data.trigger.calendar.day > 0) ? (int?)data.trigger.calendar.day : null,
321-
Hour = (data.trigger.calendar.hour >= 0) ? (int?)data.trigger.calendar.hour : null,
322-
Minute = (data.trigger.calendar.minute >= 0) ? (int?)data.trigger.calendar.minute : null,
323-
Second = (data.trigger.calendar.second >= 0) ? (int?)data.trigger.calendar.second : null,
324-
UtcTime = true,
325-
Repeats = data.trigger.calendar.repeats != 0
326-
};
325+
var trigger = new iOSNotificationCalendarTrigger()
326+
{
327+
Year = (data.trigger.calendar.year > 0) ? (int?)data.trigger.calendar.year : null,
328+
Month = (data.trigger.calendar.month > 0) ? (int?)data.trigger.calendar.month : null,
329+
Day = (data.trigger.calendar.day > 0) ? (int?)data.trigger.calendar.day : null,
330+
Hour = (data.trigger.calendar.hour >= 0) ? (int?)data.trigger.calendar.hour : null,
331+
Minute = (data.trigger.calendar.minute >= 0) ? (int?)data.trigger.calendar.minute : null,
332+
Second = (data.trigger.calendar.second >= 0) ? (int?)data.trigger.calendar.second : null,
333+
UtcTime = true,
334+
Repeats = data.trigger.calendar.repeats != 0
335+
};
336+
if (data.trigger.calendar.originalUtc == 0)
337+
trigger = trigger.ToLocal();
338+
return trigger;
339+
}
327340
case iOSNotificationTriggerType.Location:
328341
return new iOSNotificationLocationTrigger()
329342
{

0 commit comments

Comments
 (0)