private async Task Save() { if (!string.IsNullOrEmpty(Name)) { Name = Name.TrimStart().TrimEnd(); } if (!string.IsNullOrEmpty(WakeUpText)) { WakeUpText = WakeUpText.TrimStart().TrimEnd(); } if (!string.IsNullOrEmpty(PackageName)) { PackageName = PackageName.TrimStart().TrimEnd(); } Alarm.TimeOffset = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hours, Time.Minutes, 0); if (string.IsNullOrEmpty(Name)) { await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotAlarmName, AppResources.OK); } else if (Alarm.TimeOffset.Subtract(DateTime.Now).Ticks < 0 && !DaysOfWeek.GetHasADayBeenSelected(Alarm.Days)) { await Application.Current.MainPage.DisplayAlert("", AppResources.SetTimePast, AppResources.OK); } else if (string.IsNullOrEmpty(WakeUpText) && Alarm.HasWakeUpText) { await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotWordsThatWakeMeUp, AppResources.OK); } else if (string.IsNullOrEmpty(PackageName) && Alarm.IsLinkOtherApp) { await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotLinkOtherApps, AppResources.OK); } else { if (!Alarm.IsActive) { Alarm.ChangeIsActive(Alarm, true); } Alarm.IsLaterAlarm = false; Alarm.IsGoOffPreAlarm = false; var id = Service.SaveAlarm(Alarm); if (Preferences.Get("MaxAlarmId", 3) < id) { Preferences.Set("MaxAlarmId", id); } await ClosePopup(); var diffString = CreateDateString.CreateTimeRemainingString(Alarm.NextAlarmTime); DependencyService.Get <IToastService>().Show(diffString); } }
private void SetLaterAlarm(int minutes) { var alarmTime = SetLaterAlarmAndGetLaterAlarmTime(minutes); AlarmHelper.SetLaterAlarm(alarm); //AlarmController.SetLaterAlarmByManager(alarm, (long)diffTimeSpan.TotalMilliseconds); alarmService.SaveAlarmAtLocal(alarm); countDownForFailed.Cancel(); Toast.MakeText(ApplicationContext, CreateDateString.CreateTimeRemainingString(alarmTime), ToastLength.Long).Show(); NotificationAndroid.NotifyLaterAlarm(alarm, Intent); }
protected override void OnUserLeaveHint() { if (IsNotDelayAlarm) { var alarmTime = GetLaterAlarmTimeForNotDelayAlarm(3); AlarmHelper.SetLaterAlarm(alarm); alarmService.SaveAlarmAtLocal(alarm); Toast.MakeText(ApplicationContext, CreateDateString.CreateTimeRemainingString(alarmTime), ToastLength.Long).Show(); FinishAndRemoveTask(); return; } if (!IsFinished) { SetLaterAlarm(5); FinishAndRemoveTask(); } base.OnUserLeaveHint(); }