Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement] Rounded corners on BoxView #1998

Merged

Conversation

@jsuarezruiz
Copy link
Collaborator

commented Mar 1, 2018

Description of Change

Add a CornerRadius bindable property to BoxView.

struct CornerRadius
{
     public double TopLeft { get; set; }
     public double TopRight { get; set; }
     public double BottomLeft { get; set; }
     public double BottomRight { get; set; }

      public static implicit operator CornerRadius(double uniformRadius)
      {
            return new CornerRadius(uniformRadius);
      }
 }

public static readonly BindableProperty CornerRadiusProperty =
BindableProperty.Create(nameof(CornerRadius), typeof(CornerRadius), default(CornerRadius));

Supported platforms: Android, iOS, UWP, macOS, GTK and WPF.

  • Android: Use GradientDrawable and SetCornerRadii method.
  • iOS: Use UIBezierPath.
  • UWP: Use RadiusX and RadiusY properties from the Rectangle ().
  • macOS: Use NSBezierPath.
  • GTK: Use Cairo drawing Arcs.
  • WPF: Use a VisualBrush in a Rectangle.
  • Tizen: It's not possible.

cornerradius boxview

Bugs Fixed

API Changes

List all API changes here (or just put None), example:

Added:

  • CornerRadius BoxView.CornerRadius{ get; set; } //Bindable Property

Known Issues

Expect blurry border scaling with CornerRadius not empty and API < 25

PR Checklist

  • Has tests (if omitted, state reason in description)
  • Rebased on top of master at time of PR
  • Changes adhere to coding standard
  • Consolidate commits as makes sense
@samhouts samhouts added this to Ready in v3.1.0 via automation Mar 2, 2018
@samhouts samhouts moved this from Ready to In Review in v3.1.0 Mar 2, 2018
Copy link
Member

left a comment

I like this very much, to the point I'd wish at some point we have that property on most/all controls. I did the review in that broader usage light, focusing on the Core part.

Also, you forgot the docs, but don't bother until we're done discussing the API

