Exemplo n.º 1
0
 public void UpdateAlert(Alert alert, bool disable)
 {
     if (disable)
     {
         _alertService.DisableAlert(alert);
         DependencyService.Get <INotificationService>().RemoveTimeNotification(alert);
         DependencyService.Get <IToastService>().ShortMessage("Alert disabled");
         Refresh.Execute(null);
     }
     else
     {
         alert.State = AlertState.Pending;
         _alertService.ActivateAlert(alert);
         var notification = new TimeNotification
         {
             Id    = alert.Id,
             Body  = alert.Description,
             Title = alert.Title,
             Date  = alert.Date,
             Time  = alert.Time
         };
         DependencyService.Get <INotificationService>().ScheduleTimeNotification(notification);
         DependencyService.Get <IToastService>().ShortMessage("Alert reactivated");
         Refresh.Execute(null);
     }
 }
Exemplo n.º 2
0
        public Models.TimeNotification ScheduleTimeNotification(TimeNotification timeNotification)
        {
            try
            {
                Intent intent = new Intent(Android.App.Application.Context, typeof(NotificationSender));

                intent.PutExtra("ID", timeNotification.Id);
                intent.PutExtra("Title", timeNotification.Title);
                intent.PutExtra("Body", timeNotification.Body);
                intent.PutExtra("Type", "TimeNotification");

                PendingIntent broadcast = PendingIntent.GetBroadcast(Android.App.Application.Context,
                                                                     timeNotification.Id,
                                                                     intent,
                                                                     PendingIntentFlags.UpdateCurrent);

                AlarmManager alarmManager = (AlarmManager)Android.App.Application.Context.GetSystemService(AlarmService);


                var date = timeNotification.Date;
                var time = timeNotification.Time;

                Calendar calendar = Calendar.Instance;
                calendar.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis();
                calendar.Set(CalendarField.Year, date.Year);
                calendar.Set(CalendarField.Month, date.Month - 1);
                calendar.Set(CalendarField.DayOfMonth, date.Day);
                calendar.Set(CalendarField.HourOfDay, time.Hours);
                calendar.Set(CalendarField.Minute, time.Minutes);
                calendar.Set(CalendarField.Second, 0);

                alarmManager.SetExact(AlarmType.RtcWakeup, calendar.TimeInMillis, broadcast);

                return(timeNotification);
            }
            catch (Exception)
            {
                return(null);
            }
        }