Пример #1
0
 public static void UpdateTime(this UIDatePicker picker, ITimePicker timePicker)
 {
     if (picker != null)
     {
         picker.Date = new DateTime(1, 1, 1).Add(timePicker.Time).ToNSDate();
     }
 }
Пример #2
0
        public static string ToFormattedString(this ITimePicker timePicker)
        {
            var time   = timePicker.Time;
            var format = timePicker.Format;

            return(time.ToFormattedString(format));
        }
Пример #3
0
        internal static void SetTime(this MauiTimePicker mauiTimePicker, ITimePicker timePicker)
        {
            var time   = timePicker.Time;
            var format = timePicker.Format;

            mauiTimePicker.Text = time.ToFormattedString(format);
        }
Пример #4
0
        public static void UpdateTextColor(this TimePicker platformTimePicker, ITimePicker timePicker)
        {
            Color textColor = timePicker.TextColor;

            UI.Xaml.Media.Brush?brush = textColor?.ToPlatform();

            if (brush is null)
            {
                platformTimePicker.Resources.Remove("TimePickerButtonForeground");
                platformTimePicker.Resources.Remove("TimePickerButtonForegroundPointerOver");
                platformTimePicker.Resources.Remove("TimePickerButtonForegroundPressed");
                platformTimePicker.Resources.Remove("TimePickerButtonForegroundDisabled");

                platformTimePicker.ClearValue(TimePicker.ForegroundProperty);
            }
            else
            {
                platformTimePicker.Resources["TimePickerButtonForeground"]            = brush;
                platformTimePicker.Resources["TimePickerButtonForegroundPointerOver"] = brush;
                platformTimePicker.Resources["TimePickerButtonForegroundPressed"]     = brush;
                platformTimePicker.Resources["TimePickerButtonForegroundDisabled"]    = brush;

                platformTimePicker.Foreground = brush;
            }
        }
        async Task ValidateTime(ITimePicker timePickerStub, Action action = null)
        {
            var actual = await GetValueAsync(timePickerStub, handler =>
            {
                var native = GetNativeTimePicker(handler);
                action?.Invoke();
                return(native.Text);
            });

            var expected = timePickerStub.ToFormattedString();

            Assert.Equal(actual, expected);
        }
Пример #6
0
        public static void UpdateTime(this TimePicker nativeTimePicker, ITimePicker timePicker)
        {
            nativeTimePicker.Time = timePicker.Time;

            if (timePicker.Format?.Contains('H', StringComparison.Ordinal) == true)
            {
                nativeTimePicker.ClockIdentifier = "24HourClock";
            }
            else
            {
                nativeTimePicker.ClockIdentifier = "12HourClock";
            }
        }
Пример #7
0
        public static void UpdateTextColor(this TimePicker platformTimePicker, ITimePicker timePicker)
        {
            var brush = timePicker.TextColor?.ToPlatform();

            if (brush is null)
            {
                platformTimePicker.Resources.RemoveKeys(TextColorResourceKeys);
            }
            else
            {
                platformTimePicker.Resources.SetValueForAllKey(TextColorResourceKeys, brush);
            }

            platformTimePicker.RefreshThemeResources();
        }
Пример #8
0
        public static void UpdateTime(this MauiTimePicker mauiTimePicker, ITimePicker timePicker, UIDatePicker?picker)
        {
            if (picker != null)
            {
                picker.Date = new DateTime(1, 1, 1).Add(timePicker.Time).ToNSDate();
            }

            var cultureInfo = Culture.CurrentCulture;

            if (string.IsNullOrEmpty(timePicker.Format))
            {
                NSLocale locale = new NSLocale(cultureInfo.TwoLetterISOLanguageName);

                if (picker != null)
                {
                    picker.Locale = locale;
                }
            }

            var time   = timePicker.Time;
            var format = timePicker.Format;

            mauiTimePicker.Text = time.ToFormattedString(format, cultureInfo);

            if (timePicker.Format?.Contains('H') == true)
            {
                var      ci     = new CultureInfo("de-DE");
                NSLocale locale = new NSLocale(ci.TwoLetterISOLanguageName);

                if (picker != null)
                {
                    picker.Locale = locale;
                }
            }
            else if (timePicker.Format?.Contains('h') == true)
            {
                var      ci     = new CultureInfo("en-US");
                NSLocale locale = new NSLocale(ci.TwoLetterISOLanguageName);

                if (picker != null)
                {
                    picker.Locale = locale;
                }
            }

            mauiTimePicker.UpdateCharacterSpacing(timePicker);
        }
Пример #9
0
        public static void UpdateTime(this MauiTimePicker mauiTimePicker, ITimePicker timePicker, UIDatePicker?picker)
        {
            picker?.UpdateTime(timePicker);

            var cultureInfo = Culture.CurrentCulture;

            if (string.IsNullOrEmpty(timePicker.Format))
            {
                NSLocale locale = new NSLocale(cultureInfo.TwoLetterISOLanguageName);

                if (picker != null)
                {
                    picker.Locale = locale;
                }
            }

            var time   = timePicker.Time;
            var format = timePicker.Format;

            mauiTimePicker.Text = time.ToFormattedString(format, cultureInfo);

            if (format != null)
            {
                if (format.IndexOf("H", StringComparison.Ordinal) != -1)
                {
                    var      ci     = new CultureInfo("de-DE");
                    NSLocale locale = new NSLocale(ci.TwoLetterISOLanguageName);

                    if (picker != null)
                    {
                        picker.Locale = locale;
                    }
                }
                else if (format.IndexOf("h", StringComparison.Ordinal) != -1)
                {
                    var      ci     = new CultureInfo("en-US");
                    NSLocale locale = new NSLocale(ci.TwoLetterISOLanguageName);

                    if (picker != null)
                    {
                        picker.Locale = locale;
                    }
                }
            }

            mauiTimePicker.UpdateCharacterSpacing(timePicker);
        }
