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

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

58 lines
1.8 KiB
C#
Raw Normal View History

using System.ComponentModel;
using Android.Content;
using Android.Content.Res;
2019-05-13 21:25:20 +02:00
using Bit.Droid.Renderers;
using Bit.Droid.Utilities;
2019-05-08 05:22:25 +02:00
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
2019-05-08 21:00:45 +02:00
[assembly: ExportRenderer(typeof(Picker), typeof(CustomPickerRenderer))]
2019-05-13 21:25:20 +02:00
namespace Bit.Droid.Renderers
2019-05-08 05:22:25 +02:00
{
2019-05-08 21:00:45 +02:00
public class CustomPickerRenderer : PickerRenderer
2019-05-08 05:22:25 +02:00
{
2019-05-08 21:00:45 +02:00
public CustomPickerRenderer(Context context)
2019-05-08 05:22:25 +02:00
: base(context)
{ }
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
UpdateBorderColor();
if (Control != null && e.NewElement != null)
2019-05-08 05:22:25 +02:00
{
Control.SetPadding(Control.PaddingLeft, Control.PaddingTop - 10, Control.PaddingRight,
Control.PaddingBottom + 20);
}
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == Picker.TextColorProperty.PropertyName)
{
UpdateBorderColor();
}
}
private void UpdateBorderColor()
{
if (Control != null)
{
var states = new[]
{
new[] { Android.Resource.Attribute.StateFocused }, // focused
new[] { -Android.Resource.Attribute.StateFocused }, // unfocused
};
var colors = new int[]
{
ThemeHelpers.PrimaryColor,
ThemeHelpers.MutedColor
};
Control.BackgroundTintList = new ColorStateList(states, colors);
}
}
2019-05-08 05:22:25 +02:00
}
}