void INotificationCenter.UpdateNotifications(IList <TriggeredReminder> reminders, int maxCount) { AlarmManager alarm = (AlarmManager)AAplication.Context.GetSystemService(Context.AlarmService); for (int i = 0; i < maxCount; i++) { if (i < reminders.Count) { TriggeredReminder reminder = reminders[i]; var pendingIntent = PendingIntent.GetBroadcast(AAplication.Context, i, CreateIntent(reminder), PendingIntentFlags.UpdateCurrent); alarm.Cancel(pendingIntent); AlarmManagerCompat.SetExactAndAllowWhileIdle(alarm, (int)AlarmType.RtcWakeup, ToNativeDate(reminder.AlertTime).Time, pendingIntent); } else { var pendingIntent = PendingIntent.GetBroadcast(AAplication.Context, i, CreateIntent(), PendingIntentFlags.UpdateCurrent); alarm.Cancel(pendingIntent); } } }
async void ScheduleReminderNotification(TriggeredReminder reminder, int badge) { UNMutableNotificationContent content = new UNMutableNotificationContent() { Title = reminder.Appointment.Subject, Body = CreateMessageContent(reminder), Sound = UNNotificationSound.Default, Badge = badge, }; NSDateComponents dateComponents = new NSDateComponents() { Second = reminder.AlertTime.Second, Minute = reminder.AlertTime.Minute, Hour = reminder.AlertTime.Hour, Day = reminder.AlertTime.Day, Month = reminder.AlertTime.Month, Year = reminder.AlertTime.Year, TimeZone = NSTimeZone.SystemTimeZone, }; UNCalendarNotificationTrigger trigger = UNCalendarNotificationTrigger.CreateTrigger(dateComponents, false); string identifier = NotificationCenter.SerializeReminder(reminder); UNNotificationRequest request = UNNotificationRequest.FromIdentifier(identifier, content, trigger); await notificationCenter.AddNotificationRequestAsync(request); }
public NotificationInfo(TriggeredReminder reminder) { reminderId = (Guid)reminder.Reminder.Id; alertTime = reminder.AlertTime; subject = reminder.Appointment.Subject; timeInterval = reminder.Appointment.Interval.ToString(); recurrenceIndex = reminder.Appointment.RecurrenceIndex; }
Intent CreateIntent(TriggeredReminder reminder) { AppointmentItem appointment = reminder.Appointment; return(CreateIntent(reminder.Id.ToString(), appointment.RecurrenceIndex, appointment.Subject, appointment.Interval.ToString("{0:g} - {1:g}", null))); }
void ScheduleReminderNotification(TriggeredReminder reminder, int badge) { UILocalNotification notification = new UILocalNotification(); notification.FireDate = NSDate.FromTimeIntervalSinceNow((reminder.AlertTime - DateTime.Now).TotalSeconds); notification.AlertBody = CreateMessageContent(reminder); notification.SoundName = UILocalNotification.DefaultSoundName; UIApplication.SharedApplication.ScheduleLocalNotification(notification); }
string CreateMessageContent(TriggeredReminder reminder) { return(reminder.Appointment.Interval.ToString("{0:g} - {1:g}", null)); }
public static string SerializeReminder(TriggeredReminder reminder) { return(reminder.Id + ":" + reminder.Appointment.RecurrenceIndex.ToString()); }