Ejemplo n.º 1
0
        private void PickerFocused(object sender, Xamarin.Forms.FocusEventArgs e)
        {
            EntryDeadline.Unfocus();
            Unfocus();

            var dpc = new DatePromptConfig();

            dpc.OkText        = AppResources.OK;
            dpc.CancelText    = AppResources.Cancel;
            dpc.IsCancellable = true;
            dpc.MinimumDate   = DateTime.Today.AddDays(1);
            dpc.SelectedDate  = ViewModel.DeadlineDT.Date;
            dpc.Title         = AppResources.PickDeadlineDate;
            dpc.OnAction      = dateResult =>
            {
                if (dateResult.Ok)
                {
                    var date = dateResult.SelectedDate.Date;
                    date = date.AddSeconds(86399);//23:59.59 of selected day

                    ViewModel.Deadline = DateTimeHelper.ToUnixTime(date.ToUniversalTime());

                    EntryDeadline.Text = ViewModel.DeadlineString;

                    SelectButton(CustomDateButton);
                }
            };

            UserDialogs.Instance.DatePrompt(dpc);
        }
Ejemplo n.º 2
0
        public static DatePickerDialog Build(Activity activity, DatePromptConfig config)
        {
            var dateTime = config.SelectedDate ?? DateTime.Now;
            var dialog   = new DatePickerDialog(
                IsBrokenSamsungDevice()
                    ? new ContextThemeWrapper(activity, Resource.Style.ThemeHoloLightDialog)
                    : activity,
                (sender, args) => { },
                dateTime.Year,
                dateTime.Month - 1,
                dateTime.Day
                );

            dialog.SetCancelable(false);

            if (!String.IsNullOrWhiteSpace(config.Title))
            {
                dialog.SetTitle(config.Title);
            }

            if (config.MinimumDate != null)
            {
                dialog.DatePicker.MinDate = config.MinimumDate.Value.ToUnixTimestamp();
            }

            if (config.MaximumDate != null)
            {
                dialog.DatePicker.MaxDate = config.MaximumDate.Value.ToUnixTimestamp();
            }

            if (config.IsCancellable)
            {
                dialog.SetButton(
                    (int)DialogButtonType.Negative,
                    new SpannableString(config.CancelText),
                    (sender, args) => config
                    .OnAction?
                    .Invoke(new DatePromptResult(
                                false,
                                dialog.DatePicker.DateTime.Date
                                ))
                    );
            }
            dialog.SetButton(
                (int)DialogButtonType.Positive,
                new SpannableString(config.OkText),
                (sender, args) => config
                .OnAction?
                .Invoke(new DatePromptResult(
                            true,
                            dialog.DatePicker.DateTime.Date
                            ))
                );
            return(dialog);
        }
Ejemplo n.º 3
0
        private async void EndDate()
        {
            DatePromptConfig datePromptConfig = new DatePromptConfig();

            datePromptConfig.MaximumDate = DateTime.Now;
            datePromptConfig.CancelText  = "Cancelar";
            datePromptConfig.OkText      = "Aceptar";
            this.EndDateValue            = await UserDialogs.Instance.DatePromptAsync(datePromptConfig);

            this.EndDateString = this.EndDateValue.SelectedDate.ToString(DateTimeFormatString.LatinDate);
        }
Ejemplo n.º 4
0
        private void DatePrompt()
        {
            var dpc = new DatePromptConfig();

            dpc.Title        = "DatePrompt";
            dpc.OkText       = "おっけー";
            dpc.CancelText   = "キャンセル";
            dpc.OnAction     = (result) => DatePromptOnAction(result);
            dpc.SelectedDate = DateTime.Now.Date;

            _dialogs.DatePrompt(dpc);
        }
Ejemplo n.º 5
0
        public void SetDate()
        {
            var config     = new DatePromptConfig();
            var dialogDate = _dialogs.DatePrompt(config);

            config.OnAction = async result => {
                if (result.Ok)
                {
                    this.DateValue.Value = result.SelectedDate;
                    await GetStatistic();
                }
            };
        }
