dark keyboard on dark themes. resolves #588

This commit is contained in:
Kyle Spearrin 2019-08-28 20:27:15 -04:00
parent e2d1da02d3
commit b5dcdc74d7
9 changed files with 82 additions and 2 deletions

View file

@ -1,4 +1,4 @@
using System;
using System;
using Bit.iOS.Autofill.Models;
using Foundation;
using UIKit;
@ -27,6 +27,10 @@ namespace Bit.iOS.Autofill
CancelBarButton.Title = AppResources.Cancel;
SearchBar.Placeholder = AppResources.Search;
SearchBar.BackgroundColor = SearchBar.BarTintColor = ThemeHelpers.ListHeaderBackgroundColor;
if(!ThemeHelpers.LightTheme)
{
SearchBar.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
TableView.RowHeight = UITableView.AutomaticDimension;
TableView.EstimatedRowHeight = 44;

View file

@ -8,6 +8,7 @@ using Bit.App.Resources;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Models.View;
using Bit.iOS.Core.Utilities;
using Bit.iOS.Core.Views;
using CoreGraphics;
using Foundation;
@ -203,6 +204,10 @@ namespace Bit.iOS.Core.Services
{
input.KeyboardType = UIKeyboardType.NumberPad;
}
if(!ThemeHelpers.LightTheme)
{
input.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
});
var vc = GetPresentedViewController();
vc?.PresentViewController(alert, true, null);

View file

@ -41,6 +41,11 @@ namespace Bit.iOS.Core.Views
BackgroundColor = ThemeHelpers.BackgroundColor
};
if(!ThemeHelpers.LightTheme)
{
TextView.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
ContentView.Add(TextView);
ContentView.AddConstraints(new NSLayoutConstraint[] {
NSLayoutConstraint.Create(TextView, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, ContentView, NSLayoutAttribute.Leading, 1f, 15f),
@ -78,6 +83,11 @@ namespace Bit.iOS.Core.Views
BackgroundColor = ThemeHelpers.BackgroundColor
};
if(!ThemeHelpers.LightTheme)
{
TextField.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
if(useLabelAsPlaceholder)
{
TextField.Placeholder = labelName;

View file

@ -41,6 +41,11 @@ namespace Bit.iOS.Core.Views
BackgroundColor = ThemeHelpers.BackgroundColor
};
if(!ThemeHelpers.LightTheme)
{
TextField.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
var width = (float)UIScreen.MainScreen.Bounds.Width;
var toolbar = new UIToolbar(new RectangleF(0, 0, width, 44))
{

View file

@ -20,6 +20,7 @@ namespace Bit.iOS.Renderers
Control.TextContainerInset = new UIEdgeInsets(0, 0, 0, 0);
Control.TextContainer.LineFragmentPadding = 0;
UpdateTintColor();
UpdateKeyboardAppearance();
}
}
@ -36,5 +37,13 @@ namespace Bit.iOS.Renderers
{
Control.TintColor = Element.TextColor.ToUIColor();
}
private void UpdateKeyboardAppearance()
{
if(!Core.Utilities.ThemeHelpers.LightTheme)
{
Control.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
}
}
}

View file

@ -18,6 +18,7 @@ namespace Bit.iOS.Renderers
Control.ClearButtonMode = UITextFieldViewMode.WhileEditing;
UpdateTintColor();
UpdateFontSize();
UpdateKeyboardAppearance();
iOSHelpers.SetBottomBorder(Control);
}
}
@ -57,5 +58,13 @@ namespace Bit.iOS.Renderers
{
Control.TintColor = Element.TextColor.ToUIColor();
}
private void UpdateKeyboardAppearance()
{
if(!Core.Utilities.ThemeHelpers.LightTheme)
{
Control.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
}
}
}

View file

@ -17,6 +17,15 @@ namespace Bit.iOS.Renderers
var descriptor = UIFontDescriptor.PreferredBody;
Control.Font = UIFont.FromDescriptor(descriptor, descriptor.PointSize);
iOSHelpers.SetBottomBorder(Control);
UpdateKeyboardAppearance();
}
}
private void UpdateKeyboardAppearance()
{
if(!Core.Utilities.ThemeHelpers.LightTheme)
{
Control.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
}
}

View file

@ -0,0 +1,28 @@
using Bit.iOS.Renderers;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(SearchBar), typeof(CustomSearchBarRenderer))]
namespace Bit.iOS.Renderers
{
public class CustomSearchBarRenderer : SearchBarRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e)
{
base.OnElementChanged(e);
if(e.NewElement is SearchBar)
{
UpdateKeyboardAppearance();
}
}
private void UpdateKeyboardAppearance()
{
if(!Core.Utilities.ThemeHelpers.LightTheme)
{
Control.KeyboardAppearance = UIKeyboardAppearance.Dark;
}
}
}
}

View file

@ -137,6 +137,7 @@
<Compile Include="Migration\KeyChainStorageService.cs" />
<Compile Include="NFCReaderDelegate.cs" />
<Compile Include="Renderers\CustomButtonRenderer.cs" />
<Compile Include="Renderers\CustomSearchBarRenderer.cs" />
<Compile Include="Renderers\CustomTabbedRenderer.cs" />
<Compile Include="Renderers\CustomPickerRenderer.cs" />
<Compile Include="Renderers\CustomEntryRenderer.cs" />