diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj index 7725cb088..bc1ef7f46 100644 --- a/src/Android/Android.csproj +++ b/src/Android/Android.csproj @@ -79,6 +79,7 @@ + @@ -475,5 +476,8 @@ + + + \ No newline at end of file diff --git a/src/Android/Renderers/ExtendedSliderRenderer.cs b/src/Android/Renderers/ExtendedSliderRenderer.cs new file mode 100644 index 000000000..a8c099d4a --- /dev/null +++ b/src/Android/Renderers/ExtendedSliderRenderer.cs @@ -0,0 +1,33 @@ +using Android.Content; +using Android.Graphics.Drawables; +using Android.Support.V4.Content.Res; +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 e) + { + base.OnElementChanged(e); + if(Control != null && Element is ExtendedSlider view) + { + var t = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.slider_thumb, null); + if(t is GradientDrawable thumb) + { + thumb.SetColor(view.ThumbColor.ToAndroid()); + thumb.SetStroke(1, view.ThumbBorderColor.ToAndroid()); + Control.SetThumb(thumb); + } + } + } + } +} diff --git a/src/Android/Resources/Resource.designer.cs b/src/Android/Resources/Resource.designer.cs index ab9342b10..c0d65988f 100644 --- a/src/Android/Resources/Resource.designer.cs +++ b/src/Android/Resources/Resource.designer.cs @@ -7993,26 +7993,26 @@ namespace Bit.Droid // aapt resource value: 0x7f02005a public const int avd_hide_password = 2130837594; - // aapt resource value: 0x7f02014c - public const int avd_hide_password_1 = 2130837836; - // aapt resource value: 0x7f02014d - public const int avd_hide_password_2 = 2130837837; + public const int avd_hide_password_1 = 2130837837; // aapt resource value: 0x7f02014e - public const int avd_hide_password_3 = 2130837838; + public const int avd_hide_password_2 = 2130837838; + + // aapt resource value: 0x7f02014f + public const int avd_hide_password_3 = 2130837839; // aapt resource value: 0x7f02005b public const int avd_show_password = 2130837595; - // aapt resource value: 0x7f02014f - public const int avd_show_password_1 = 2130837839; - // aapt resource value: 0x7f020150 - public const int avd_show_password_2 = 2130837840; + public const int avd_show_password_1 = 2130837840; // aapt resource value: 0x7f020151 - public const int avd_show_password_3 = 2130837841; + public const int avd_show_password_2 = 2130837841; + + // aapt resource value: 0x7f020152 + public const int avd_show_password_3 = 2130837842; // aapt resource value: 0x7f02005c public const int card = 2130837596; @@ -8698,11 +8698,11 @@ namespace Bit.Droid // aapt resource value: 0x7f02013f public const int notification_sm = 2130837823; - // aapt resource value: 0x7f02014a - public const int notification_template_icon_bg = 2130837834; - // aapt resource value: 0x7f02014b - public const int notification_template_icon_low_bg = 2130837835; + public const int notification_template_icon_bg = 2130837835; + + // aapt resource value: 0x7f02014c + public const int notification_template_icon_low_bg = 2130837836; // aapt resource value: 0x7f020140 public const int notification_tile_bg = 2130837824; @@ -8723,16 +8723,19 @@ namespace Bit.Droid public const int shield = 2130837829; // aapt resource value: 0x7f020146 - public const int splash_screen = 2130837830; + public const int slider_thumb = 2130837830; // aapt resource value: 0x7f020147 - public const int tooltip_frame_dark = 2130837831; + public const int splash_screen = 2130837831; // aapt resource value: 0x7f020148 - public const int tooltip_frame_light = 2130837832; + public const int tooltip_frame_dark = 2130837832; // aapt resource value: 0x7f020149 - public const int yubikey = 2130837833; + public const int tooltip_frame_light = 2130837833; + + // aapt resource value: 0x7f02014a + public const int yubikey = 2130837834; static Drawable() { diff --git a/src/Android/Resources/drawable/slider_thumb.xml b/src/Android/Resources/drawable/slider_thumb.xml new file mode 100644 index 000000000..4e4140591 --- /dev/null +++ b/src/Android/Resources/drawable/slider_thumb.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/App/Controls/ExtendedSlider.cs b/src/App/Controls/ExtendedSlider.cs new file mode 100644 index 000000000..00aa8fab8 --- /dev/null +++ b/src/App/Controls/ExtendedSlider.cs @@ -0,0 +1,16 @@ +using Xamarin.Forms; + +namespace Bit.App.Controls +{ + public class ExtendedSlider : Slider + { + public static readonly BindableProperty ThumbBorderColorProperty = BindableProperty.Create( + nameof(ThumbBorderColor), typeof(Color), typeof(ExtendedSlider), Color.Gray); + + public Color ThumbBorderColor + { + get => (Color)GetValue(ThumbBorderColorProperty); + set => SetValue(ThumbBorderColorProperty, value); + } + } +} diff --git a/src/App/Pages/Generator/GeneratorPage.xaml b/src/App/Pages/Generator/GeneratorPage.xaml index 58a52cd46..45e4f2fc1 100644 --- a/src/App/Pages/Generator/GeneratorPage.xaml +++ b/src/App/Pages/Generator/GeneratorPage.xaml @@ -35,7 +35,8 @@ Text="{Binding Password}" Margin="0, 20" StyleClass="text-lg" - HorizontalOptions="Center" /> + HorizontalOptions="Center" + LineBreakMode="CharacterWrap" />