Ejemplo n.º 6
0
        public async Task <DatePromptResult> DisplayDatePrompt(string title, string accept, string cancel)
        {
            var datePromptConfig = new DatePromptConfig
            {
                Title        = title,
                CancelText   = cancel,
                OkText       = accept,
                SelectedDate = DateTime.Today,
                UnspecifiedDateTimeKindReplacement = DateTimeKind.Local
            };

            return(await UserDialogs.Instance.DatePromptAsync(datePromptConfig));
        }
        public static DatePickerDialog Build(Activity activity, DatePromptConfig config)
        {
            var dateTime = config.SelectedDate ?? DateTime.Now;
            var dialog   = new DatePickerDialog(
                activity,
                (sender, args) => { },
                dateTime.Year,
                dateTime.Month + 1,
                dateTime.Day
                );

            dialog.SetCancelable(false);

            if (!String.IsNullOrWhiteSpace(config.Title))
            {
                dialog.SetTitle(config.Title);
            }

            if (config.MinimumDate != null)
            {
                dialog.DatePicker.MinDate = config.MinimumDate.Value.ToUnixTimestamp();
            }

            if (config.MaximumDate != null)
            {
                dialog.DatePicker.MaxDate = config.MaximumDate.Value.ToUnixTimestamp();
            }

            if (config.IsCancellable)
            {
                dialog.SetButton(
                    (int)DialogButtonType.Negative,
                    new SpannableString(config.CancelText),
                    (sender, args) =>
                {
                    config.OnResult?.Invoke(new DatePromptResult(false, dialog.DatePicker.DateTime.Date));
                }
                    );
            }
            dialog.SetButton(
                (int)DialogButtonType.Positive,
                new SpannableString(config.OkText),
                (sender, args) =>
            {
                config.OnResult?.Invoke(new DatePromptResult(true, dialog.DatePicker.DateTime.Date));
            }
                );
            return(dialog);
        }
Ejemplo n.º 8
0
        private async void date_Clicked(object sender, EventArgs e)
        {
            DatePromptConfig prompt = new DatePromptConfig();

            prompt.MaximumDate  = DateTime.Today;
            prompt.SelectedDate = DateTime.Today;

            var result = await UserDialogs.Instance.DatePromptAsync(prompt);


            if (prompt.SelectedDate != null)
            {
                DateTime date = (DateTime)result.SelectedDate;
                DayMediaObservableCollection scrollToItem;

                MediaManager.allMediaDict.TryGetValue(date, out scrollToItem);

                //Get a date after the time selected
                if (scrollToItem == null)
                {
                    //Dates goes from smallest to largest (latest to earliest chronologically ...)
                    List <DateTime> dates = MediaManager.allMediaDict.Keys.ToList();

                    if (date > dates[dates.Count - 1])
                    {
                        date = dates[dates.Count - 1];
                    }
                    else if (date < dates[0])
                    {
                        date = dates[0];
                    }

                    for (int i = 0; i <= dates.Count; i++)
                    {
                        if (date <= dates[i])
                        {
                            date = dates[i];
                            break;
                        }
                    }

                    scrollToItem = MediaManager.allMediaDict[date];
                }


                flowListView.FlowScrollTo(scrollToItem.getFirstItem(), ScrollToPosition.Center, false);
            }
        }
