Пример #1
0
        public static void UpdateBarTextColor(this AToolbar nativeToolbar, Toolbar toolbar)
        {
            var textColor = toolbar.BarTextColor;

            // Because we use the same toolbar across multiple navigation pages (think tabbed page with nested NavigationPage)
            // We need to reset the toolbar text color to the default color when it's unset
            if (_defaultTitleTextColor == null)
            {
                var a = TintTypedArray.ObtainStyledAttributes(nativeToolbar.Context?.GetThemedContext(), null, Resource.Styleable.Toolbar, Resource.Attribute.toolbarStyle, 0);
                _defaultTitleTextColor = a.GetColorStateList(Resource.Styleable.Toolbar_titleTextColor);
                a.Recycle();
            }

            if (textColor != null)
            {
                nativeToolbar.SetTitleTextColor(textColor.ToPlatform().ToArgb());
            }
            else
            {
                nativeToolbar.SetTitleTextColor(_defaultTitleTextColor);
            }

            if (nativeToolbar.NavigationIcon is DrawerArrowDrawable icon)
            {
                if (textColor != null)
                {
                    _defaultNavigationIconColor = icon.Color;
                    icon.Color = textColor.ToPlatform().ToArgb();
                }
                else if (_defaultNavigationIconColor != null)
                {
                    icon.Color = _defaultNavigationIconColor.Value;
                }
            }
        }
Пример #2
0
        protected override void SetupDefaults(MauiPicker nativeView)
        {
            base.SetupDefaults(nativeView);

            DefaultBackground  = nativeView.Background;
            DefaultTitleColors = nativeView.HintTextColors;
        }
Пример #3
0
        protected override void SetupDefaults(AppCompatEditText nativeView)
        {
            base.SetupDefaults(nativeView);

            DefaultTextColors            = nativeView.TextColors;
            DefaultPlaceholderTextColors = nativeView.HintTextColors;
        }
Пример #4
0
        protected override AppCompatEditText CreateNativeView()
        {
            var nativeEntry = new AppCompatEditText(Context);

            _defaultPlaceholderColors = nativeEntry.HintTextColors;
            return(nativeEntry);
        }
