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" />
+
+
+
+
+
+