示例#1
0
    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);
    }
示例#2
0
    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;
        }
    }
示例#3
0
    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();
    }
示例#4
0
 public void PickFireDate()
 {
     _datePickState = DatePickState.FireDate;
     ControlCalendarPopup(true);
 }