Пример #5
0
        public static bool IsOneColor(
            this ColorStateList?csl,
            int[][] ColorStates,
            AColor color)
        {
            if (csl == null)
            {
                return(false);
            }

            if (ColorStates.Length == 0)
            {
                return(false);
            }

            for (int i = 0; i < ColorStates.Length; i++)
            {
                var colorState = ColorStates[i];
                if (csl.GetColorForState(colorState, color) != color)
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #6
0
        public static void UpdateThumbColor(this ASwitch aSwitch, ISwitch view, ColorStateList?defaultColorStateList)
        {
            var thumbColor = view.ThumbColor;

            if (!thumbColor.IsDefault)
            {
                aSwitch.ThumbTintMode = APorterDuff.Mode.SrcAtop;
                aSwitch.ThumbTintList = thumbColor.ToDefaultColorStateList();
            }
            else
            {
                aSwitch.ThumbTintList = defaultColorStateList;
                aSwitch.ThumbTintMode = APorterDuff.Mode.SrcIn;
            }
        }
        protected override AppCompatEditText CreateNativeView()
        {
            var editText = new AppCompatEditText(Context)
            {
                ImeOptions    = ImeAction.Done,
                Gravity       = GravityFlags.Top,
                TextAlignment = Android.Views.TextAlignment.ViewStart,
            };

            editText.SetSingleLine(false);
            editText.SetHorizontallyScrolling(false);

            _defaultPlaceholderColors = editText.HintTextColors;

            return(editText);
        }
Пример #8
0
        public static void UpdateTextColor(this EditText editText, IEntry entry, ColorStateList?defaultColor)
        {
            var textColor = entry.TextColor;

            if (textColor.IsDefault)
            {
                editText.SetTextColor(defaultColor);
            }
            else
            {
                var androidColor = textColor.ToNative();

                if (!editText.TextColors.IsOneColor(ColorStates, androidColor))
                {
                    var acolor = androidColor.ToArgb();
                    editText.SetTextColor(new ColorStateList(ColorStates, new[] { acolor, acolor }));
                }
            }
        }
Пример #9
0
        public static void UpdateTrackColor(this ASwitch aSwitch, ISwitch view, ColorStateList?defaultTrackColor)
        {
            var trackColor = view.TrackColor;

            if (aSwitch.Context == null)
            {
                return;
            }

            if (trackColor.IsDefault)
            {
                aSwitch.TrackTintMode = APorterDuff.Mode.SrcAtop;
                aSwitch.TrackTintList = defaultTrackColor;
            }
            else
            {
                aSwitch.TrackTintMode = APorterDuff.Mode.SrcIn;
                aSwitch.TrackTintList = trackColor.ToDefaultColorStateList();
            }
        }
Пример #10
0
 protected override void SetupDefaults(EditText nativeView)
 {
     base.SetupDefaults(nativeView);
     DefaultTextColors = nativeView.TextColors;
 }
Пример #11
0
 void SetupDefaults(MauiDatePicker nativeView)
 {
     _defaultBackground = nativeView.Background;
     _defaultTextColors = nativeView.TextColors;
 }
Пример #12
0
 void SetupDefaults(MauiDatePicker platformView)
 {
     _defaultBackground = platformView.Background;
     _defaultTextColors = platformView.TextColors;
 }
 void SetupDefaults(MauiPicker nativeView)
 {
     DefaultBackground  = nativeView.Background;
     DefaultTitleColors = nativeView.HintTextColors;
 }
Пример #14
0
 public static void UpdateTextColor(this EditText editText, Graphics.Color textColor, ColorStateList?defaultColor)
 {
     if (textColor == null)
     {
         if (defaultColor != null)
         {
             editText.SetTextColor(defaultColor);
         }
     }
     else
     {
         var androidColor = textColor.ToNative();
         if (!editText.TextColors.IsOneColor(ColorStates.EditText, androidColor))
         {
             editText.SetTextColor(ColorStateListExtensions.CreateEditText(androidColor));
         }
     }
 }
Пример #15
0
        public static void UpdatePlaceholderColor(this AppCompatEditText editText, IEditor editor, ColorStateList?defaultColor)
        {
            var placeholderTextColor = editor.PlaceholderColor;

            if (placeholderTextColor.IsDefault)
            {
                editText.SetHintTextColor(defaultColor);
            }
            else
            {
                var androidColor = placeholderTextColor.ToNative();

                if (!editText.HintTextColors.IsOneColor(ColorExtensions.States, androidColor))
                {
                    var acolor = androidColor.ToArgb();
                    editText.SetHintTextColor(new ColorStateList(ColorExtensions.States, new[] { acolor, acolor }));
                }
            }
        }
Пример #16
0
        public static void UpdateTextColor(this TextView textView, ITextStyle textStyle, ColorStateList?defaultColor)
        {
            var textColor = textStyle.TextColor;

            if (textColor != null)
            {
                textView.SetTextColor(textColor.ToNative());
                return;
            }

            if (defaultColor != null)
            {
                textView.SetTextColor(defaultColor);
            }
        }
Пример #17
0
        public static void UpdateMaximumTrackColor(this SeekBar seekBar, ISlider slider, ColorStateList?defaultProgressBackgroundTintList, PorterDuff.Mode?defaultProgressBackgroundTintMode)
        {
            if (slider.MaximumTrackColor == null)
            {
                if (defaultProgressBackgroundTintList != null)
                {
                    seekBar.ProgressBackgroundTintList = defaultProgressBackgroundTintList;
                }

                if (defaultProgressBackgroundTintMode != null)
                {
                    seekBar.ProgressBackgroundTintMode = defaultProgressBackgroundTintMode;
                }
            }
            else
            {
                seekBar.ProgressBackgroundTintList = ColorStateList.ValueOf(slider.MaximumTrackColor.ToPlatform());
                seekBar.ProgressBackgroundTintMode = PorterDuff.Mode.SrcIn;
            }
        }
Пример #18
0
        public static void UpdateMinimumTrackColor(this SeekBar seekBar, ISlider slider, ColorStateList?defaultProgressTintList, PorterDuff.Mode?defaultProgressTintMode)
        {
            if (slider.MinimumTrackColor == Forms.Color.Default)
            {
                if (defaultProgressTintList != null)
                {
                    seekBar.ProgressTintList = defaultProgressTintList;
                }

                if (defaultProgressTintMode != null)
                {
                    seekBar.ProgressTintMode = defaultProgressTintMode;
                }
            }
            else
            {
                seekBar.ProgressTintList = ColorStateList.ValueOf(slider.MinimumTrackColor.ToNative());
                seekBar.ProgressTintMode = PorterDuff.Mode.SrcIn;
            }
        }
Пример #19
0
        public static void UpdateTextColor(this MauiPicker platformPicker, IPicker picker, ColorStateList?defaultColor)
        {
            var textColor = picker.TextColor;

            if (textColor == null)
            {
                platformPicker.SetTextColor(defaultColor);
            }
            else
            {
                var androidColor = textColor.ToPlatform();
                if (!platformPicker.TextColors.IsOneColor(ColorStates.EditText, androidColor))
                {
                    platformPicker.SetTextColor(ColorStateListExtensions.CreateEditText(androidColor));
                }
            }
        }
Пример #20
0
        public static void UpdateTextColor(this MauiPicker platformPicker, IPicker picker, ColorStateList?defaultColor)
        {
            var textColor = picker.TextColor;

            if (textColor == null)
            {
                platformPicker.SetTextColor(defaultColor);
            }
            else
            {
                if (PlatformInterop.CreateEditTextColorStateList(platformPicker.TextColors, textColor.ToPlatform()) is ColorStateList c)
                {
                    platformPicker.SetTextColor(c);
                }
            }
        }
Пример #21
0
 public static void UpdateTextColor(this AppCompatButton button, XColor color, ColorStateList?defaultColor)
 {
     if (color.IsDefault)
     {
         button.SetTextColor(defaultColor);
     }
     else
     {
         button.SetTextColor(color.ToNative());
     }
 }
Пример #22
0
        public static void UpdatePlaceholderColor(this SearchView searchView, ISearchBar searchBar, ColorStateList?defaultPlaceholderColor, EditText?editText = null)
        {
            editText ??= searchView.GetFirstChildOfType <EditText>();

            if (editText == null)
            {
                return;
            }

            var placeholderTextColor = searchBar.PlaceholderColor;

            if (placeholderTextColor == null)
            {
                editText.SetHintTextColor(defaultPlaceholderColor);
            }
            else
            {
                var androidColor = placeholderTextColor.ToPlatform();
                if (!editText.HintTextColors.IsOneColor(ColorStates.EditText, androidColor))
                {
                    editText.SetHintTextColor(ColorStateListExtensions.CreateEditText(androidColor));
                }
            }
        }
Пример #23
0
        public static void UpdateTextColor(this TextView textView, ITextStyle textStyle, ColorStateList?defaultColor)
        {
            var textColor = textStyle.TextColor;

            if (textColor.IsDefault)
            {
                textView.SetTextColor(defaultColor);
            }
            else
            {
                textView.SetTextColor(textColor.ToNative());
            }
        }
Пример #24
0
 public static void UpdateTextColor(this AppCompatEditText editText, ITextStyle entry, ColorStateList?defaultColor)
 {
     editText.UpdateTextColor(entry.TextColor, defaultColor);
 }
Пример #25
0
 protected override void SetupDefaults(ASwitch nativeView)
 {
     DefaultTrackColorStateList = nativeView.GetDefaultSwitchTrackColorStateList();
     DefaultThumbColorStateList = nativeView.GetDefaultSwitchThumbColorStateList();
 }
Пример #26
0
        public static void UpdateTextColor(this AppCompatEditText editText, Graphics.Color textColor, ColorStateList?defaultColor)
        {
            if (textColor == null)
            {
                if (defaultColor != null)
                {
                    editText.SetTextColor(defaultColor);
                }
            }
            else
            {
                var androidColor = textColor.ToNative();

                if (!editText.TextColors.IsOneColor(ColorStates, androidColor))
                {
                    var acolor = androidColor.ToArgb();
                    editText.SetTextColor(new ColorStateList(ColorStates, new[] { acolor, acolor }));
                }
            }
        }
        public static void UpdatePlaceholderColor(this SearchView searchView, ISearchBar searchBar, ColorStateList?defaultPlaceholderColor, EditText?editText = null)
        {
            editText ??= searchView.GetFirstChildOfType <EditText>();

            if (editText == null)
            {
                return;
            }

            var placeholderTextColor = searchBar.PlaceholderColor;

            if (placeholderTextColor == null)
            {
                editText.SetHintTextColor(defaultPlaceholderColor);
            }
            else
            {
                var androidColor = placeholderTextColor.ToNative();

                if (!editText.HintTextColors.IsOneColor(ColorExtensions.States, androidColor))
                {
                    var acolor = androidColor.ToArgb();
                    editText.SetHintTextColor(new ColorStateList(ColorExtensions.States, new[] { acolor, acolor }));
                }
            }
        }
Пример #28
0
 public static void UpdatePlaceholderColor(this EditText editText, Graphics.Color placeholderTextColor, ColorStateList?defaultColor)
 {
     if (placeholderTextColor == null)
     {
         editText.SetHintTextColor(defaultColor);
     }
     else
     {
         var androidColor = placeholderTextColor.ToNative();
         if (!editText.HintTextColors.IsOneColor(ColorStates.EditText, androidColor))
         {
             editText.SetHintTextColor(ColorStateListExtensions.CreateEditText(androidColor));
         }
     }
 }
Пример #29
0
 void SetupDefaults(MauiPicker platformView)
 {
     s_defaultBackground  = platformView.Background;
     s_defaultTitleColors = platformView.HintTextColors;
     s_defaultTextColors  = platformView.TextColors;
 }
Пример #30
0
 public static void UpdatePlaceholderColor(this AppCompatEditText editText, IPlaceholder placeholder, ColorStateList?defaultColor)
 {
     editText.UpdatePlaceholderColor(placeholder.PlaceholderColor, defaultColor);
 }