bitwarden-mobile/src/Android/Renderers/ExtendedSliderRenderer.cs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

57 lines
1.7 KiB
C#
Raw Normal View History

using System.ComponentModel;
using Android.Content;
2019-05-13 21:24:38 +02:00
using Android.Graphics.Drawables;
using AndroidX.Core.Content.Resources;
2019-05-13 21:24:38 +02:00
using Bit.App.Controls;
using Bit.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(ExtendedSlider), typeof(ExtendedSliderRenderer))]
namespace Bit.Droid.Renderers
{
public class ExtendedSliderRenderer : SliderRenderer
{
public ExtendedSliderRenderer(Context context)
: base(context)
{}
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
base.OnElementChanged(e);
UpdateColor();
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == ExtendedSlider.ThumbBorderColorProperty.PropertyName)
{
UpdateColor();
}
}
private void UpdateColor()
{
if (Control != null && Element is ExtendedSlider view)
2019-05-13 21:24:38 +02:00
{
var t = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.slider_thumb, null);
if (t is GradientDrawable thumb)
2019-05-13 21:24:38 +02:00
{
if (view.ThumbColor == Color.Default)
2019-06-22 15:45:54 +02:00
{
thumb.SetColor(Color.White.ToAndroid());
}
else
{
thumb.SetColor(view.ThumbColor.ToAndroid());
}
2019-05-31 17:03:32 +02:00
thumb.SetStroke(3, view.ThumbBorderColor.ToAndroid());
2019-05-13 21:24:38 +02:00
Control.SetThumb(thumb);
}
}
}
}
}