Ejemplo n.º 9
0
        public static DatePickerDialog Build(Activity activity, DatePromptConfig config)
        {
            var dateTime = config.SelectedDate ?? DateTime.Now;
            var dialog = new DatePickerDialog(
                activity,
                (sender, args) => { },
                dateTime.Year,
                dateTime.Month - 1,
                dateTime.Day
            );
            dialog.SetCancelable(false);

            if (!String.IsNullOrWhiteSpace(config.Title))
                dialog.SetTitle(config.Title);

            if (config.MinimumDate != null)
                dialog.DatePicker.MinDate = config.MinimumDate.Value.ToUnixTimestamp();

            if (config.MaximumDate != null)
                dialog.DatePicker.MaxDate = config.MaximumDate.Value.ToUnixTimestamp();

            if (config.IsCancellable)
            {
                dialog.SetButton(
                    (int) DialogButtonType.Negative,
                    new SpannableString(config.CancelText),
                    (sender, args) => config
                        .OnAction?
                        .Invoke(new DatePromptResult(
                            false,
                            dialog.DatePicker.DateTime.Date
                        ))
                );
            }
            dialog.SetButton(
                (int)DialogButtonType.Positive,
                new SpannableString(config.OkText),
                (sender, args) => config
                    .OnAction?
                    .Invoke(new DatePromptResult(
                        true,
                        dialog.DatePicker.DateTime.Date
                    ))
            );
            return dialog;
        }
Ejemplo n.º 10
0
 public override IDisposable DatePrompt(DatePromptConfig config)
 {
     Dispatch(() =>
     {
         var calendar = new System.Windows.Controls.Calendar()
         {
             DisplayDateStart = config.MinimumDate,
             DisplayDateEnd   = config.MaximumDate,
             DisplayMode      = System.Windows.Controls.CalendarMode.Month,
             SelectionMode    = System.Windows.Controls.CalendarSelectionMode.SingleDate
         };
         if (config.SelectedDate != null)
         {
             DateTime selectedDate = DateTime.Today;
             if (selectedDate > (config.SelectedDate ?? DateTime.MaxValue))
             {
                 selectedDate = config.SelectedDate ?? DateTime.MaxValue;
             }
             if (selectedDate < (config.SelectedDate ?? DateTime.MinValue))
             {
                 selectedDate = config.SelectedDate ?? DateTime.MinValue;
             }
             calendar.SelectedDate = selectedDate;
         }
         FormsContentDialog dialog = new FormsContentDialog()
         {
             Title   = config.Title,
             Content = new System.Windows.Controls.Viewbox()
             {
                 Stretch          = System.Windows.Media.Stretch.Uniform,
                 StretchDirection = System.Windows.Controls.StretchDirection.UpOnly,
                 Child            = calendar,
             },
             IsPrimaryButtonEnabled   = true,
             PrimaryButtonText        = config.OkText,
             IsSecondaryButtonEnabled = config.IsCancellable,
             SecondaryButtonText      = config.CancelText
         };
         dialog.PrimaryButtonClick   += (s, e) => { HideContentDialog(); config.OnAction(new DatePromptResult(true, calendar.SelectedDate ?? DateTime.Today)); e.Cancel = true; };
         dialog.SecondaryButtonClick += (s, e) => { HideContentDialog(); config.OnAction(new DatePromptResult(false, calendar.SelectedDate ?? DateTime.Today)); e.Cancel = true; };
         ShowContentDialog(dialog);
     });
     return(new DisposableAction(HideContentDialog));
 }
Ejemplo n.º 11
0
        public override IDisposable DatePrompt(DatePromptConfig config)
        {
            var picker = new AI.AIDatePickerController
            {
                Mode = UIDatePickerMode.Date,
                SelectedDateTime = config.SelectedDate ?? DateTime.Now,
                OkText = config.OkText,
                CancelText = config.CancelText,
                Ok = x => config.OnAction?.Invoke(new DatePromptResult (true, x.SelectedDateTime)),
                Cancel = x => config.OnAction?.Invoke(new DatePromptResult(false, x.SelectedDateTime)),
            };
            if (config.MaximumDate != null)
                picker.MaximumDateTime = config.MaximumDate;

            if (config.MinimumDate != null)
                picker.MinimumDateTime = config.MinimumDate;

            return this.Present(picker);
        }
