mirror of
https://github.com/bitwarden/mobile.git
synced 2024-09-27 03:52:57 +02:00
4aad34cd75
* Dynamic theme switching and visual tweaks * update action runner to use macos-11 for iOS 15 support * additional tweaks * refinements * refinements * formatting and tweaks
70 lines
2.3 KiB
C#
70 lines
2.3 KiB
C#
using System.ComponentModel;
|
|
using Android.Content;
|
|
using Android.Content.Res;
|
|
using Android.Views.InputMethods;
|
|
using Bit.Droid.Renderers;
|
|
using Bit.Droid.Utilities;
|
|
using Xamarin.Forms;
|
|
using Xamarin.Forms.Platform.Android;
|
|
|
|
[assembly: ExportRenderer(typeof(Editor), typeof(CustomEditorRenderer))]
|
|
namespace Bit.Droid.Renderers
|
|
{
|
|
public class CustomEditorRenderer : EditorRenderer
|
|
{
|
|
public CustomEditorRenderer(Context context)
|
|
: base(context)
|
|
{ }
|
|
|
|
// Workaround for issue described here:
|
|
// https://github.com/xamarin/Xamarin.Forms/issues/8291#issuecomment-617456651
|
|
protected override void OnAttachedToWindow()
|
|
{
|
|
base.OnAttachedToWindow();
|
|
EditText.Enabled = false;
|
|
EditText.Enabled = true;
|
|
}
|
|
|
|
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
|
|
{
|
|
base.OnElementChanged(e);
|
|
UpdateBorderColor();
|
|
if (Control != null && e.NewElement != null)
|
|
{
|
|
Control.SetPadding(Control.PaddingLeft, Control.PaddingTop - 10, Control.PaddingRight,
|
|
Control.PaddingBottom + 20);
|
|
Control.ImeOptions = Control.ImeOptions | (ImeAction)ImeFlags.NoPersonalizedLearning |
|
|
(ImeAction)ImeFlags.NoExtractUi;
|
|
}
|
|
}
|
|
|
|
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
{
|
|
base.OnElementPropertyChanged(sender, e);
|
|
|
|
if (e.PropertyName == Entry.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);
|
|
}
|
|
}
|
|
}
|
|
}
|