@@ -8,6 +9,8 @@ public class BoxView : View, IElementConfiguration<BoxView>
{
public static readonly BindableProperty ColorProperty = BindableProperty.Create("Color", typeof(Color), typeof(BoxView), Color.Default);

public static readonly BindableProperty CornerRadiusProperty = BindableProperty.Create("CornerRadius", typeof(CornerRadius), typeof(BoxView), default(CornerRadius));

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

use nameof(CornerRadius)

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 12, 2018

Author Collaborator

Changed!. Right now there are property definitions using string name and others with nameof. It would be good to review them all (maybe in a PR?).

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 15, 2018

Member

It would be good to review them all (maybe in a PR?)

we don't do massive refactoring. that cause major merges issues with unrelated branches.

@@ -0,0 +1,38 @@
using System;

namespace Xamarin.Forms.Core

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

we don't use that namespace, we use Xamarin.Forms

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 12, 2018

Author Collaborator

This is important. Changed.


namespace Xamarin.Forms.Core
{
public struct CornerRadius

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

require a [TypeConverter] so it can be set from XAML and CSS

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 12, 2018

Author Collaborator

It is true!. I have added the Converter.


public CornerRadius(double topLeft, double topRight, double bottomLeft, double bottomRight)
{
if (topLeft < 0 || double.IsNaN(topLeft))

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

don't do value check in the ctor, but when the property is applied.

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 12, 2018

Author Collaborator

Changed.


namespace Xamarin.Forms.Core
{
public struct CornerRadius

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

a good source of inspiration for this class would be Thickness

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 12, 2018

Author Collaborator

It is!

{
public struct CornerRadius
{
public double TopLeft { get; set; }

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

make it immutable by decorating the setter with private

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 12, 2018

Author Collaborator

Done.

{
return new CornerRadius(uniformRadius);
}
}

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

requires Equals, operator ==, operator !=, GetHashCode and Deconstruct implementations

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

well, Deconstruct is optional, but nice to have

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 12, 2018

Author Collaborator

Added Equals, operator ==, operator !=, GetHashCode and Deconstruct!

This comment has been minimized.

Copy link
@StephaneDelcroix

namespace Xamarin.Forms.Core
{
public struct CornerRadius

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

As it's a struct, we need a way to figure out if the CornerRadius is the default CornerRadius, or if it was created by one of the parameterized ctor.

If we ever applied this property to, say, Button, having a default CornerRadius would mean "use whatever default on the platform".

There are multiple ways of implementing this, I'd recommend having a private field isnotdefault (we can not initialize fields with default values in structs) and set that field to true in the parameterized ctors.

That value should then be used in Equals and operators, so we can do if (my box.CorenerRadius == default(CornerRadius)) {}

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 14, 2018

Author Collaborator

Added a IsDefault in CornerRadius class. Is it what is expected?

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 16, 2018

Member

here's what I meant

	public struct CornerRadius
	{
		public double TopLeft { get; }		//as the properties are only set from the ctor, they do not need an internal setter
		public double TopRight { get; }
		public double BottomLeft { get; }
		public double BottomRight { get; }

		bool isParameterized;

		public CornerRadius(double uniformRadius) : this(uniformRadius, uniformRadius, uniformRadius, uniformRadius)
		{
		}

		public CornerRadius(double topLeft, double topRight, double bottomLeft, double bottomRight)
		{
			isParameterized = true;			//not default anymore
			TopLeft = topLeft;
			TopRight = topRight;
			BottomLeft = bottomLeft;
			BottomRight = bottomRight;
		}

		//...

		bool Equals(CornerRadius other)
		{
			if (!isParameterized && !other.isParameterized)
				return true; //default CornerRadius (created with parameterless ctor, or with default(CornerRadius) are Equal
			return TopLeft == other.TopLeft && TopRight == other.TopRight && BottomLeft == other.BottomLeft && BottomRight == other.BottomRight;
		}

		// ...
	}

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 18, 2018

Author Collaborator

Ahh, now I understood you perfectly. Thank you!

{
if (Element == null)
return;

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 2, 2018

Member

here's a good pattern for setting that property in all renderers:

if (cornerRadius == default(CornerRadius)
    RestoreToDefault(...); //you can not just return, as the property might have been set to a value earlier
else
    ApplyCornerRadius(...);

might be overkill in this case, as BoxView has no native counterpart, and we know the the default is 0;

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2018

@StephaneDelcroix About your remark

I like this very much, to the point I'd wish at some point we have that property on most/all controls. I did the review in that broader usage light, focusing on the Core part.

I am happy Xamarin takes notice of this. Because the way majority of developers use BoxView is to have a rounded background wrapping layout views. Unfortunately the code ends up something like this:

<!--- We want a blue rounded border around a stacked form of input controls -->
<BoxView Padding="10" BackgroundColor="Blue" CornerRadius="7">
   <StackLayout>
        <!-- Entry, Label etc. controls here -->
   </StackLayout
</BoxView>

The BoxView is superfluous making the layout more complex than it should be.

If StackLayout had a CornerRadius property, the layout would be simpler:

<StackLayout Padding="10" BackgroundColor="Blue" CornerRadius="7">
        <!-- Entry, Label etc. controls here -->
</StackLayout>

BoxView is mostly an unnecessary control, unfortunately large majority of devs, including sometimes myself, had to use it, but it's not doing a great job. We need every bit of support to make the Xamarin Forms apps run fast and smooth, especially when they have complex layout, with binding, value converters, etc.

CC'ing @jassmith

@jsuarezruiz, I hope you don't mind for making such a bit off-subject remark.

I am not sure, is there an existing ticket for having CornerRadius right on View class maybe?

@jsuarezruiz

This comment has been minimized.

Copy link
Collaborator Author

commented Mar 2, 2018

Thank you very much for the review @StephaneDelcroix . I will apply changes soon!.
@andreinitescu No, all feedback contributes, thank you. Although I think that maybe you would like this enhancement: #1754

@jassmith

This comment has been minimized.

Copy link
Contributor

commented Mar 2, 2018

@andreinitescu I very much would like to see CornerRadius brought everywhere, ideally whithout dropping a drawable/mask everywhere on Android except when its actually in use.

There is actually already a spec here: #1754

@rmarinho

This comment has been minimized.

Copy link
Member

commented Mar 9, 2018

build

1 similar comment
@rmarinho

This comment has been minimized.

Copy link
Member

commented Mar 9, 2018

build

jsuarezruiz added 3 commits Mar 12, 2018
…etHashCode and Deconstruct)

Added CornerRadiusTypeConverter
Copy link
Member

left a comment

Thanks for fixing my first batch of comment. here's a second one. (again, only reviewed the Core parts)

[TypeConverter (typeof (CornerRadiusTypeConverter))]
public struct CornerRadius
{
public double TopLeft { get; private set; }

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 15, 2018

Member

the private set; isn't even required, as the property is only set from the .ctor

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 15, 2018

Author Collaborator

Ok!

if (ReferenceEquals (null, obj))
return false;

return obj is CornerRadius && Equals ((CornerRadius)obj);

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 15, 2018

Member

return obj is CornerRadius cornerRadius && Equals(cornerRadius);

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 15, 2018

Author Collaborator

Changed.


bool Equals (CornerRadius other)
{
return TopLeft.Equals (other.TopLeft) && TopRight.Equals (other.TopRight) && BottomLeft.Equals (other.BottomLeft) && BottomRight.Equals (other.BottomRight);

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 15, 2018

Member

those are doubles, it's safe to use ==

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 15, 2018

Author Collaborator

Changed.


internal bool IsDefault
{
get { return TopLeft == 0 && TopRight == 0 && BottomLeft == 0 && BottomRight == 0; }

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 15, 2018

Member

(0,0,0,0) isn't a good default for CornerRadius. Some controls (android buttons, e.g.) are rounded by default. if you want to make them with square angles, you will set button.CornerRadius = new CornerRadius (0,0,0,0). the renderer will then interpret this as Default and will use the default (which is rounded) for the corners.

as this is a struct, you can not have default values for fields (they have to be 0), so you have to use a flag (false by default) that you set to true the non-default ctors. default(CornerRadius) will return a struct with that field unchanged...

if it's unclear, I can do that for you

public double BottomLeft { get; private set; }
public double BottomRight { get; private set; }

internal bool IsDefault

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 15, 2018

Member

no need to expose this. it's not more expensive to do if (cornerRadius == default(CornerRadius))

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 15, 2018

Author Collaborator

Do you mean the property IsDefault?

break;
}
} else if (value.Contains (" ")) { //CSS
var cornerRadius = value.Split(' ');

This comment has been minimized.

Copy link
@StephaneDelcroix

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 15, 2018

Author Collaborator

It is true. Thanks for the warning, I have changed it.


namespace Xamarin.Forms
{
[Xaml.ProvideCompiled ("Xamarin.Forms.Core.XamlC.CornerRadiusTypeConverter")]

This comment has been minimized.

Copy link
@StephaneDelcroix

StephaneDelcroix Mar 15, 2018

Member

you actually do not provide a compiled version of this. you don't have to do it, I will, but remove this attribute.

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 15, 2018

Author Collaborator

Ok.

@StephaneDelcroix

This comment has been minimized.

Copy link
Member

commented on Xamarin.Forms.Core/CornerRadius.cs in f1b0d61 Mar 16, 2018

what I meant was this

 public double TopLeft { get; }
 public double TopRight { get; }
 public double BottomLeft { get; }
 public double BottomRight { get; }
@StephaneDelcroix

This comment has been minimized.

Copy link
Member

commented Mar 18, 2018

Approved the API changes


namespace Xamarin.Forms.Platform.macOS.Controls
{
public class FormsBoxView : NSView

This comment has been minimized.

Copy link
@rmarinho

rmarinho Mar 21, 2018

Member

make this internal

This comment has been minimized.

Copy link
@jsuarezruiz

jsuarezruiz Mar 21, 2018

Author Collaborator

Ok!

@rmarinho rmarinho requested a review from jassmith Mar 21, 2018
@rmarinho

This comment has been minimized.

Copy link
Member

commented Mar 21, 2018

@jsuarezruiz build is failing

Xamarin.Forms.Controls\CoreGalleryPages\CoreBoxViewGalleryPage.cs (36, 138)
Xamarin.Forms.Controls\CoreGalleryPages\CoreBoxViewGalleryPage.cs(36,138): Error CS0246: The type or namespace name 'Core' could not be found (are you missing a using directive or an assembly reference?)
@samhouts samhouts removed this from Done in Enhancements Jun 12, 2018
@petermajor

This comment has been minimized.

Copy link

commented Jun 15, 2018

Hi there... I think there might be an issue with this corner radius calculation in the Android renderer... it doesn't convert the device independent pixels to raw pixels before calling SetCornerRadii

@samhouts samhouts added this to the 3.2.0 milestone Jun 26, 2018
@samhouts samhouts removed this from Done in v3.6.0 Jun 26, 2018
@samhouts samhouts added this to Done in v3.2.0 Jun 26, 2018
@samhouts samhouts referenced this pull request Jul 24, 2018
3 of 3 tasks complete
@samhouts samhouts modified the milestone: 3.2.0 Sep 12, 2018
StephaneDelcroix added a commit that referenced this pull request Sep 14, 2018
Drawing CornerRadius (introduce by #1998) when the CornerRadii are
actually 0 causes scaling artifacts on API < 25.

This fixes the regression when no CornerRadius is set. Expect blurry
border scaling with CornerRadius not empty and API < 25

- fixes #3781
@StephaneDelcroix StephaneDelcroix referenced this pull request Sep 14, 2018
2 of 3 tasks complete
jassmith pushed a commit that referenced this pull request Sep 20, 2018
Drawing CornerRadius (introduce by #1998) when the CornerRadii are
actually 0 causes scaling artifacts on API < 25.

This fixes the regression when no CornerRadius is set. Expect blurry
border scaling with CornerRadius not empty and API < 25

- fixes #3781
jfversluis added a commit to jfversluis/Xamarin.Forms that referenced this pull request Sep 24, 2018
* [C] VisibilityConverter Trims input (xamarin#3581)

For CSS purposes, the VisibilityConverter was added, and actually
replaced the `Boolean.Parse(str)` call for parsing Visibility.
`Boolean.Parse()` trims input, and the converter was not, so this was a
regression.
This changes Trim() the input, to be fully backward compatible.

- fixes xamarin#3554

* Ensure ConstructorCountId and TimeId elements are available before querying them (xamarin#3588)

* For consistency with ResourceDictionary, expose the Source for a StyleSheet (xamarin#2589)

This would allow previewer/designer/reloader to determine the source of a
stylesheet and refresh its content when appropriate.

* Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (xamarin#2589)"

This reverts commit f66a72d.

* Fix NRE; Ret 0 if Text null (xamarin#3594) fixes xamarin#3579

* [UWP, WPF] Fixes rendering of the main page (xamarin#2896) fixes xamarin#2704

* [Core] Ignore Shamehat target when running DesignTimeBuild (xamarin#3605)

* [XamlC] Fix binding compilation fo value types (xamarin#3551)

properly load valuetype arguments of generated setters, using ldarg,
instead of ldarga.

- fixes xamarin#3539

* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* [Android] Fix Label LineHeight (xamarin#3452)

* fix line height android

* Make UAP respect initial LineHeight

* update .create-nuget.bat (xamarin#3638)

* Add Null Check to GetRenderer (xamarin#3575)

- fix xamarin#3563

* Fix 3562 Null Reference Exception (xamarin#3576)

- fixes xamarin#3562

* Fix 3564 Null Reference Exception (xamarin#3578)

- fixes xamarin#3564

* [iOS] AutomationProperty support for cells (xamarin#3313) fixes xamarin#3296

* [iOS] AutomationProperty support for cells

* Add test case to AutomationProperties gallery

* [UWP] Fix crash app when create navigation/tabbed page without children pages fixes xamarin#3188 (xamarin#3514)

* [Android] Use height when determining ScaledScreenSize; fixes xamarin#3609 (xamarin#3641)

* [C] Set binding context on Span Gestures (xamarin#3639)

* [Core] Set binding context on Span Gestures
* [Core] Simplify loop setting child binding context

- fixes xamarin#3524

* Update PULL_REQUEST_TEMPLATE.md

* [Android] remove deprecated AndroidUseLatestPlatformSdk (xamarin#3672)

* [iOS] iPad ActionSheet should always have a Cancel method (xamarin#3636)

* Add repro for xamarin#3049

* [iOS] iPad ActionSheet should always have a Cancel method

fixes xamarin#3049

* [Android] fixes xamarin#3675 - set  initial ScrollView Scroll values when RTL (xamarin#3676)

* [Android] API check for Shadow properties on Button (xamarin#3617) fixes xamarin#2702

* [Android] API check for Shadow properties on Button

* Fix swapped shadow values

* [iOS] fixes xamarin#3525 - add epsilon for float compare (xamarin#3654)

* [iOS] fixes xamarin#3525 - add epsilon for float compare and make region immutable

* [ControlGallery] spread out spans to account for click slop

* [ControlGallery] - adjust span slightly for android test

* [Core] remove private

* Fix text wrapping (xamarin#3671) fixes xamarin#3634

* [GTK] Fix navigation bar visibility updates (xamarin#3651)

* Fix partially  xamarin#3585 (xamarin#3592)

* Make webkit-sharp.dll.config cross-platform

* Update webkit-sharp.dll with missing signals bindings

see: https://github.com/ylatuya/webkit-sharp/tree/fluendo

* [iOS, UWP] fixes xamarin#2894 - Gestures collection changes weren't correctly propagating (xamarin#3643)

* [iOS, UWP] fixes xamarin#2894 - Gestures weren't wiring up to spans in all cases

* [Core] remove ChildGestureRecognizers when spans get removed

* [iOS] removed incorrect return from null

* Fixes xamarin#3663 (xamarin#3684)

* Fix ScrollView Padding issue (xamarin#3685)

* [WPF] Memory leak when you pop a TabbedPage (xamarin#3372) fixes xamarin#3267

* Fix [WPF] Memory leak when you pop a TabbedPage

* Update ViewRenderer.cs

* Update ViewRenderer.cs

* [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (xamarin#3402) fixes xamarin#3343 fixes xamarin#3633

* Add repro for xamarin#3343 + unit tests

* [Core] Disallow negative values for CursorPosition/SelectionLength

* [All] CursorPosition/SelectionLength can bindin ctor & clear value

fixes xamarin#3343

* typo

* cleanup

* [iOS] Cursor snaps to end

* try/catch

* [CSS] add more properties (xamarin#3466)

map new CSS properties:
- `color` on `IColorElement` (`ActivityIndicator`, `BoxView`),
  `ProgressBar` and `Switch`
- `row-gap` and `column-gap` on `Grid`
- `transform` and `transform-origin` on `VisualElement`
- `vertical-align` on `Label`

add new XF-specific CSS properties
- `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`,
  `SearchBar`
- `-xf-max-length` on `InputView` (`Editor` and `Entry`)
- `-xf-bar-background-color` and `-xf-bar-text-color` on
  `NavigationPage` and `TabbedPage`
- `-xf-orientation` on `ScrollView` and `StackLayout`
- `-xf-horizontal-scroll-bar-visibility` and
  `-xf-vertical-scroll-bar-visibility` on `ScrollView`
- `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color`
  on `Slider`
- `-xf-spacing` on `StackLayout`

This PR replaces and closes xamarin#3276

- fixes xamarin#2891

* [iOS] Specify a default size for UISearchBar width if needed (xamarin#3635) fixes xamarin#3413 fixes xamarin#2139

* [Controls] Add reproduction and test case for issue xamarin#3413

* [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3

* [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width

* [Controls] Fix spelling and add Manual Review to the test of xamarin#3413

* [iOS] Simplify code for UISearchBar width

* [iOS] Return always some width from measure the UISearchBar on IOS

* [Controls] Add reproduction case for issue xamarin#2139

* [UWP] Fixed double set margins in Layouts (xamarin#3570) fixes xamarin#3398 fixes xamarin#3616

* [Android] Support multiple clipping settings in single layout (xamarin#3559)

* Repro

* Fix for API 18+

*  [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (xamarin#3518)

* [Controls] Add repo of issue xamarin#3408

* [iOS] Unsubscribe CellPropertyChanged when cell is disposed

* [Controls] Add issue to project

* [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers

* [Controls] Simplify Issue

* [iOS] Remove PropertyChanged that was not used

* [Controls] add check for null binding on template, add notes about issues

* [Controls] added reference to Android crash

* [iOS]Use existing PropertyChanged on ViewCelRenderer

* [iOS] Keep the existing override so we don't break users

* Update TextCellRenderer.cs

* update submodule

* 24H Mode (xamarin#3701)

The 24h mode for the pickerdialog was not working.

Version 3.1 was working fine. 

Here is an updated file.

* [UWP] uncomment tests that are now passing for 3188 (xamarin#3723)

* [UITest] Update Xamarin.UITest nuget package (xamarin#3632)

* [UITests] Update Xamarin.UITest 2.2.5

* [UITests] Try fix Toolbaritems

* [UITest] Update to 2.2.5-1606

* [UITests] Small Fixes and workarounds to make uitest happy

* [UITests ] Add delay to 1733 for API28

* [Android] Revert bad merge (xamarin#3746)

fixes xamarin#3705

* [Android, iOS] Fixes layout compression causes (xamarin#3698) fixes xamarin#3624

* [Android, iOS] Fixes layout compression causes

* [iOS] improve UpdateNewElement method

* Fix build error hopefully

* [UWP] Fixes CollectionChanged events in ListView (xamarin#3323)

* fixes xamarin#3273

* [UWP] Fixes CollectionChanged events in ListView

* a wrapped collection is used only if the SourceItem is not ObservableCollection

* improve uitest

* fixed NRE in empty ListView

* added a sortable custom renderer for UItest

* minor refactoring

* fixed reset of not wrapped collections

* addressing comments

* [UWP] remove WinRT hack

* [UWP] add missing using and cleanup additional resources

* [Android] Update Forms to remove API28 deprecated API (xamarin#3653) fixes xamarin#2128 fixes xamarin#3629

* [Build] Update provisioning

* [Controls] Ignore deprecated  Android API usage

* [Android] Remove use of obsolete color usage

* [Android] Remove app fragment usage

* [android] Rollback changes to EntryCellRenderer

* [Android] Better way to get the default color for the label text

* [Android] Obsolete message for ContentPage.CreateFragment()

* [ControlGallery] - create bitmap from Drawable to use for pixel location

* [Android] Use textcolor resource

* Update submodule

* Fix tests (xamarin#3771)

* [ControlGallery] Wait for element and add timing to tests

* [iOS] Fix NRE on RenderPool

* Add TabStop/TabIndex (xamarin#2795)

* [Core, UWP, Android] support TabStop/TabIndex

* removing linq

* add iOS / MacOS implementation

* add WPF implementation
fixes UWP implementation

* - addressing comments
- improve test
- optimizations
- added previous tab direction in same tab group

* addressing comments

* [Android] support tabstop for pickers

* - moving shared code to a static class
- removed reflection

* ITabStop -> changed to internal, renamed, added in to fastRenderers

* Update ITabStop to be public

* Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (xamarin#3761) fixes xamarin#3756

* [iOS] Fix NRE on ContextCell (xamarin#3714) fixes xamarin#3275

* [Controls] Add repo for issue xamarin#3275

* [iOS] Fix NRE when no gestures exist on table

* [iOS] Null check outside loop

* [iOS]Make sure to dispose/unhook when we are removed from UITableView.

* Update submodule

* [iOS] Don't double dispose ContextActionCell

* WPF - Fix Width and Height measurement when GetDesiredSize (xamarin#3750)

* WPF - Reset Width and Height when GetDesiredSize

* Some formatting changes

* Add APP directive

* [WPF]Fix build

* [Android Maps] Make markers available to subclasses (xamarin#3751)

* Make markers available to subclasses

* Fix build

* Use Find instead of FirstOrDefault

* [UITests] wait for element before querying for it (xamarin#3791)

* [UITests] wait for element before querying for it

* [Controls] generalize and better represent intended behavior

* WPF - Fix Local store not persistant when restarting App (xamarin#3752)

-fixes xamarin#3541
* WPF - Fix Local store not persistant when restarting App
* Add UITest
* [Controls] Add automated UI Test

* [UITests] Isolate test 3408

* [UITest] Update Xamarin UITest packages

* [UWP] implement Replace without reloading ListView (xamarin#3792)

-fixes xamarin#3788
* [UWP] implement Replace without reloading ListView
* [UWP] extract bindingcontext of new item for replace

* [iOS] Use UIApperance default color for UISwitch (xamarin#3819)

* [Controls] Set default color of UISwitch to Red

* [iOS] Use default color from Apperance API

* [UITests] replace awaits with more reliable WaitForElement (xamarin#3835)

* [Core] Propagate BindingContext changes to TitleView (xamarin#3823)

* [Core] Propagate BindingContext changes to TitleView

* [Tests] Move UI test to Core Unit Test

* [A] do not draw gradient for empty CornerRadius (xamarin#3786)

Drawing CornerRadius (introduce by xamarin#1998) when the CornerRadii are
actually 0 causes scaling artifacts on API < 25.

This fixes the regression when no CornerRadius is set. Expect blurry
border scaling with CornerRadius not empty and API < 25

- fixes xamarin#3781

* [Android] Fix WebView.Navigating event, make WebViewClient inheritable (xamarin#3780)

* Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted

* Changed _webViewClient and GetWebViewClient() method to return base class

* Changed public things to protected internal

* Fix spaces to tabs indentation to match the coding style (xamarin#3745)

* [Build] Fix merge

* Fix xamarin#3097 swipe gesture not being handled in VisualElementTracker. (xamarin#3098) Fixes xamarin#3097
@AmrAlSayed0 AmrAlSayed0 referenced this pull request Sep 24, 2018
jfversluis added a commit to jfversluis/Xamarin.Forms that referenced this pull request Sep 25, 2018
* [C] VisibilityConverter Trims input (xamarin#3581)

For CSS purposes, the VisibilityConverter was added, and actually
replaced the `Boolean.Parse(str)` call for parsing Visibility.
`Boolean.Parse()` trims input, and the converter was not, so this was a
regression.
This changes Trim() the input, to be fully backward compatible.

- fixes xamarin#3554

* Ensure ConstructorCountId and TimeId elements are available before querying them (xamarin#3588)

* For consistency with ResourceDictionary, expose the Source for a StyleSheet (xamarin#2589)

This would allow previewer/designer/reloader to determine the source of a
stylesheet and refresh its content when appropriate.

* Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (xamarin#2589)"

This reverts commit f66a72d.

* Fix NRE; Ret 0 if Text null (xamarin#3594) fixes xamarin#3579

* [UWP, WPF] Fixes rendering of the main page (xamarin#2896) fixes xamarin#2704

* [Core] Ignore Shamehat target when running DesignTimeBuild (xamarin#3605)

* [XamlC] Fix binding compilation fo value types (xamarin#3551)

properly load valuetype arguments of generated setters, using ldarg,
instead of ldarga.

- fixes xamarin#3539

* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* [Android] Fix Label LineHeight (xamarin#3452)

* fix line height android

* Make UAP respect initial LineHeight

* update .create-nuget.bat (xamarin#3638)

* Add Null Check to GetRenderer (xamarin#3575)

- fix xamarin#3563

* Fix 3562 Null Reference Exception (xamarin#3576)

- fixes xamarin#3562

* Fix 3564 Null Reference Exception (xamarin#3578)

- fixes xamarin#3564

* [iOS] AutomationProperty support for cells (xamarin#3313) fixes xamarin#3296

* [iOS] AutomationProperty support for cells

* Add test case to AutomationProperties gallery

* [UWP] Fix crash app when create navigation/tabbed page without children pages fixes xamarin#3188 (xamarin#3514)

* [Android] Use height when determining ScaledScreenSize; fixes xamarin#3609 (xamarin#3641)

* [C] Set binding context on Span Gestures (xamarin#3639)

* [Core] Set binding context on Span Gestures
* [Core] Simplify loop setting child binding context

- fixes xamarin#3524

* Update PULL_REQUEST_TEMPLATE.md

* [Android] remove deprecated AndroidUseLatestPlatformSdk (xamarin#3672)

* [iOS] iPad ActionSheet should always have a Cancel method (xamarin#3636)

* Add repro for xamarin#3049

* [iOS] iPad ActionSheet should always have a Cancel method

fixes xamarin#3049

* [Android] fixes xamarin#3675 - set  initial ScrollView Scroll values when RTL (xamarin#3676)

* [Android] API check for Shadow properties on Button (xamarin#3617) fixes xamarin#2702

* [Android] API check for Shadow properties on Button

* Fix swapped shadow values

* [iOS] fixes xamarin#3525 - add epsilon for float compare (xamarin#3654)

* [iOS] fixes xamarin#3525 - add epsilon for float compare and make region immutable

* [ControlGallery] spread out spans to account for click slop

* [ControlGallery] - adjust span slightly for android test

* [Core] remove private

* Fix text wrapping (xamarin#3671) fixes xamarin#3634

* [GTK] Fix navigation bar visibility updates (xamarin#3651)

* Fix partially  xamarin#3585 (xamarin#3592)

* Make webkit-sharp.dll.config cross-platform

* Update webkit-sharp.dll with missing signals bindings

see: https://github.com/ylatuya/webkit-sharp/tree/fluendo

* [iOS, UWP] fixes xamarin#2894 - Gestures collection changes weren't correctly propagating (xamarin#3643)

* [iOS, UWP] fixes xamarin#2894 - Gestures weren't wiring up to spans in all cases

* [Core] remove ChildGestureRecognizers when spans get removed

* [iOS] removed incorrect return from null

* Fixes xamarin#3663 (xamarin#3684)

* Fix ScrollView Padding issue (xamarin#3685)

* [WPF] Memory leak when you pop a TabbedPage (xamarin#3372) fixes xamarin#3267

* Fix [WPF] Memory leak when you pop a TabbedPage

* Update ViewRenderer.cs

* Update ViewRenderer.cs

* [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (xamarin#3402) fixes xamarin#3343 fixes xamarin#3633

* Add repro for xamarin#3343 + unit tests

* [Core] Disallow negative values for CursorPosition/SelectionLength

* [All] CursorPosition/SelectionLength can bindin ctor & clear value

fixes xamarin#3343

* typo

* cleanup

* [iOS] Cursor snaps to end

* try/catch

* [CSS] add more properties (xamarin#3466)

map new CSS properties:
- `color` on `IColorElement` (`ActivityIndicator`, `BoxView`),
  `ProgressBar` and `Switch`
- `row-gap` and `column-gap` on `Grid`
- `transform` and `transform-origin` on `VisualElement`
- `vertical-align` on `Label`

add new XF-specific CSS properties
- `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`,
  `SearchBar`
- `-xf-max-length` on `InputView` (`Editor` and `Entry`)
- `-xf-bar-background-color` and `-xf-bar-text-color` on
  `NavigationPage` and `TabbedPage`
- `-xf-orientation` on `ScrollView` and `StackLayout`
- `-xf-horizontal-scroll-bar-visibility` and
  `-xf-vertical-scroll-bar-visibility` on `ScrollView`
- `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color`
  on `Slider`
- `-xf-spacing` on `StackLayout`

This PR replaces and closes xamarin#3276

- fixes xamarin#2891

* [iOS] Specify a default size for UISearchBar width if needed (xamarin#3635) fixes xamarin#3413 fixes xamarin#2139

* [Controls] Add reproduction and test case for issue xamarin#3413

* [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3

* [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width

* [Controls] Fix spelling and add Manual Review to the test of xamarin#3413

* [iOS] Simplify code for UISearchBar width

* [iOS] Return always some width from measure the UISearchBar on IOS

* [Controls] Add reproduction case for issue xamarin#2139

* [UWP] Fixed double set margins in Layouts (xamarin#3570) fixes xamarin#3398 fixes xamarin#3616

* [Android] Support multiple clipping settings in single layout (xamarin#3559)

* Repro

* Fix for API 18+

*  [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (xamarin#3518)

* [Controls] Add repo of issue xamarin#3408

* [iOS] Unsubscribe CellPropertyChanged when cell is disposed

* [Controls] Add issue to project

* [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers

* [Controls] Simplify Issue

* [iOS] Remove PropertyChanged that was not used

* [Controls] add check for null binding on template, add notes about issues

* [Controls] added reference to Android crash

* [iOS]Use existing PropertyChanged on ViewCelRenderer

* [iOS] Keep the existing override so we don't break users

* Update TextCellRenderer.cs

* update submodule

* 24H Mode (xamarin#3701)

The 24h mode for the pickerdialog was not working.

Version 3.1 was working fine. 

Here is an updated file.

* [UWP] uncomment tests that are now passing for 3188 (xamarin#3723)

* [UITest] Update Xamarin.UITest nuget package (xamarin#3632)

* [UITests] Update Xamarin.UITest 2.2.5

* [UITests] Try fix Toolbaritems

* [UITest] Update to 2.2.5-1606

* [UITests] Small Fixes and workarounds to make uitest happy

* [UITests ] Add delay to 1733 for API28

* [Android] Revert bad merge (xamarin#3746)

fixes xamarin#3705

* [Android, iOS] Fixes layout compression causes (xamarin#3698) fixes xamarin#3624

* [Android, iOS] Fixes layout compression causes

* [iOS] improve UpdateNewElement method

* Fix build error hopefully

* [UWP] Fixes CollectionChanged events in ListView (xamarin#3323)

* fixes xamarin#3273

* [UWP] Fixes CollectionChanged events in ListView

* a wrapped collection is used only if the SourceItem is not ObservableCollection

* improve uitest

* fixed NRE in empty ListView

* added a sortable custom renderer for UItest

* minor refactoring

* fixed reset of not wrapped collections

* addressing comments

* [UWP] remove WinRT hack

* [UWP] add missing using and cleanup additional resources

* [Android] Update Forms to remove API28 deprecated API (xamarin#3653) fixes xamarin#2128 fixes xamarin#3629

* [Build] Update provisioning

* [Controls] Ignore deprecated  Android API usage

* [Android] Remove use of obsolete color usage

* [Android] Remove app fragment usage

* [android] Rollback changes to EntryCellRenderer

* [Android] Better way to get the default color for the label text

* [Android] Obsolete message for ContentPage.CreateFragment()

* [ControlGallery] - create bitmap from Drawable to use for pixel location

* [Android] Use textcolor resource

* Update submodule

* Fix tests (xamarin#3771)

* [ControlGallery] Wait for element and add timing to tests

* [iOS] Fix NRE on RenderPool

* Add TabStop/TabIndex (xamarin#2795)

* [Core, UWP, Android] support TabStop/TabIndex

* removing linq

* add iOS / MacOS implementation

* add WPF implementation
fixes UWP implementation

* - addressing comments
- improve test
- optimizations
- added previous tab direction in same tab group

* addressing comments

* [Android] support tabstop for pickers

* - moving shared code to a static class
- removed reflection

* ITabStop -> changed to internal, renamed, added in to fastRenderers

* Update ITabStop to be public

* Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (xamarin#3761) fixes xamarin#3756

* [iOS] Fix NRE on ContextCell (xamarin#3714) fixes xamarin#3275

* [Controls] Add repo for issue xamarin#3275

* [iOS] Fix NRE when no gestures exist on table

* [iOS] Null check outside loop

* [iOS]Make sure to dispose/unhook when we are removed from UITableView.

* Update submodule

* [iOS] Don't double dispose ContextActionCell

* WPF - Fix Width and Height measurement when GetDesiredSize (xamarin#3750)

* WPF - Reset Width and Height when GetDesiredSize

* Some formatting changes

* Add APP directive

* [WPF]Fix build

* [Android Maps] Make markers available to subclasses (xamarin#3751)

* Make markers available to subclasses

* Fix build

* Use Find instead of FirstOrDefault

* [UITests] wait for element before querying for it (xamarin#3791)

* [UITests] wait for element before querying for it

* [Controls] generalize and better represent intended behavior

* WPF - Fix Local store not persistant when restarting App (xamarin#3752)

-fixes xamarin#3541
* WPF - Fix Local store not persistant when restarting App
* Add UITest
* [Controls] Add automated UI Test

* [UITests] Isolate test 3408

* [UITest] Update Xamarin UITest packages

* [UWP] implement Replace without reloading ListView (xamarin#3792)

-fixes xamarin#3788
* [UWP] implement Replace without reloading ListView
* [UWP] extract bindingcontext of new item for replace

* [iOS] Use UIApperance default color for UISwitch (xamarin#3819)

* [Controls] Set default color of UISwitch to Red

* [iOS] Use default color from Apperance API

* [UITests] replace awaits with more reliable WaitForElement (xamarin#3835)

* [Core] Propagate BindingContext changes to TitleView (xamarin#3823)

* [Core] Propagate BindingContext changes to TitleView

* [Tests] Move UI test to Core Unit Test

* [A] do not draw gradient for empty CornerRadius (xamarin#3786)

Drawing CornerRadius (introduce by xamarin#1998) when the CornerRadii are
actually 0 causes scaling artifacts on API < 25.

This fixes the regression when no CornerRadius is set. Expect blurry
border scaling with CornerRadius not empty and API < 25

- fixes xamarin#3781

* [Android] Fix WebView.Navigating event, make WebViewClient inheritable (xamarin#3780)

* Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted

* Changed _webViewClient and GetWebViewClient() method to return base class

* Changed public things to protected internal

* Fix spaces to tabs indentation to match the coding style (xamarin#3745)

* [Build] Fix merge

* Fix xamarin#3097 swipe gesture not being handled in VisualElementTracker. (xamarin#3098) Fixes xamarin#3097

* Ensure that the ListViewAdapter is no longer being used by the ListVi… (xamarin#3848) fixes xamarin#3603

* Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it

* Remove `RemoveAllViews` from `Dispose`
rmarinho added a commit that referenced this pull request Oct 25, 2018
…l bars (#3897) fixes #3843

* Update from origin (#8)

* [C] VisibilityConverter Trims input (#3581)

For CSS purposes, the VisibilityConverter was added, and actually
replaced the `Boolean.Parse(str)` call for parsing Visibility.
`Boolean.Parse()` trims input, and the converter was not, so this was a
regression.
This changes Trim() the input, to be fully backward compatible.

- fixes #3554

* Ensure ConstructorCountId and TimeId elements are available before querying them (#3588)

* For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)

This would allow previewer/designer/reloader to determine the source of a
stylesheet and refresh its content when appropriate.

* Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)"

This reverts commit f66a72d.

* Fix NRE; Ret 0 if Text null (#3594) fixes #3579

* [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704

* [Core] Ignore Shamehat target when running DesignTimeBuild (#3605)

* [XamlC] Fix binding compilation fo value types (#3551)

properly load valuetype arguments of generated setters, using ldarg,
instead of ldarga.

- fixes #3539

* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* [Android] Fix Label LineHeight (#3452)

* fix line height android

* Make UAP respect initial LineHeight

* update .create-nuget.bat (#3638)

* Add Null Check to GetRenderer (#3575)

- fix #3563

* Fix 3562 Null Reference Exception (#3576)

- fixes #3562

* Fix 3564 Null Reference Exception (#3578)

- fixes #3564

* [iOS] AutomationProperty support for cells (#3313) fixes #3296

* [iOS] AutomationProperty support for cells

* Add test case to AutomationProperties gallery

* [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514)

* [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641)

* [C] Set binding context on Span Gestures (#3639)

* [Core] Set binding context on Span Gestures
* [Core] Simplify loop setting child binding context

- fixes #3524

* Update PULL_REQUEST_TEMPLATE.md

* [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672)

* [iOS] iPad ActionSheet should always have a Cancel method (#3636)

* Add repro for #3049

* [iOS] iPad ActionSheet should always have a Cancel method

fixes #3049

* [Android] fixes #3675 - set  initial ScrollView Scroll values when RTL (#3676)

* [Android] API check for Shadow properties on Button (#3617) fixes #2702

* [Android] API check for Shadow properties on Button

* Fix swapped shadow values

* [iOS] fixes #3525 - add epsilon for float compare (#3654)

* [iOS] fixes #3525 - add epsilon for float compare and make region immutable

* [ControlGallery] spread out spans to account for click slop

* [ControlGallery] - adjust span slightly for android test

* [Core] remove private

* Fix text wrapping (#3671) fixes #3634

* [GTK] Fix navigation bar visibility updates (#3651)

* Fix partially  #3585 (#3592)

* Make webkit-sharp.dll.config cross-platform

* Update webkit-sharp.dll with missing signals bindings

see: https://github.com/ylatuya/webkit-sharp/tree/fluendo

* [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643)

* [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases

* [Core] remove ChildGestureRecognizers when spans get removed

* [iOS] removed incorrect return from null

* Fixes #3663 (#3684)

* Fix ScrollView Padding issue (#3685)

* [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267

* Fix [WPF] Memory leak when you pop a TabbedPage

* Update ViewRenderer.cs

* Update ViewRenderer.cs

* [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633

* Add repro for #3343 + unit tests

* [Core] Disallow negative values for CursorPosition/SelectionLength

* [All] CursorPosition/SelectionLength can bindin ctor & clear value

fixes #3343

* typo

* cleanup

* [iOS] Cursor snaps to end

* try/catch

* [CSS] add more properties (#3466)

map new CSS properties:
- `color` on `IColorElement` (`ActivityIndicator`, `BoxView`),
  `ProgressBar` and `Switch`
- `row-gap` and `column-gap` on `Grid`
- `transform` and `transform-origin` on `VisualElement`
- `vertical-align` on `Label`

add new XF-specific CSS properties
- `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`,
  `SearchBar`
- `-xf-max-length` on `InputView` (`Editor` and `Entry`)
- `-xf-bar-background-color` and `-xf-bar-text-color` on
  `NavigationPage` and `TabbedPage`
- `-xf-orientation` on `ScrollView` and `StackLayout`
- `-xf-horizontal-scroll-bar-visibility` and
  `-xf-vertical-scroll-bar-visibility` on `ScrollView`
- `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color`
  on `Slider`
- `-xf-spacing` on `StackLayout`

This PR replaces and closes #3276

- fixes #2891

* [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139

* [Controls] Add reproduction and test case for issue #3413

* [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3

* [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width

* [Controls] Fix spelling and add Manual Review to the test of #3413

* [iOS] Simplify code for UISearchBar width

* [iOS] Return always some width from measure the UISearchBar on IOS

* [Controls] Add reproduction case for issue #2139

* [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616

* [Android] Support multiple clipping settings in single layout (#3559)

* Repro

* Fix for API 18+

*  [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518)

* [Controls] Add repo of issue #3408

* [iOS] Unsubscribe CellPropertyChanged when cell is disposed

* [Controls] Add issue to project

* [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers

* [Controls] Simplify Issue

* [iOS] Remove PropertyChanged that was not used

* [Controls] add check for null binding on template, add notes about issues

* [Controls] added reference to Android crash

* [iOS]Use existing PropertyChanged on ViewCelRenderer

* [iOS] Keep the existing override so we don't break users

* Update TextCellRenderer.cs

* update submodule

* 24H Mode (#3701)

The 24h mode for the pickerdialog was not working.

Version 3.1 was working fine. 

Here is an updated file.

* [UWP] uncomment tests that are now passing for 3188 (#3723)

* [UITest] Update Xamarin.UITest nuget package (#3632)

* [UITests] Update Xamarin.UITest 2.2.5

* [UITests] Try fix Toolbaritems

* [UITest] Update to 2.2.5-1606

* [UITests] Small Fixes and workarounds to make uitest happy

* [UITests ] Add delay to 1733 for API28

* [Android] Revert bad merge (#3746)

fixes #3705

* [Android, iOS] Fixes layout compression causes (#3698) fixes #3624

* [Android, iOS] Fixes layout compression causes

* [iOS] improve UpdateNewElement method

* Fix build error hopefully

* [UWP] Fixes CollectionChanged events in ListView (#3323)

* fixes #3273

* [UWP] Fixes CollectionChanged events in ListView

* a wrapped collection is used only if the SourceItem is not ObservableCollection

* improve uitest

* fixed NRE in empty ListView

* added a sortable custom renderer for UItest

* minor refactoring

* fixed reset of not wrapped collections

* addressing comments

* [UWP] remove WinRT hack

* [UWP] add missing using and cleanup additional resources

* [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629

* [Build] Update provisioning

* [Controls] Ignore deprecated  Android API usage

* [Android] Remove use of obsolete color usage

* [Android] Remove app fragment usage

* [android] Rollback changes to EntryCellRenderer

* [Android] Better way to get the default color for the label text

* [Android] Obsolete message for ContentPage.CreateFragment()

* [ControlGallery] - create bitmap from Drawable to use for pixel location

* [Android] Use textcolor resource

* Update submodule

* Fix tests (#3771)

* [ControlGallery] Wait for element and add timing to tests

* [iOS] Fix NRE on RenderPool

* Add TabStop/TabIndex (#2795)

* [Core, UWP, Android] support TabStop/TabIndex

* removing linq

* add iOS / MacOS implementation

* add WPF implementation
fixes UWP implementation

* - addressing comments
- improve test
- optimizations
- added previous tab direction in same tab group

* addressing comments

* [Android] support tabstop for pickers

* - moving shared code to a static class
- removed reflection

* ITabStop -> changed to internal, renamed, added in to fastRenderers

* Update ITabStop to be public

* Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756

* [iOS] Fix NRE on ContextCell (#3714) fixes #3275

* [Controls] Add repo for issue #3275

* [iOS] Fix NRE when no gestures exist on table

* [iOS] Null check outside loop

* [iOS]Make sure to dispose/unhook when we are removed from UITableView.

* Update submodule

* [iOS] Don't double dispose ContextActionCell

* WPF - Fix Width and Height measurement when GetDesiredSize (#3750)

* WPF - Reset Width and Height when GetDesiredSize

* Some formatting changes

* Add APP directive

* [WPF]Fix build

* [Android Maps] Make markers available to subclasses (#3751)

* Make markers available to subclasses

* Fix build

* Use Find instead of FirstOrDefault

* [UITests] wait for element before querying for it (#3791)

* [UITests] wait for element before querying for it

* [Controls] generalize and better represent intended behavior

* WPF - Fix Local store not persistant when restarting App (#3752)

-fixes #3541
* WPF - Fix Local store not persistant when restarting App
* Add UITest
* [Controls] Add automated UI Test

* [UITests] Isolate test 3408

* [UITest] Update Xamarin UITest packages

* [UWP] implement Replace without reloading ListView (#3792)

-fixes #3788
* [UWP] implement Replace without reloading ListView
* [UWP] extract bindingcontext of new item for replace

* [iOS] Use UIApperance default color for UISwitch (#3819)

* [Controls] Set default color of UISwitch to Red

* [iOS] Use default color from Apperance API

* [UITests] replace awaits with more reliable WaitForElement (#3835)

* [Core] Propagate BindingContext changes to TitleView (#3823)

* [Core] Propagate BindingContext changes to TitleView

* [Tests] Move UI test to Core Unit Test

* [A] do not draw gradient for empty CornerRadius (#3786)

Drawing CornerRadius (introduce by #1998) when the CornerRadii are
actually 0 causes scaling artifacts on API < 25.

This fixes the regression when no CornerRadius is set. Expect blurry
border scaling with CornerRadius not empty and API < 25

- fixes #3781

* [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780)

* Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted

* Changed _webViewClient and GetWebViewClient() method to return base class

* Changed public things to protected internal

* Fix spaces to tabs indentation to match the coding style (#3745)

* [Build] Fix merge

* Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097

* Implemented for iOS, Android and MacOS

* Implemented UAP and WPF

* Refactored duplicate code and removed typo in method name

* Update from origin (#9)

* [C] VisibilityConverter Trims input (#3581)

For CSS purposes, the VisibilityConverter was added, and actually
replaced the `Boolean.Parse(str)` call for parsing Visibility.
`Boolean.Parse()` trims input, and the converter was not, so this was a
regression.
This changes Trim() the input, to be fully backward compatible.

- fixes #3554

* Ensure ConstructorCountId and TimeId elements are available before querying them (#3588)

* For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)

This would allow previewer/designer/reloader to determine the source of a
stylesheet and refresh its content when appropriate.

* Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)"

This reverts commit f66a72d.

* Fix NRE; Ret 0 if Text null (#3594) fixes #3579

* [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704

* [Core] Ignore Shamehat target when running DesignTimeBuild (#3605)

* [XamlC] Fix binding compilation fo value types (#3551)

properly load valuetype arguments of generated setters, using ldarg,
instead of ldarga.

- fixes #3539

* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* [Android] Fix Label LineHeight (#3452)

* fix line height android

* Make UAP respect initial LineHeight

* update .create-nuget.bat (#3638)

* Add Null Check to GetRenderer (#3575)

- fix #3563

* Fix 3562 Null Reference Exception (#3576)

- fixes #3562

* Fix 3564 Null Reference Exception (#3578)

- fixes #3564

* [iOS] AutomationProperty support for cells (#3313) fixes #3296

* [iOS] AutomationProperty support for cells

* Add test case to AutomationProperties gallery

* [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514)

* [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641)

* [C] Set binding context on Span Gestures (#3639)

* [Core] Set binding context on Span Gestures
* [Core] Simplify loop setting child binding context

- fixes #3524

* Update PULL_REQUEST_TEMPLATE.md

* [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672)

* [iOS] iPad ActionSheet should always have a Cancel method (#3636)

* Add repro for #3049

* [iOS] iPad ActionSheet should always have a Cancel method

fixes #3049

* [Android] fixes #3675 - set  initial ScrollView Scroll values when RTL (#3676)

* [Android] API check for Shadow properties on Button (#3617) fixes #2702

* [Android] API check for Shadow properties on Button

* Fix swapped shadow values

* [iOS] fixes #3525 - add epsilon for float compare (#3654)

* [iOS] fixes #3525 - add epsilon for float compare and make region immutable

* [ControlGallery] spread out spans to account for click slop

* [ControlGallery] - adjust span slightly for android test

* [Core] remove private

* Fix text wrapping (#3671) fixes #3634

* [GTK] Fix navigation bar visibility updates (#3651)

* Fix partially  #3585 (#3592)

* Make webkit-sharp.dll.config cross-platform

* Update webkit-sharp.dll with missing signals bindings

see: https://github.com/ylatuya/webkit-sharp/tree/fluendo

* [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643)

* [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases

* [Core] remove ChildGestureRecognizers when spans get removed

* [iOS] removed incorrect return from null

* Fixes #3663 (#3684)

* Fix ScrollView Padding issue (#3685)

* [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267

* Fix [WPF] Memory leak when you pop a TabbedPage

* Update ViewRenderer.cs

* Update ViewRenderer.cs

* [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633

* Add repro for #3343 + unit tests

* [Core] Disallow negative values for CursorPosition/SelectionLength

* [All] CursorPosition/SelectionLength can bindin ctor & clear value

fixes #3343

* typo

* cleanup

* [iOS] Cursor snaps to end

* try/catch

* [CSS] add more properties (#3466)

map new CSS properties:
- `color` on `IColorElement` (`ActivityIndicator`, `BoxView`),
  `ProgressBar` and `Switch`
- `row-gap` and `column-gap` on `Grid`
- `transform` and `transform-origin` on `VisualElement`
- `vertical-align` on `Label`

add new XF-specific CSS properties
- `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`,
  `SearchBar`
- `-xf-max-length` on `InputView` (`Editor` and `Entry`)
- `-xf-bar-background-color` and `-xf-bar-text-color` on
  `NavigationPage` and `TabbedPage`
- `-xf-orientation` on `ScrollView` and `StackLayout`
- `-xf-horizontal-scroll-bar-visibility` and
  `-xf-vertical-scroll-bar-visibility` on `ScrollView`
- `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color`
  on `Slider`
- `-xf-spacing` on `StackLayout`

This PR replaces and closes #3276

- fixes #2891

* [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139

* [Controls] Add reproduction and test case for issue #3413

* [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3

* [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width

* [Controls] Fix spelling and add Manual Review to the test of #3413

* [iOS] Simplify code for UISearchBar width

* [iOS] Return always some width from measure the UISearchBar on IOS

* [Controls] Add reproduction case for issue #2139

* [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616

* [Android] Support multiple clipping settings in single layout (#3559)

* Repro

* Fix for API 18+

*  [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518)

* [Controls] Add repo of issue #3408

* [iOS] Unsubscribe CellPropertyChanged when cell is disposed

* [Controls] Add issue to project

* [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers

* [Controls] Simplify Issue

* [iOS] Remove PropertyChanged that was not used

* [Controls] add check for null binding on template, add notes about issues

* [Controls] added reference to Android crash

* [iOS]Use existing PropertyChanged on ViewCelRenderer

* [iOS] Keep the existing override so we don't break users

* Update TextCellRenderer.cs

* update submodule

* 24H Mode (#3701)

The 24h mode for the pickerdialog was not working.

Version 3.1 was working fine. 

Here is an updated file.

* [UWP] uncomment tests that are now passing for 3188 (#3723)

* [UITest] Update Xamarin.UITest nuget package (#3632)

* [UITests] Update Xamarin.UITest 2.2.5

* [UITests] Try fix Toolbaritems

* [UITest] Update to 2.2.5-1606

* [UITests] Small Fixes and workarounds to make uitest happy

* [UITests ] Add delay to 1733 for API28

* [Android] Revert bad merge (#3746)

fixes #3705

* [Android, iOS] Fixes layout compression causes (#3698) fixes #3624

* [Android, iOS] Fixes layout compression causes

* [iOS] improve UpdateNewElement method

* Fix build error hopefully

* [UWP] Fixes CollectionChanged events in ListView (#3323)

* fixes #3273

* [UWP] Fixes CollectionChanged events in ListView

* a wrapped collection is used only if the SourceItem is not ObservableCollection

* improve uitest

* fixed NRE in empty ListView

* added a sortable custom renderer for UItest

* minor refactoring

* fixed reset of not wrapped collections

* addressing comments

* [UWP] remove WinRT hack

* [UWP] add missing using and cleanup additional resources

* [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629

* [Build] Update provisioning

* [Controls] Ignore deprecated  Android API usage

* [Android] Remove use of obsolete color usage

* [Android] Remove app fragment usage

* [android] Rollback changes to EntryCellRenderer

* [Android] Better way to get the default color for the label text

* [Android] Obsolete message for ContentPage.CreateFragment()

* [ControlGallery] - create bitmap from Drawable to use for pixel location

* [Android] Use textcolor resource

* Update submodule

* Fix tests (#3771)

* [ControlGallery] Wait for element and add timing to tests

* [iOS] Fix NRE on RenderPool

* Add TabStop/TabIndex (#2795)

* [Core, UWP, Android] support TabStop/TabIndex

* removing linq

* add iOS / MacOS implementation

* add WPF implementation
fixes UWP implementation

* - addressing comments
- improve test
- optimizations
- added previous tab direction in same tab group

* addressing comments

* [Android] support tabstop for pickers

* - moving shared code to a static class
- removed reflection

* ITabStop -> changed to internal, renamed, added in to fastRenderers

* Update ITabStop to be public

* Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756

* [iOS] Fix NRE on ContextCell (#3714) fixes #3275

* [Controls] Add repo for issue #3275

* [iOS] Fix NRE when no gestures exist on table

* [iOS] Null check outside loop

* [iOS]Make sure to dispose/unhook when we are removed from UITableView.

* Update submodule

* [iOS] Don't double dispose ContextActionCell

* WPF - Fix Width and Height measurement when GetDesiredSize (#3750)

* WPF - Reset Width and Height when GetDesiredSize

* Some formatting changes

* Add APP directive

* [WPF]Fix build

* [Android Maps] Make markers available to subclasses (#3751)

* Make markers available to subclasses

* Fix build

* Use Find instead of FirstOrDefault

* [UITests] wait for element before querying for it (#3791)

* [UITests] wait for element before querying for it

* [Controls] generalize and better represent intended behavior

* WPF - Fix Local store not persistant when restarting App (#3752)

-fixes #3541
* WPF - Fix Local store not persistant when restarting App
* Add UITest
* [Controls] Add automated UI Test

* [UITests] Isolate test 3408

* [UITest] Update Xamarin UITest packages

* [UWP] implement Replace without reloading ListView (#3792)

-fixes #3788
* [UWP] implement Replace without reloading ListView
* [UWP] extract bindingcontext of new item for replace

* [iOS] Use UIApperance default color for UISwitch (#3819)

* [Controls] Set default color of UISwitch to Red

* [iOS] Use default color from Apperance API

* [UITests] replace awaits with more reliable WaitForElement (#3835)

* [Core] Propagate BindingContext changes to TitleView (#3823)

* [Core] Propagate BindingContext changes to TitleView

* [Tests] Move UI test to Core Unit Test

* [A] do not draw gradient for empty CornerRadius (#3786)

Drawing CornerRadius (introduce by #1998) when the CornerRadii are
actually 0 causes scaling artifacts on API < 25.

This fixes the regression when no CornerRadius is set. Expect blurry
border scaling with CornerRadius not empty and API < 25

- fixes #3781

* [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780)

* Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted

* Changed _webViewClient and GetWebViewClient() method to return base class

* Changed public things to protected internal

* Fix spaces to tabs indentation to match the coding style (#3745)

* [Build] Fix merge

* Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097

* Ensure that the ListViewAdapter is no longer being used by the ListVi… (#3848) fixes #3603

* Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it

* Remove `RemoveAllViews` from `Dispose`

* Fixed code review comments

* Removed obsolete convert method

* Making sure default platform functionality is intact iOS and Android

As er code review comments

* Making sure default platform functionality is intact MacOS

* Making sure default platform functionality is intact UWP and WPF

* Code review comments for iOS, Android and MacOS

Default platform value is now preserved and applied when setting is set to default

* Code review comments UWP and WPF

* Fix build

* [UITest] - add ui test to test scroll permutations

* [Uwp] fix bad merge

* [wpf] fix spacing
jfversluis added a commit to jfversluis/Xamarin.Forms that referenced this pull request Nov 6, 2018
* [Android] Enable MaxLines and TextDecorations on fast renderers (xamarin#3878)

* enable MaxLines on fast renderers

* added text decoration functionality

* include test in project

* [Enhancement] Create a bindable property for AutomationId (xamarin#3879)

* create a bindable property for automationId

* make ClassId and AutomationId properties of Element

* add comments to .create-nuget.bat

* added preserve attribute (xamarin#3876) fixes xamarin#2306

* [Core] Moving Command's CanExecuteChanged to use the WeakEventManager (xamarin#3852) fixes xamarin#3656

* [Core]  Use WeakEventManager on CanExecuteChanged

* [Core]Add unit test for remove event handler with WeakEventManager

* [Core] Fix remove the correct handler

* [CSS] accept 'oblique' for 'font-style' (xamarin#3815) fixes xamarin#3808

- fixes xamarin#3808

* Prevent double time/date picker dialogs on Android when setting focus (xamarin#3899)

* Prevent double time/date picker dialogs on Android when setting focus (xamarin#3899)

* [Controls] Fix merge remove duplciated issue 3788

* WPF - Fix Unable to intercept back button (xamarin#3762)

* WPF - Fix Unable to intercept back button

* WPF - Improve OnBackButtonPressed

-fixes xamarin#3689

* Fix Bugzilla38723 (xamarin#3812)

fixes xamarin#2302

* [C] fix css mapping (xamarin#3919)

* [Android] Fix UI test 1851 (xamarin#3882)

* add preserve attribute

- fixes xamarin#2255


* added using System

* fixed spacing

* use TestContentPage

* fixed scope issues

* [Android] Make native Android Platforms accessible via Context (xamarin#3364)

* Make native Android Platforms accessible via Context

* Add null checks

* Added a disabled look to Android Toolbar Item images. (xamarin#3773)

* Added a disabled look to Android Toolbar Item images.

* Update NavigationPageRenderer.cs

Refactored DisabledToolbarAlpha into a constant as requested.

* [UWP] fixes tabstops of TimePicker, DatePiker. SearchBar, Stepper (xamarin#3896)

* [UWP] fixes tabstops of TimePicker, DatePiker. SearchBar, Stepper

* common code moved to VisualElementRenderer

* rename interface

fixes xamarin#3872

* [UWP] For the Slider default value of step is set to 1000 to match Android. (xamarin#3141)

* WPF - Ctrl+A does not select all in WPF password Entry (xamarin#3908)

* [WPF] Fix Height of items not consistent (xamarin#3925) fixes xamarin#3913

* Fix StartTimer and Ticker for UWP (xamarin#3911)

- fixes xamarin#1937

* Apply font fix for button and span (xamarin#3907)

* added instructions (xamarin#3891)

- fixes xamarin#2361

* [Android] Convert corner radius with correct pixel density (xamarin#3893) fixes xamarin#3884

* [Controls] Add Issue xamarin#3884 repo

* [Android] Convert  corner radius with correct pixel density fixes xamarin#3884

* [Controls] Update test message

* WPF - Fix TimePicker with short time pattern shows verbose time (xamarin#3924)

* Fix UI test 39378 (xamarin#3928)

fixes xamarin#2305

* Update ClipBounds when View bounds changes (xamarin#3909)

fixes xamarin#3717

* [C] catch AmbiguousMatchException on GetProps (xamarin#3915)

- fixes xamarin#3870

* Automate UI test B45702 (xamarin#3914) fixes xamarin#2389

* automate 45702

* fix indentation

* Fix bugzilla60787 (xamarin#3933)

* [Android]Fix for frame renderer's bug (bugzilla 60787).

xamarin#3902
https://bugzilla.xamarin.com/show_bug.cgi?id=60787
xamarin#3902

* Add control to repro

* PR fix

* Build fix

* Build fix for Xamarin.Forms.Core.Android.UITests

* added instructions (xamarin#3926)

* [UWP] fixes flyout menu on cell item (xamarin#3682)

* Fix UI test B41424 needs instructions (xamarin#3942)

* Add manual test steps and checks for ui test

* step4Label text fix

* [iOS] fix full width issues for TitleView (xamarin#3939)

* [iOS] fix full width issues for TitleView

* [iOS] simplified iOS 10

fixes xamarin#3881
fixes xamarin#3679

* Changes in TableView GTK Control to allow refresh the content (xamarin#3941)

- fixes xamarin#3725

* Only set the Page Padding via SafeAreaInset on iOS (xamarin#3811)

* only set the Page Padding via SafeAreaInset on iOS
-fixes xamarin#3809

* [Controls] add waits for clicks in ui tests

* [Controls] remove wrong category

* [iOS] Move inset logic down into ios renderer

* Added logic to allow set the ListView SelectedIndex (xamarin#3948) fixes xamarin#3766

* Automate UI test 35127 (xamarin#3927)

* automate test
- fixes xamarin#2262
* indentation fix
* indentation fix 2

* Make GetIconDrawable virtual (xamarin#3967)

By making GetIconDrawable virtual for the Android TabbedPageRenderer it allows for the icon to come from other sources (like glyph fonts). This will work for both top and bottom tabs.

* [GTK] Fix visibility of hidden pages in the stack (xamarin#3904)

When navigating to a new page, we should hide the previous
content and show the new one so that the previous page
renderer is not taken in account for redraws and resizes

* [Android] If MaxLines is not explicitly set, let LineBreakMode handle it (xamarin#3936)

* [Android] If MaxLines is not explicitly set, all LineBreakMode to set it;
if MaxLines is explicitly set, MaxLines setting wins. Use a more reasonable
default for native MaxLines when handling it via LineBreakMode. Consolidate
MaxLines handling code between legacy and fast renderers. Remove unnecessary
setting of SingleLine (which only applies to input).
- fixes xamarin#3772

* Remove unnecessary maxLines setting

* Handle resetting MaxLines to -1/default

* Reinstate workaround for array bounds exception in older Android APIs

* Fix UI test B43941 (xamarin#3889)

* Add all platforms and remove non-deterministic behaviour

* Return back correct check of counter

* Endline fix

* remove childPages list

* [XamlC] avoid multiple subscription (xamarin#3969)

Avoid multiple subscription to PropertyChanged on TypedBindings

- fixes xamarin#3613
- fixes xamarin#3650

* Fix typos (mainly 'toogle' becoming 'toggle') (xamarin#3975)

* Fix Issue2597 Needs UI Test (xamarin#3966)

* Add test for issue 2597

* Fix space

* Add CODEOWNERS

* Fix PanGesture inside scroll issue https://github.com/xamarin/Xamarin… (xamarin#3842)

* Fix PanGesture inside scroll issue xamarin#3840
- fixes xamarin#3840
* fixe formatting

* [UITest] added UI Test

* [Controls] adjusted UI Test button positions

* [UITEST]  simplify UI tests

* [C] add CSS mapping for max-lines (xamarin#3991)

- fixes xamarin#3982

* [iOS] Add ability to turn off updates to native controls from another thread (xamarin#3774)

* [iOS] Add ability to turn off updates to native controls from another thread

* Flip evaluation order

fixes xamarin#1755

* Fixed NotImplementedException refreshing items in WPF ListView (xamarin#3962)

* Fixed NotImplementedException refreshing items in WPF ListView

* Small changes in ListView events subscription

fixes xamarin#3309
fixes xamarin#3737
fixes xamarin#3648

* [GTK] Fix transparent background in visual elements (xamarin#3744)

* Fix ActivityIndicator.IsRunning state (xamarin#4007)

* add pdb for uap into nuget (xamarin#4015)

* update GitInfo

* [XamlC] don't compile bindings with Source (xamarin#3978)

Sources are usually x:reference that can't be resolved at compilation
time.

- fixes xamarin#3606

* [Xaml[C]] resolve Extensions first (xamarin#3977)

XamlLoader should first look for type with the Extension suffix. It used
to be the case, but somehow regressed.

- fixes xamarin#3606 (comment)

* [UWP] Document in the README.md the steps required to run UI Tests (xamarin#4014) fixes xamarin#3984

* [Tizen] Add TabIndex implement for Tizen renderer (xamarin#4046)

* [Tasks] multitarget the build tasks (xamarin#3895)

- fixes xamarin#2690
- closes xamarin#2706

* [UITests] Update TestCloud.Agent (xamarin#4055)

* [Tizen] Fix ProjectGuid for Forwarders (xamarin#4063)

* [Tizen] Fix ProjectGuid for Forwarders

* [Tizen] Make sure not to generate dependency file

* Correct minor typo (xamarin#4068)

* Added WebView Reload (xamarin#4013) fixes xamarin#3776

* Added WebView Reload

* WebView Reload Added Tizen suport

* [Tizen] Cleanup Code (xamarin#4080)

* fixed ios editor placeholder font (xamarin#4009)

* Prevented crash xamarin#2291 (xamarin#4072)

- fixes xamarin#2291

* [Xaml] Allow OnPlat markup in Styles (xamarin#3995)

- fixes xamarin#3862

* [Xaml] fix Namescope being different than tree (xamarin#4089)

As part of xamarin#2556, the namescoping tree was assumed to be equiv to the
object tree, which is obviously wrong. This fixes it, while keeping the
old behavior as a fallback.

We might go further, but I can't come up with a reasonable scenario
failing.

- fixes xamarin#3821

* [Sample] [Android] Fixed PagesGallery.Droid build (xamarin#3999)

* fixed PagesGallery.Droid build

* Moved Xamarin.Forms.Platform.Android (Forwarders) reference to previous place

* updated project guid to lower case

* Fix typeface reset issue (xamarin#4019)

* Use ViewCompat to set and get label for view (xamarin#3996)

* Removing LineBreakMode support from WindowsResourcesProvider (xamarin#4024)

* Repro test page for 3979

* Removes LineBreakMode support from WindowsResourcesProvider as it is inconsistent with other platforms and caused issues when setting Span style to the default Device Styles

* [macOS] Fix NRE on Mojave when aligning the tile (xamarin#4086) fixes xamarin#3031

* [GTK] Add support for ClickGestureRecognizer (xamarin#3971)

* [GTK] Add support for ClickGestureRecognizer

* Add ClickGestureGalleryPage to test ClickGestureRecognizer

* [iOS] Label TextColor has no effect with FormattedString (xamarin#4043)

* xamarin#4040 fix default font/color for formatted string

* xamarin#4043 fixed naming, added test case

* Moved field and property to top

- fixes xamarin#4040

* fix build, tentatively (xamarin#4117)

* [Xaml] don't swallow exceptions from converters (xamarin#4100)

Compiled converters are invoked, by reflection, at compile time. Any
exception thrown there will be wrapped in a TargetInvocationException.
When that happens, we still want to expose the inner XamlParseException
to the user.

- fixes xamarin#4099

* housekeeping ended with xamarin#3999 (xamarin#4105)

* Bump minimum Microsoft.NETCore.UniversalWindowsPlatform version to 6.0.12 (xamarin#4106)

* [Tizen] Fix Window alpha update timing (xamarin#4119)

* [UWP] fixed `MinimumDate` and `MaximumDate` properties of DatePicker (xamarin#3683) fixes xamarin#3331

* [WPF] Fixes `ControlTemplate` sizing issue (xamarin#2656)

- fixes xamarin#2642

* Remove BOM from nuspec (xamarin#4128)

* Navigation Page double Popped event Workaround (xamarin#3851) fixes xamarin#3509

* Navigation Page double Popped event Workaround

* [UITest] Add UI Test

* [Core] fix formatting

* revert formatting fix

* implemented workaround suggested by PureWeen

* removed whitespace

* moved ignorePopCall to a better location

* [Enhancements] Toolbar a11y  (xamarin#3974) fixes xamarin#1742 fixes xamarin#3795

* [Controls] Add automation id to icon

* [iOS] Add AutomationId support to MDP tooggle button

* [Android] Add support for AutomationId to ActionBarDrawerToggle and MasterDetailPage

* [IOS] Refactor and add Accessibility to ToolbarItems

* [iOS] Fix typos

* [Android] Add accessibility to ToolbarItems

* [UWP]  Refactor A11y to extensions

* [UWP]  Set Accessibility properties on ToolbarItems

* [UWP] Set accessibility to MDP button

* [ControlGallery] Add accessibility toolbaritems to gallery

* Comment test out

* [iOS] Fix NRE when Control is being disposed

* [UITests] Remove not used UITests file

* Implementation of method ForceUpdateSize for Cell on macOS (xamarin#4104)

* Implemented Cell ForceUpdateSize on macOS

* Tab Styling

* Prevent crash during setting NULL to element via interface method (xamarin#4179)

- fixes xamarin#4178
- fixes xamarin#4146

* xamarin#4076 fix (xamarin#4161)

* [iOS] Rapidly clicking span (6 times at least) on UITest 3525 throws a null exception (xamarin#4109)

* xamarin#3930 fix

* following convention

* [Android] Fixes AutomationProperties.Name on Button (xamarin#4094)

* [Android] Fixes AutomationProperties.Name on Button

* [Android] Fixes for Switch control

* UWP Toolbar dynamic overflow (xamarin#4022)

* Adding Windows specific ToolbarDynamicOverflowEnabled configuration

* Enabled ToolbarDynamicOverflowEnabled (pun intended) on page controls and renderers

* Issue 3988 sample

* Removed obsolete comment, cleaned up private and whitespace

* Added toolbar dynamic overflow examples for master detail page and tabbed page


- fixes xamarin#2057
- fixes xamarin#3988

* Add missing initial call to UpdateLineHeight; fixes xamarin#4136 (xamarin#4147)

* Added UI test to B45027 (xamarin#4079)

* Add UI test to B45027

* Changed execution of current UI test to Android platform

* Added iOS UI test to B45027

* Refactored UI test execution

* Fix xamarin#3301 (xamarin#4164)

- fixes xamarin#3301

* [UWP] fixes entering text into SearchBar with UI Tests (xamarin#4173)

* [UWP] fixes entering text into SearchBar with UI Tests

* [UWP] ITabStopOnDescendants - fixed selection when setting focus from Selenium

* [UWP] Fix TitleView Width and MDP rendering quirks (xamarin#3987)

* [UWP] Fix TitleView Width and MDP rendering quirks

* [UWP] fix load timing for pushed pages and titleview

* [UWP] move renderer check

* [UWP] remove re-measure until 4116 fixed

- fixes xamarin#3828
- fixes xamarin#3834

* [macOS] NRE in WebViewRenderer (xamarin#4188) fixes xamarin#4001

* xamarin#4001

* fixed build

* xamarin#2831 fixes xamarin#2831 (xamarin#4111)

* [msbuild] use portable pdb files (xamarin#4201)

Currently, on the first build of a "Hello World" Xamarin.Forms app,
you will see this in the build log:

    ConvertDebuggingFiles
        Parameters
            Files
                C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\FormsViewGroup.pdb
                C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.pdb
        OutputItems
            _ConvertedDebuggingFiles
                C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\FormsViewGroup.dll
                C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll

The logging is a little weird here, but this `ConvertDebuggingFiles`
MSBuild task takes about 100ms on my machine.

What is it doing?

The Mono debugger can support two types of debugging files:
- `mdb` files
- "portable" `pdb` files

If Xamarin.Android's build finds a "non-portable" `pdb` file, we have
to run it through this task to convert to an `mdb` file... This gives
us proper stacktraces for `FormsViewGroup.dll` and
`Xamarin.Forms.Platform.Android.dll`.

You can change the type of debugging symbols in your project with the
`DebugType` setting, which has these options:
- Blank or `None`: don't generate symbols. (Although Xamarin.Android
  has funny behavior here, see:
  xamarin/xamarin-android#2282)
- `Full` generates an `mdb` file, this is a Windows-proprietary format
  for debug builds
- `PdbOnly` generates a "non-portable" `pdb` file, a
  Windows-proprietary format for release builds
- `Portable` generates a "portable" pdb file, which is the new
  standard that works for debug and release builds. New SDK-style
  MSBuild projects use this option by default.

These values are not case sensitive, I have mostly seen them lower
case in newer projects.

So what does Xamarin.Forms need to do?

Use `<DebugType>portable</DebugType>` in any Android class library or
app project. Other platforms, this is optional, not as much benefit. I
have heard that `DebugType=portable` might cause a problem on UWP.

* Xamarin.Forms will ship "portable" `pdbs` in its NuGet package for
  `FormsViewGroup.dll` and `Xamarin.Forms.*.Android.dll`. Developers
  won't pay the 100ms on initial build.
* Initial build times for `Xamarin.Forms.sln` will be slightly better
  for development, although I didn't measure the difference here.

* [XamlC] fix the argument match check for events (xamarin#4134)

Well, it looks like the order of arguments of InheritOrImplements was
reversed... a totally fine and normal Friday so far

- fixes xamarin#4130

* Add UI Test. Add instructions. Move to correct namespace (xamarin#4170) fixes xamarin#2251

* Add uitest for 2794 (xamarin#4110) fixes xamarin#2293

* Fix PropagateEvent value properly on Cells (xamarin#4191)

* bump gitinfo

* [Core, iOS, MacOS, Android, UWP, WPF] ListView hide scroll view scroll bars (xamarin#3897) fixes xamarin#3843

* Update from origin (#8)

* [C] VisibilityConverter Trims input (xamarin#3581)

For CSS purposes, the VisibilityConverter was added, and actually
replaced the `Boolean.Parse(str)` call for parsing Visibility.
`Boolean.Parse()` trims input, and the converter was not, so this was a
regression.
This changes Trim() the input, to be fully backward compatible.

- fixes xamarin#3554

* Ensure ConstructorCountId and TimeId elements are available before querying them (xamarin#3588)

* For consistency with ResourceDictionary, expose the Source for a StyleSheet (xamarin#2589)

This would allow previewer/designer/reloader to determine the source of a
stylesheet and refresh its content when appropriate.

* Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (xamarin#2589)"

This reverts commit f66a72d.

* Fix NRE; Ret 0 if Text null (xamarin#3594) fixes xamarin#3579

* [UWP, WPF] Fixes rendering of the main page (xamarin#2896) fixes xamarin#2704

* [Core] Ignore Shamehat target when running DesignTimeBuild (xamarin#3605)

* [XamlC] Fix binding compilation fo value types (xamarin#3551)

properly load valuetype arguments of generated setters, using ldarg,
instead of ldarga.

- fixes xamarin#3539

* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* [Android] Fix Label LineHeight (xamarin#3452)

* fix line height android

* Make UAP respect initial LineHeight

* update .create-nuget.bat (xamarin#3638)

* Add Null Check to GetRenderer (xamarin#3575)

- fix xamarin#3563

* Fix 3562 Null Reference Exception (xamarin#3576)

- fixes xamarin#3562

* Fix 3564 Null Reference Exception (xamarin#3578)

- fixes xamarin#3564

* [iOS] AutomationProperty support for cells (xamarin#3313) fixes xamarin#3296

* [iOS] AutomationProperty support for cells

* Add test case to AutomationProperties gallery

* [UWP] Fix crash app when create navigation/tabbed page without children pages fixes xamarin#3188 (xamarin#3514)

* [Android] Use height when determining ScaledScreenSize; fixes xamarin#3609 (xamarin#3641)

* [C] Set binding context on Span Gestures (xamarin#3639)

* [Core] Set binding context on Span Gestures
* [Core] Simplify loop setting child binding context

- fixes xamarin#3524

* Update PULL_REQUEST_TEMPLATE.md

* [Android] remove deprecated AndroidUseLatestPlatformSdk (xamarin#3672)

* [iOS] iPad ActionSheet should always have a Cancel method (xamarin#3636)

* Add repro for xamarin#3049

* [iOS] iPad ActionSheet should always have a Cancel method

fixes xamarin#3049

* [Android] fixes xamarin#3675 - set  initial ScrollView Scroll values when RTL (xamarin#3676)

* [Android] API check for Shadow properties on Button (xamarin#3617) fixes xamarin#2702

* [Android] API check for Shadow properties on Button

* Fix swapped shadow values

* [iOS] fixes xamarin#3525 - add epsilon for float compare (xamarin#3654)

* [iOS] fixes xamarin#3525 - add epsilon for float compare and make region immutable

* [ControlGallery] spread out spans to account for click slop

* [ControlGallery] - adjust span slightly for android test

* [Core] remove private

* Fix text wrapping (xamarin#3671) fixes xamarin#3634

* [GTK] Fix navigation bar visibility updates (xamarin#3651)

* Fix partially  xamarin#3585 (xamarin#3592)

* Make webkit-sharp.dll.config cross-platform

* Update webkit-sharp.dll with missing signals bindings

see: https://github.com/ylatuya/webkit-sharp/tree/fluendo

* [iOS, UWP] fixes xamarin#2894 - Gestures collection changes weren't correctly propagating (xamarin#3643)

* [iOS, UWP] fixes xamarin#2894 - Gestures weren't wiring up to spans in all cases

* [Core] remove ChildGestureRecognizers when spans get removed

* [iOS] removed incorrect return from null

* Fixes xamarin#3663 (xamarin#3684)

* Fix ScrollView Padding issue (xamarin#3685)

* [WPF] Memory leak when you pop a TabbedPage (xamarin#3372) fixes xamarin#3267

* Fix [WPF] Memory leak when you pop a TabbedPage

* Update ViewRenderer.cs

* Update ViewRenderer.cs

* [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (xamarin#3402) fixes xamarin#3343 fixes xamarin#3633

* Add repro for xamarin#3343 + unit tests

* [Core] Disallow negative values for CursorPosition/SelectionLength

* [All] CursorPosition/SelectionLength can bindin ctor & clear value

fixes xamarin#3343

* typo

* cleanup

* [iOS] Cursor snaps to end

* try/catch

* [CSS] add more properties (xamarin#3466)

map new CSS properties:
- `color` on `IColorElement` (`ActivityIndicator`, `BoxView`),
  `ProgressBar` and `Switch`
- `row-gap` and `column-gap` on `Grid`
- `transform` and `transform-origin` on `VisualElement`
- `vertical-align` on `Label`

add new XF-specific CSS properties
- `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`,
  `SearchBar`
- `-xf-max-length` on `InputView` (`Editor` and `Entry`)
- `-xf-bar-background-color` and `-xf-bar-text-color` on
  `NavigationPage` and `TabbedPage`
- `-xf-orientation` on `ScrollView` and `StackLayout`
- `-xf-horizontal-scroll-bar-visibility` and
  `-xf-vertical-scroll-bar-visibility` on `ScrollView`
- `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color`
  on `Slider`
- `-xf-spacing` on `StackLayout`

This PR replaces and closes xamarin#3276

- fixes xamarin#2891

* [iOS] Specify a default size for UISearchBar width if needed (xamarin#3635) fixes xamarin#3413 fixes xamarin#2139

* [Controls] Add reproduction and test case for issue xamarin#3413

* [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3

* [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width

* [Controls] Fix spelling and add Manual Review to the test of xamarin#3413

* [iOS] Simplify code for UISearchBar width

* [iOS] Return always some width from measure the UISearchBar on IOS

* [Controls] Add reproduction case for issue xamarin#2139

* [UWP] Fixed double set margins in Layouts (xamarin#3570) fixes xamarin#3398 fixes xamarin#3616

* [Android] Support multiple clipping settings in single layout (xamarin#3559)

* Repro

* Fix for API 18+

*  [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (xamarin#3518)

* [Controls] Add repo of issue xamarin#3408

* [iOS] Unsubscribe CellPropertyChanged when cell is disposed

* [Controls] Add issue to project

* [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers

* [Controls] Simplify Issue

* [iOS] Remove PropertyChanged that was not used

* [Controls] add check for null binding on template, add notes about issues

* [Controls] added reference to Android crash

* [iOS]Use existing PropertyChanged on ViewCelRenderer

* [iOS] Keep the existing override so we don't break users

* Update TextCellRenderer.cs

* update submodule

* 24H Mode (xamarin#3701)

The 24h mode for the pickerdialog was not working.

Version 3.1 was working fine. 

Here is an updated file.

* [UWP] uncomment tests that are now passing for 3188 (xamarin#3723)

* [UITest] Update Xamarin.UITest nuget package (xamarin#3632)

* [UITests] Update Xamarin.UITest 2.2.5

* [UITests] Try fix Toolbaritems

* [UITest] Update to 2.2.5-1606

* [UITests] Small Fixes and workarounds to make uitest happy

* [UITests ] Add delay to 1733 for API28

* [Android] Revert bad merge (xamarin#3746)

fixes xamarin#3705

* [Android, iOS] Fixes layout compression causes (xamarin#3698) fixes xamarin#3624

* [Android, iOS] Fixes layout compression causes

* [iOS] improve UpdateNewElement method

* Fix build error hopefully

* [UWP] Fixes CollectionChanged events in ListView (xamarin#3323)

* fixes xamarin#3273

* [UWP] Fixes CollectionChanged events in ListView

* a wrapped collection is used only if the SourceItem is not ObservableCollection

* improve uitest

* fixed NRE in empty ListView

* added a sortable custom renderer for UItest

* minor refactoring

* fixed reset of not wrapped collections

* addressing comments

* [UWP] remove WinRT hack

* [UWP] add missing using and cleanup additional resources

* [Android] Update Forms to remove API28 deprecated API (xamarin#3653) fixes xamarin#2128 fixes xamarin#3629

* [Build] Update provisioning

* [Controls] Ignore deprecated  Android API usage

* [Android] Remove use of obsolete color usage

* [Android] Remove app fragment usage

* [android] Rollback changes to EntryCellRenderer

* [Android] Better way to get the default color for the label text

* [Android] Obsolete message for ContentPage.CreateFragment()

* [ControlGallery] - create bitmap from Drawable to use for pixel location

* [Android] Use textcolor resource

* Update submodule

* Fix tests (xamarin#3771)

* [ControlGallery] Wait for element and add timing to tests

* [iOS] Fix NRE on RenderPool

* Add TabStop/TabIndex (xamarin#2795)

* [Core, UWP, Android] support TabStop/TabIndex

* removing linq

* add iOS / MacOS implementation

* add WPF implementation
fixes UWP implementation

* - addressing comments
- improve test
- optimizations
- added previous tab direction in same tab group

* addressing comments

* [Android] support tabstop for pickers

* - moving shared code to a static class
- removed reflection

* ITabStop -> changed to internal, renamed, added in to fastRenderers

* Update ITabStop to be public

* Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (xamarin#3761) fixes xamarin#3756

* [iOS] Fix NRE on ContextCell (xamarin#3714) fixes xamarin#3275

* [Controls] Add repo for issue xamarin#3275

* [iOS] Fix NRE when no gestures exist on table

* [iOS] Null check outside loop

* [iOS]Make sure to dispose/unhook when we are removed from UITableView.

* Update submodule

* [iOS] Don't double dispose ContextActionCell

* WPF - Fix Width and Height measurement when GetDesiredSize (xamarin#3750)

* WPF - Reset Width and Height when GetDesiredSize

* Some formatting changes

* Add APP directive

* [WPF]Fix build

* [Android Maps] Make markers available to subclasses (xamarin#3751)

* Make markers available to subclasses

* Fix build

* Use Find instead of FirstOrDefault

* [UITests] wait for element before querying for it (xamarin#3791)

* [UITests] wait for element before querying for it

* [Controls] generalize and better represent intended behavior

* WPF - Fix Local store not persistant when restarting App (xamarin#3752)

-fixes xamarin#3541
* WPF - Fix Local store not persistant when restarting App
* Add UITest
* [Controls] Add automated UI Test

* [UITests] Isolate test 3408

* [UITest] Update Xamarin UITest packages

* [UWP] implement Replace without reloading ListView (xamarin#3792)

-fixes xamarin#3788
* [UWP] implement Replace without reloading ListView
* [UWP] extract bindingcontext of new item for replace

* [iOS] Use UIApperance default color for UISwitch (xamarin#3819)

* [Controls] Set default color of UISwitch to Red

* [iOS] Use default color from Apperance API

* [UITests] replace awaits with more reliable WaitForElement (xamarin#3835)

* [Core] Propagate BindingContext changes to TitleView (xamarin#3823)

* [Core] Propagate BindingContext changes to TitleView

* [Tests] Move UI test to Core Unit Test

* [A] do not draw gradient for empty CornerRadius (xamarin#3786)

Drawing CornerRadius (introduce by xamarin#1998) when the CornerRadii are
actually 0 causes scaling artifacts on API < 25.

This fixes the regression when no CornerRadius is set. Expect blurry
border scaling with CornerRadius not empty and API < 25

- fixes xamarin#3781

* [Android] Fix WebView.Navigating event, make WebViewClient inheritable (xamarin#3780)

* Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted

* Changed _webViewClient and GetWebViewClient() method to return base class

* Changed public things to protected internal

* Fix spaces to tabs indentation to match the coding style (