public Window_EditReminder(Reminder reminder, bool fromNextLoadQueue) : this() { this.reminder = reminder; title = reminder.Title; body = reminder.Body; selectedLetterDef = reminder.LetterDef; fireOnTick = fromNextLoadQueue ? 0 : reminder.FireOnTick; nextLoad = fromNextLoadQueue; if (nextLoad) { selectedTimeRep = TimeRepresentation.NextLoad; } if (reminder.RecurEvery.HasValue) { recur = true; var days = Mathf.FloorToInt((float)reminder.RecurEvery.Value / (float)GenDate.TicksPerDay); var ticksRemainder = reminder.RecurEvery.Value - days * GenDate.TicksPerDay; var hours = Mathf.CeilToInt((float)ticksRemainder / (float)GenDate.TicksPerHour); recurEveryDays = days; recurEveryHours = hours; } }
private void SaveAndClose() { if (!Validate()) { return; } var comp = Current.Game.GetComponent <RemindersGameComponent>(); if (reminder != null) { comp.ReminderQueue.InnerList.Remove(reminder); comp.RemindersOnNextLoad.Remove(reminder); } var recurDuration = recurEveryDays * GenDate.TicksPerDay + recurEveryHours * GenDate.TicksPerHour; var newReminder = new Reminder() { Title = title, Body = body, FireOnTick = nextLoad ? -1 : fireOnTick, LetterDef = selectedLetterDef, RecurEvery = recur ? (int?)recurDuration : null }; if (nextLoad) { comp.RemindersOnNextLoad.Add(newReminder); } else { comp.ReminderQueue.Push(newReminder); } Close(); }
public override void GameComponentTick() { base.GameComponentTick(); if (Game.tickManager.TicksGame == ticksOnLoad + DelayToSendOnLoadLetters) { SendOnLoadLetters(); } if (Game.tickManager.TicksGame % GenDate.TicksPerHour != 0) { return; } if (!VectorForTime.HasValue) { return; } if (ReminderQueue.Count == 0) { return; } Log.Debug(GenDate.DateFullStringWithHourAt(Game.tickManager.TicksAbs, VectorForTime.GetValueOrDefault())); while (ReminderQueue.Peek().FireOnTick <= GenTicks.TicksGame) { var reminder = ReminderQueue.Pop(); SendLetter(reminder); if (reminder.RecurEvery.HasValue) { ReminderQueue.Push(Reminder.Recur(reminder)); } if (ReminderQueue.Count == 0) { break; } } }
private void SaveChanges_Click(object sender, RoutedEventArgs e) { var parameter1 = new Reminder(); if (String.IsNullOrWhiteSpace(ReminderNameBox.Text)) { parameter1.ReminderName = "Untitled Reminder"; } else { parameter1.ReminderName = ReminderNameBox.Text; } if (String.IsNullOrWhiteSpace(LocationBox.Text)) { parameter1.LocationName = "Location: None"; } else { parameter1.LocationName = LocationBox.Text; } if (String.IsNullOrWhiteSpace(EmailBox.Text)) { parameter1.EmailName = "Email: None"; } else { parameter1.EmailName = EmailBox.Text; } if (String.IsNullOrWhiteSpace(NotesBox.Text)) { parameter1.ReminderNotes = "Notes: None"; } else { parameter1.ReminderNotes = NotesBox.Text; } if (String.IsNullOrWhiteSpace(LinkBox.Text)) { parameter1.ReminderLinks = "Links: None"; } else { parameter1.ReminderLinks = LinkBox.Text; } var reminderDate = ReminderDatePicker.Date; if (reminderDate.HasValue) { DateTime date1 = reminderDate.Value.DateTime; var notificationDate = ReminderDatePicker.Date.Value.DateTime; parameter1.NotificationTime = notificationDate; var formattedDate = date1.ToString("MM/dd/yyyy"); parameter1.ReminderDate = formattedDate; } else { parameter1.ReminderDate = "Date: None"; parameter1.NotificationTime = DateTime.Now; } var reminderTimeHours = ReminderTimePicker.Time.Hours; var reminderTimeMinutes = ReminderTimePicker.Time.Minutes; string amPm; if (reminderTimeHours > 12) { reminderTimeHours -= 12; amPm = "PM"; } else { amPm = "AM"; } string formattedHours; if (reminderTimeHours < 10) { formattedHours = reminderTimeHours.ToString(); formattedHours = "0" + formattedHours; } else { formattedHours = reminderTimeHours.ToString(); } string formattedMinutes; if (reminderTimeMinutes < 10) { formattedMinutes = reminderTimeMinutes.ToString(); formattedMinutes = "0" + formattedMinutes; } else { formattedMinutes = reminderTimeMinutes.ToString(); } string timeString; if (reminderTimeHours == 0 && reminderTimeMinutes == 0) { timeString = "Time: None"; } else { timeString = formattedHours + ":" + formattedMinutes + " " + amPm; } parameter1.ReminderTime = timeString; int reminderComboBox; if (NotificationComboBox.SelectedValue != null) { switch (NotificationComboBox.SelectedValue.ToString()) { case "5 Minutes Before": reminderComboBox = 5; break; case "10 Minutes Before": reminderComboBox = 10; break; case "15 Minutes Before": reminderComboBox = 15; break; case "30 Minutes Before": reminderComboBox = 30; break; case "1 Hour Before": reminderComboBox = 60; break; case "5 Hours Before": reminderComboBox = 300; break; default: reminderComboBox = 0; break; } } else { reminderComboBox = 0; } parameter1.ReminderNotification = reminderComboBox; ToastVisual visual = new ToastVisual() { BindingGeneric = new ToastBindingGeneric() { Children = { new AdaptiveText() { Text = "Reminder" }, new AdaptiveText() { Text = "Body" }, new AdaptiveText() { Text = "End Reminder" } } } }; ToastContent toastContent = new ToastContent() { Visual = visual }; var toast = new ToastNotification(toastContent.GetXml()); //ToastNotificationManager.CreateToastNotifier().Show(toast); toast.ExpirationTime = DateTime.Now.AddSeconds(5); //var toast = new Windows.UI.Notifications.ScheduledToastNotification(toastContent.GetXml, ReminderDatePicker.Date.Value.DateTime); if (ReminderDatePicker.Date.HasValue) { if (ReminderDatePicker.Date.Value.Date == DateTime.Today.Date) { if (ReminderTimePicker.Time.Hours < DateTime.Now.Hour) { ToastNotificationManager.CreateToastNotifier().Show(toast); } else { //var timeSpan = new TimeSpan(0, ReminderTimePicker.Time.Hours - DateTime.Now.Hour, ReminderTimePicker.Time.Minutes - DateTime.Now.Minute, 0); var midnight = DateTime.Now; var minutesCounter = ReminderTimePicker.Time.Minutes - DateTime.Now.Minute; var hoursCounter = ReminderTimePicker.Time.Hours - DateTime.Now.Hour; var intMinutesCounter = Convert.ToInt32(minutesCounter); var intHoursCounter = Convert.ToInt32(hoursCounter); var timeSpan = new TimeSpan(0, intHoursCounter, intMinutesCounter, 0); DateTimeOffset scheduledTime = midnight + timeSpan; var toast1 = new ScheduledToastNotification(toastContent.GetXml(), scheduledTime); //ToastNotificationManager.CreateToastNotifier().Show(toast); ToastNotificationManager.CreateToastNotifier().AddToSchedule(toast1); } } } //var toast = new ScheduledToastNotification(toastContent.GetXml(), ReminderDatePicker.Date.Value.DateTime); //ToastNotificationManager.CreateToastNotifier().AddToSchedule(toast); this.Frame.Navigate(typeof(MainPage), parameter1); }
private void Create_Click(object sender, RoutedEventArgs e) { var parameter1 = new Reminder(); if (String.IsNullOrWhiteSpace(ReminderNameBox.Text)) { parameter1.ReminderName = "Untitled Reminder"; } else { parameter1.ReminderName = ReminderNameBox.Text; } if (String.IsNullOrWhiteSpace(LocationBox.Text)) { parameter1.LocationName = "Location: None"; } else { parameter1.LocationName = LocationBox.Text; } if (String.IsNullOrWhiteSpace(EmailBox.Text)) { parameter1.EmailName = "Email: None"; } else { parameter1.EmailName = EmailBox.Text; } if (String.IsNullOrWhiteSpace(NotesBox.Text)) { parameter1.ReminderNotes = "Notes: None"; } else { parameter1.ReminderNotes = NotesBox.Text; } if (String.IsNullOrWhiteSpace(LinkBox.Text)) { parameter1.ReminderLinks = "Links: None"; } else { parameter1.ReminderLinks = LinkBox.Text; } var reminderDate = ReminderDatePicker.Date; if (reminderDate.HasValue) { DateTime date1 = reminderDate.Value.DateTime; var formattedDate = date1.ToString("MM/dd/yyyy"); parameter1.ReminderDate = formattedDate; } else { parameter1.ReminderDate = "Date: None"; } var reminderTimeHours = ReminderTimePicker.Time.Hours; var reminderTimeMinutes = ReminderTimePicker.Time.Minutes; string amPm; if (reminderTimeHours > 12) { reminderTimeHours -= 12; amPm = "PM"; } else { amPm = "AM"; } string formattedHours; if (reminderTimeHours < 10) { formattedHours = reminderTimeHours.ToString(); formattedHours = "0" + formattedHours; } else { formattedHours = reminderTimeHours.ToString(); } string formattedMinutes; if (reminderTimeMinutes < 10) { formattedMinutes = reminderTimeMinutes.ToString(); formattedMinutes = "0" + formattedMinutes; } else { formattedMinutes = reminderTimeMinutes.ToString(); } string timeString; if (reminderTimeHours == 0 && reminderTimeMinutes == 0) { timeString = "Time: None"; } else { timeString = formattedHours + ":" + formattedMinutes + " " + amPm; } parameter1.ReminderTime = timeString; this.Frame.Navigate(typeof(MainPage), parameter1); }
private void DoReminderRow(Rect rect, Reminder reminder, bool zebra, List <Reminder> listToRemoveFrom) { if (zebra) { Widgets.DrawLightHighlight(rect); } Widgets.DrawHighlightIfMouseover(rect); var deleteRect = rect; deleteRect.width = 30f; var deletePressed = Widgets.ButtonImage(deleteRect, DeleteX); if (deletePressed) { Dialog_MessageBox confirmDelete = Dialog_MessageBox.CreateConfirmation( I18n.Translate("ConfirmDelete.Body"), () => listToRemoveFrom.Remove(reminder), destructive: true, I18n.Translate("ConfirmDelete.Title") ); Find.WindowStack.Add(confirmDelete); } var iconRect = rect; iconRect.xMin += 35f; iconRect.width = 30f; var icon = reminder.LetterDef.Icon; if (icon != null) { var iconColor = reminder.LetterDef.color; GUI.color = iconColor; Widgets.DrawTextureFitted(iconRect, icon, .8f); if (reminder.RecurEvery.HasValue) { Widgets.DrawTextureFitted(iconRect, RecurArrow, .5f); } } var fromNowRect = rect; fromNowRect.xMin = iconRect.xMax + 5f; fromNowRect.width = 80f; GUI.color = new Color(.75f, .75f, .75f); Widgets.Label(fromNowRect, reminder.FromNow.Truncate(fromNowRect.width)); var titleRect = rect; titleRect.xMin = fromNowRect.xMax + 5f; titleRect.width = 300f; GUI.color = Color.white; Widgets.Label(titleRect, reminder.Title.Truncate(titleRect.width)); var bodyRect = rect; bodyRect.xMin = titleRect.xMax + 5f; Widgets.Label(bodyRect, reminder.Body.Replace('\n', ' ').Truncate(bodyRect.width)); var rowRect = rect; rowRect.xMin = deleteRect.xMax; if (Widgets.ButtonInvisible(rowRect)) { Find.WindowStack.Add(new Window_EditReminder(reminder, reminder.FireOnTick == -1)); } }