Пример #10
0
 public static void UpdateTime(this MauiTimePicker mauiTimePicker, ITimePicker view)
 {
     mauiTimePicker.SetTime(view);
 }
Пример #11
0
 public static void UpdateCharacterSpacing(this TimePicker platformTimePicker, ITimePicker timePicker)
 {
     platformTimePicker.CharacterSpacing = timePicker.CharacterSpacing.ToEm();
 }
Пример #12
0
 public static void UpdateTime(this MauiTimePicker mauiTimePicker, ITimePicker timePicker)
 {
     mauiTimePicker.SetTime(timePicker);
 }
Пример #13
0
 public static void UpdateTime(this MauiTimePicker nativeView, ITimePicker view)
 {
     nativeView.UpdateTime(view, null);
 }
Пример #14
0
 public static void UpdateFont(this MauiTimePicker mauiTimePicker, ITimePicker timePicker, IFontManager fontManager) =>
 mauiTimePicker.UpdateFont(timePicker.Font, fontManager);
Пример #15
0
 public static void UpdateFormat(this MauiTimePicker mauiTimePicker, ITimePicker timePicker)
 {
     mauiTimePicker.UpdateTime(timePicker, null);
 }
Пример #16
0
 public static void UpdateTime(this Entry platformTimePicker, ITimePicker timePicker)
 {
     // Xamarin using DateTime formatting (https://developer.xamarin.com/api/property/Xamarin.Forms.TimePicker.Format/)
     platformTimePicker.Text = new DateTime(Time.Ticks).ToString(timePicker.Format ?? s_defaultFormat);
 }
Пример #17
0
 public static void UpdateFont(this TimePicker nativeTimePicker, ITimePicker timePicker, IFontManager fontManager) =>
 nativeTimePicker.UpdateFont(timePicker.Font, fontManager);
Пример #18
0
 public static void UpdateFormat(this UIDatePicker picker, ITimePicker timePicker)
 {
     picker.UpdateTime(timePicker);
 }
Пример #19
0
 public static void UpdateFormat(this MauiTimePicker nativeView, ITimePicker view, UIDatePicker?picker)
 {
     nativeView.UpdateTime(view, picker);
 }
 public static void MapDrawTime(ICanvas canvas, RectF dirtyRect, ITimePickerDrawable drawable, ITimePicker view)
 => drawable.DrawTime(canvas, dirtyRect, view);
Пример #21
0
        public static void UpdateCharacterSpacing(this MauiTimePicker mauiTimePicker, ITimePicker timePicker)
        {
            var textAttr = mauiTimePicker.AttributedText?.WithCharacterSpacing(timePicker.CharacterSpacing);

            if (textAttr != null)
            {
                mauiTimePicker.AttributedText = textAttr;
            }
        }
Пример #22
0
 public static void UpdateTime(this GraphicsTimePicker nativeView, ITimePicker timePicker)
 {
     nativeView.Time = timePicker.Time;
 }
Пример #23
0
 public static void UpdateFont(this TimePicker platformTimePicker, ITimePicker timePicker, IFontManager fontManager) =>
 platformTimePicker.UpdateFont(timePicker.Font, fontManager);
Пример #24
0
 public static void UpdateCharacterSpacing(this TimePicker nativeTimePicker, ITimePicker timePicker)
 {
     nativeTimePicker.CharacterSpacing = timePicker.CharacterSpacing.ToEm();
 }
Пример #25
0
        public static void UpdateTextColor(this TimePicker nativeTimePicker, ITimePicker timePicker, WBrush?defaultForeground)
        {
            Color textColor = timePicker.TextColor;

            nativeTimePicker.Foreground = textColor == null ? (defaultForeground ?? textColor?.ToNative()) : textColor.ToNative();
        }
Пример #26
0
 public static void UpdateTextAlignment(this MauiTimePicker textField, ITimePicker timePicker)
 {
     // TODO: Update TextAlignment based on the EffectiveFlowDirection property.
 }
Пример #27
0
 public static void UpdateFormat(this Entry platformTimePicker, ITimePicker timePicker)
 {
     UpdateTime(platformTimePicker, timePicker);
 }
Пример #28
0
 public static void UpdateCharacterSpacing(this MauiTimePicker mauiTimePicker, ITimePicker timePicker)
 {
     mauiTimePicker.LetterSpacing = timePicker.CharacterSpacing.ToEm();
 }
Пример #29
0
 public static void UpdateFormat(this MauiTimePicker mauiTimePicker, ITimePicker timePicker, UIDatePicker?picker)
 {
     mauiTimePicker.UpdateTime(timePicker, picker);
 }
Пример #30
0
        public static void UpdateFont(this MauiTimePicker mauiTimePicker, ITimePicker timePicker, IFontManager fontManager)
        {
            var uiFont = fontManager.GetFont(timePicker.Font);

            mauiTimePicker.Font = uiFont;
        }