@@ -49,6 +49,7 @@ internal struct CalendarTriggerData
49
49
public Int32 minute ;
50
50
public Int32 second ;
51
51
public Byte repeats ;
52
+ public Byte originalUtc ;
52
53
}
53
54
54
55
[ StructLayout ( LayoutKind . Sequential ) ]
@@ -273,7 +274,14 @@ public iOSNotificationTrigger Trigger
273
274
}
274
275
case iOSNotificationTriggerType . Calendar :
275
276
{
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
+ }
277
285
data . trigger . calendar . year = trigger . Year != null ? trigger . Year . Value : - 1 ;
278
286
data . trigger . calendar . month = trigger . Month != null ? trigger . Month . Value : - 1 ;
279
287
data . trigger . calendar . day = trigger . Day != null ? trigger . Day . Value : - 1 ;
@@ -313,17 +321,22 @@ public iOSNotificationTrigger Trigger
313
321
Repeats = data . trigger . timeInterval . repeats != 0 ,
314
322
} ;
315
323
case iOSNotificationTriggerType . Calendar :
316
- return new iOSNotificationCalendarTrigger ( )
317
324
{
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
+ }
327
340
case iOSNotificationTriggerType . Location :
328
341
return new iOSNotificationLocationTrigger ( )
329
342
{
0 commit comments