public void PickEndDate() { _datePickState = DatePickState.EndDate; // if user clicked on a <pick end date> option by input field, activate toggle automatically _endsOnToggles[1].SetValue(true); ControlCalendarPopup(true); }
public void ControlCalendarPopup(bool enable) { _calendarPopup.SetActive(enable); // we need to set both focus and selected because if Calendar asset limitation - it uses focusedDate everywhere, and it changes on month change (next/prev) without exact date selection if (enable) { if (_datePickState == DatePickState.FireDate) { _calendar.focusedDate = _calendar.selectedDate = _originalReminderData.fireDate.Date; } else if (_datePickState == DatePickState.EndDate) { if (_originalReminderData.endDate != DateTime.MaxValue) { _calendar.focusedDate = _calendar.selectedDate = _originalReminderData.endDate.Date; } else { // set a next day by default _calendar.focusedDate = _calendar.selectedDate = _originalReminderData.fireDate.AddDays(1); } } } else { if (_datePickState == DatePickState.FireDate) { // keep original time _tempReminderData.fireDate = _calendar.selectedDate.Date + _tempReminderData.fireDate.TimeOfDay; // deselect all days for (int i = 0; i < _daysOfWeekToggles.Length; i++) { _daysOfWeekToggles[i].SetValue(false); } // clear list to make correct days selection if user switch to Week or Fortnight _selectedDays.Clear(); } else if (_datePickState == DatePickState.EndDate) { _tempReminderData.endDate = _calendar.selectedDate.Date + _tempReminderData.fireDate.AddMinutes(1).TimeOfDay; } UpdateView(); // reset state _datePickState = DatePickState.None; } }
private void ShowStarted() { // reset all previous ui settings _datePickState = DatePickState.None; // deselect days foreach (StateChangeToggle stateChangeToggle in _daysOfWeekToggles) { stateChangeToggle.SetValue(false); } _selectedDays.Clear(); // set 1st end on toggle option ON by default _endsOnToggles[0].SetValue(true); UpdateView(); }
public void PickFireDate() { _datePickState = DatePickState.FireDate; ControlCalendarPopup(true); }