diff --git a/src/Android/Controls/ExtendedButtonRenderer.cs b/src/Android/Controls/ExtendedButtonRenderer.cs index c3ea01690..19f14acad 100644 --- a/src/Android/Controls/ExtendedButtonRenderer.cs +++ b/src/Android/Controls/ExtendedButtonRenderer.cs @@ -14,6 +14,7 @@ namespace Bit.Android.Controls { base.OnElementChanged(e); SetPadding(); + SetUppercase(); } protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) @@ -23,6 +24,10 @@ namespace Bit.Android.Controls { SetPadding(); } + else if(e.PropertyName == ExtendedButton.UppercaseProperty.PropertyName) + { + SetUppercase(); + } } private void SetPadding() @@ -37,5 +42,14 @@ namespace Bit.Android.Controls (int)element.Padding.Bottom); } } + + private void SetUppercase() + { + var element = Element as ExtendedButton; + if(element != null && !element.Uppercase) + { + Control.TransformationMethod = null; + } + } } } diff --git a/src/App/Controls/ExtendedButton.cs b/src/App/Controls/ExtendedButton.cs index 56e2c6d6d..4f5960ae2 100644 --- a/src/App/Controls/ExtendedButton.cs +++ b/src/App/Controls/ExtendedButton.cs @@ -8,11 +8,20 @@ namespace Bit.App.Controls { public static readonly BindableProperty PaddingProperty = BindableProperty.Create(nameof(Padding), typeof(Thickness), typeof(ExtendedButton), default(Thickness)); + public static readonly BindableProperty UppercaseProperty = + BindableProperty.Create(nameof(Padding), typeof(bool), typeof(ExtendedButton), + Device.OS == TargetPlatform.Android ? true : false); public Thickness Padding { get { return (Thickness)GetValue(PaddingProperty); } set { SetValue(PaddingProperty, value); } } + + public bool Uppercase + { + get { return (bool)GetValue(UppercaseProperty); } + set { SetValue(UppercaseProperty, value); } + } } } diff --git a/src/App/Pages/LoginPage.cs b/src/App/Pages/LoginPage.cs index 2f2bb4960..d8b149997 100644 --- a/src/App/Pages/LoginPage.cs +++ b/src/App/Pages/LoginPage.cs @@ -90,12 +90,14 @@ namespace Bit.App.Pages } }; - var forgotPasswordButton = new Button + var forgotPasswordButton = new ExtendedButton { Text = "Get your master password hint", Style = (Style)Application.Current.Resources["btn-primaryAccent"], Margin = new Thickness(15, 0, 15, 25), - Command = new Command(async () => await ForgotPasswordAsync()) + Command = new Command(async () => await ForgotPasswordAsync()), + Uppercase = false, + BackgroundColor = Color.Transparent }; var layout = new StackLayout diff --git a/src/iOS/Controls/ExtendedButtonRenderer.cs b/src/iOS/Controls/ExtendedButtonRenderer.cs index d45640e6a..098fdbcc4 100644 --- a/src/iOS/Controls/ExtendedButtonRenderer.cs +++ b/src/iOS/Controls/ExtendedButtonRenderer.cs @@ -15,6 +15,7 @@ namespace Bit.iOS.Controls { base.OnElementChanged(e); SetPadding(); + SetUppercase(); } protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) @@ -24,6 +25,10 @@ namespace Bit.iOS.Controls { SetPadding(); } + else if(e.PropertyName == ExtendedButton.UppercaseProperty.PropertyName) + { + SetUppercase(); + } } private void SetPadding() @@ -38,5 +43,14 @@ namespace Bit.iOS.Controls (int)element.Padding.Right); } } + + private void SetUppercase() + { + var element = Element as ExtendedButton; + if(element != null && element.Uppercase) + { + Control.TitleLabel.Text = Control.TitleLabel.Text.ToUpper(); + } + } } }