Ejemplo n.º 12
0
        public async Task <(bool Ok, DateTime SelectedDate)> DatePromptAsync(
            DateTime?selectedDate         = null,
            string title                  = null,
            string okText                 = null,
            string cancelText             = null,
            DateTime?minimumDate          = null,
            DateTime?maximumDate          = null,
            CancellationToken cancelToken = default(CancellationToken))
        {
            var config = new DatePromptConfig
            {
                OkText       = okText ?? "Ok",
                CancelText   = cancelText ?? "Cancel",
                SelectedDate = selectedDate,
                MinimumDate  = minimumDate,
                MaximumDate  = maximumDate,
                Title        = title,
            };

            var dialog = await _dialogs.DatePromptAsync(config, cancelToken);

            return(dialog.Ok, dialog.SelectedDate);
        }
Ejemplo n.º 13
0
 public override IDisposable DatePrompt(DatePromptConfig config)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 14
0
 public IDisposable DatePrompt(DatePromptConfig config) => UserDialogs.Instance.DatePrompt(config);
Ejemplo n.º 15
0
 public Task <DatePromptResult> DatePromptAsync(DatePromptConfig config, CancellationToken?cancelToken = null)
 {
     return(UserDialogs.Instance.DatePromptAsync(config, cancelToken));
 }
Ejemplo n.º 16
0
        public override IDisposable DatePrompt(DatePromptConfig config)
        {
            #if WINDOWS_PHONE_APP
            throw new NotImplementedException();
            #else
            var picker = new DatePickerControl();
            if (config.MinimumDate != null)
                picker.DatePicker.MinDate = config.MinimumDate.Value;

            if (config.MaximumDate != null)
                picker.DatePicker.MaxDate = config.MaximumDate.Value;

            var popup = this.CreatePopup(picker);
            if (!config.IsCancellable)
                picker.CancelButton.Visibility = Visibility.Collapsed;
            else
            {
                picker.CancelButton.Content = config.CancelText;
                picker.CancelButton.Click += (sender, args) =>
                {
                    var result = new DatePromptResult(false, this.GetDateForCalendar(picker.DatePicker));
                    config.OnAction?.Invoke(result);
                    popup.IsOpen = false;
                };
            }

            picker.OkButton.Content = config.OkText;
            picker.OkButton.Click += (sender, args) =>
            {
                var result = new DatePromptResult(true, this.GetDateForCalendar(picker.DatePicker));
                config.OnAction?.Invoke(result);
                popup.IsOpen = false;
            };
            if (config.SelectedDate != null)
            {
                picker.DatePicker.SelectedDates.Add(config.SelectedDate.Value);
                picker.DatePicker.SetDisplayDate(config.SelectedDate.Value);
            }
            return this.DispatchAndDispose(
                () => popup.IsOpen = true,
                () => popup.IsOpen = false
            );
            #endif
        }
Ejemplo n.º 17
0
 public override IDisposable DatePrompt(DatePromptConfig config)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 18
0
 public Task <DatePromptResult> DatePromptAsync(DatePromptConfig config, CancellationToken?cancelToken = null)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 19
0
 public Task <DatePromptResult> DatePromptAsync(DatePromptConfig config, CancellationToken?cancelToken = null)
 {
     return(null);
 }
Ejemplo n.º 20
0
 public IDisposable DatePrompt(DatePromptConfig config)
 {
     return(new DisposableMock());
 }
Ejemplo n.º 21
0
 public Task <DatePromptResult> DatePromptAsync(DatePromptConfig config, CancellationToken?cancelToken = null)
 {
     return(Task.FromResult(new DatePromptResult(false, DateTime.Now)));
 }
Ejemplo n.º 22
0
 public IDisposable DatePrompt(DatePromptConfig config)
 {
     return(null);
 }
Ejemplo n.º 23
0
 public Task <DatePromptResult> DatePromptAsync(DatePromptConfig config, CancellationToken?cancelToken = default(CancellationToken?))
 {
     return(Task.FromResult(new DatePromptResult(true, DateTime.Now)));
 }