示例#1
0
        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);
 }
示例#3
0
 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;
 }
示例#4
0
        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());
 }