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] Bindable Repeater control #1718

Closed
hartez opened this issue Jan 26, 2018 · 55 comments · Fixed by #4052

Comments

@hartez
Copy link
Member

commented Jan 26, 2018

Rationale

Forms does not currently contain a control which displays items from a bound items source in a non-scrollable container.

Implementation

Attached properties targeting Layout will be added to support an ItemsSource and ItemsTemplate. Setting these properties will add the templated items to the target layout.

public static class BindableLayout
{
	public static readonly BindableProperty ItemsSourceProperty =
		BindableProperty.Create("ItemsSource", typeof(IList), typeof(Layout), default(IList));

	public static readonly BindableProperty ItemTemplateProperty =
		BindableProperty.Create("ItemTemplate", typeof(DataTemplate), typeof(Layout);
}

The ItemTemplate is responsible for converting the objects in the ItemsSource into View objects.

Setting the ItemsSource will clear out any existing children and update the Children collection to match the source.

Backward Compatibility

These are new properties, so backward compatibility is likely not an issue.

Difficulty: Moderate

@bmacombe

This comment has been minimized.

Copy link
Contributor

commented Jan 27, 2018

I pretty much have this control implemented already as defined. It will likely just need some refinement, clean up and best practice review.

It supports DataTemplate or DataTemplateSelector. It can also handle a ItemSource which implements INotifyCollectionChanged to add/remove items as needed instead of rebuilding all the children

@bmacombe

This comment has been minimized.

Copy link
Contributor

commented Jan 27, 2018

I've been looking at the Forms code base to see how to best modify my code for style, convention, etc.

I thought looking at ListView would be a good example, which lead me to ItemsView and TemplatedItemsList. Which I don't fully understand how they work yet. But my question is, does this feature need all that complication or simply add a new view to the stack layout for each item in the bound collection based on the DataTemplate?

My current solution does the simple method, which doesn't make it perform very well for large lists of items, which isn't my use case for it.

Thoughts?

@GalaxiaGuy

This comment has been minimized.

Copy link
Contributor

commented Jan 27, 2018

There is an alternative route that could be taken.

I implemented ItemsSource and ItemTemplate as attached properties that could be applied to any Layout:

https://github.com/GalaxiaGuy/MobileLibraries/blob/master/XamarinForms.Layout/Layout.cs

Technically that version doesn't support DataTemplateSelector but I have implemented that in version elsewhere.

(It gets complicated after line 67 just to support INotifyCollectionChanged).

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 27, 2018

I also think the idea of a separate "Repeater" control is not enough and we can have something better than that. "Repeater" is not the right solution.

@bmacombe

This comment has been minimized.

Copy link
Contributor

commented Jan 27, 2018

I created my control because I had a need for a simple list of views that did not allow selection and at the time I couldn't find a way to keep ListView from doing selection.

The attached property is an interesting idea, but we probably need some feedback from the XF Team on that route.

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 27, 2018

I for one am for the original idea of expanding the StackLayout and adding the 2 properties. It is how it has been done in my previous projects. Keeps it simple.

The Repeater control is what we have been asking for, and many devs liked this approach, as per the evolution forum. If we need anything more than a Repeater, we use a ListView. This approach also gives us an awesome horizontal list :) If we need a horizontal listview, that is a different PR.

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 28, 2018

@adamped Which exactly 2 properties are you suggesting to be added to ListView? Did you mean Layout?
ListView already has ItemsSource and ItemTemplate.

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 28, 2018

Apologies, typo. I meant StackLayout :)

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

@davidortinau - FYI this one hasn't been assigned to you yet.

@PureWeen

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

Here's the RepeaterView I've been using which is mostly the evolve one with a few more tweaks I've had to apply along the way

https://gist.github.com/PureWeen/4bf4d8c2e384a11b34398dc23201a7cc

It supports templating and has been working for me with uwp/ios/android

@davidortinau davidortinau self-assigned this Jan 29, 2018

@davidortinau davidortinau added this to In Progress in Enhancements Jan 29, 2018

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

@davidortinau We can have something better than just adding a control which is just derived from StackLayout. Otherwise, I don't think it makes sense to add a Repeater derived from StackLayout.
At most, maybe add some attached properties to Layout, like how @GalaxiaGuy suggested above.

The way the XAML frameworks do this is by an ItemsControl.
Here's my take on this https://github.com/andreinitescu/XFItemsControl/

Please look at the last section at the bottom, I'm sharing some issues\bugs in Xamarin Forms I've stumbled on.

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

I'm all for adding the 2 properties directly to the StackLayout, instead of a separate control, called repeater.

However the ItemsControl, while good, I think needs to be a further discussion or enhancement beyond this. A bindable StackLayout control is what people wanted. Its the basic simple solution to many issues.

Maybe ItemsControl should be a separate additional control, beyond this enhancement. Or a further enhancement to the StackLayout? Either way, that's my thoughts. Will see what the XF team decides.

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

@adamped Adding the ItemsSource and ItemTemplate properties to StackLayout wouldn't be a good decision. Instead, maybe add them as attached properties, just to make everyone happy.

Otherwise, if these properties are added right to StackLayout, should them be added to other Layout classes as well? Why not also add them to Grid? How about AbsoluteLayout or RelativeLayout? Maybe add them to Layout or Layout<View>?

I personally like how Windows XAML does it. Panel class (which is Layout in Xamarin Forms) does not have ItemsSource and ItemTemplate. Panel has just one purpose: to position items. This makes it reusable and pluggable into other controls.

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

Another thought: Like I mentioned in the readme of my project, Xamarin has a ItemsView which is close to what ItemsControl is in Windows XAML. I am sure there's a reason why Xamarin team chose to derive ListView from ItemsView.

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

Adding them to the StackLayout doesn't mean it is suited to other layout controls. How would it work with a Grid, there are multiple columns and rows. How would it even work with an Absolute or Relative Layout? I can't even see how that would work.

A StackLayout is designed for stacking one element after the other. That is why an ItemsSource works well, and it would make no sense for other layouts to have these options.

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

How would it work with a Grid, there are multiple columns and rows. How would it even work with an Absolute or Relative Layout? I can't even see how that would work.

It would. Google a bit for things like 'itemscontrol with grid'. You will see old school stuff how ItemsControl in combination with different Panel derived classes can result into very interesting things.

This would allow having some really impressive stuff in Xamarin Forms especially considering it's cross-platform, code which otherwise would take a significant amount of time to write and maintain natively.

Additionally, in the future, someone could even write a ListView-like control purely in Xamarin Forms. Imagine you have a control which takes any Layout which allows any item positioning, but also have properties like SelectedItem to be able to select items (ListView in Windows XAML derives from ItemsControl)

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

The problem with the Grid is due to performance, and then having to setup additional properties to control the flow of the items being added. You will see from Googling a bit about ItemsSource and a Grid in Xamarin.Forms, there are many solutions, including one of mine where I did this. It isn't the best solution for a Grid.

StackLayout is the only control that makes sense with just these 2 properties. Expanding it to other controls, or making this Issue into something more complex than what was asked for, should be done in a separate issue. People experiencing this issue only want a StackLayout with an ItemsSource.

While I know others would certainly like an ItemsControl and the solution you provided, I believe it to be a completely different control, for a different set of requirements. I'm not asking and neither are many others, for an ItemsControl. All I have needed for my last several projects, is just an ItemsSource and DataTemplate on a StackLayout.

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

People experiencing this issue only want a StackLayout with an ItemsSource.

Yes, people experience it, including myself, many times, but that doesn't mean adding the properties right to StackLayout is the good solution from a framework perspective.
Things look differently from a broader perspective, otherwise if we start adding properties just to suit our immediate needs, we will end up with clutter, with little or no reusability. At least this is my personal opinion.

Another aspect is convergence to a unified XAML (XAML Standard). I'm pretty sure those properties don't make sense on StackLayout, you just need to look at Windows XAML.

StackLayout is the only control that makes sense with just these 2 properties.

To me this sounds like a hasty conclusion.
Yes, sure we all need a bindable items source sometimes. Why not use ListView then? Maybe a better decision would be to have a property on the ListView, something like IsSelectionEnabled? Better than creating a Repeater control or adding properties to StackLayout and it would mean we can still have virtualization.

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

XAML Standard raises a good point. That may be a good cause to go the ItemsControl. We will have to see what the XF stance is on this.

And the reason we don't use the ListView is because it implements scrolling. Otherwise we would just use a Listview. But I think that highlights you are looking to a solution to a different problem. We just want a bindable list that doesn't automatically include a scrollview.

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

Adding a new Repeater control or just adding properties to StackLayout do not appeal to me. It would definitely solve the issue but no matter how 'obvious' these solutions are, from a framework perspective, there are better ways which will add more flexibility to the framework, so why not do it now? It won't be significantly more complicated to implement.
After all, what is the problem with the ItemsControl I already implemented? I looked back to the comments and the only thing I could see was "People want bindable StackLayout". Sure, but that's because people don't know about the ItemsControl :)

@adamped

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

I know? But you are just repeating things now. As mentioned, valid points raised, we will need to wait for the XF team to finalize anything.

@bmacombe

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

There are good points being made both ways on this issue. I suggested we consider the following

  1. There is a need for simple list to display a small number of templated items, the "Repeater" as defined meets this. It will also be very low overhead and the name clearly implies that it is not a spophisticated control.

  2. We need a better "ItemsControl" "ListView", etc. But this is a much larger issue and has much broader impact, therefore will require a lot more thought and more input from the XF Team. I would love to have a performant list control that I could display 100s of templated items, but this should be a separate proposal. I suspect many of the issues we have with ListView are because it is implemented in the individual platform provided "ListViews". So a pure XF based control might be a good solution.

But the XF team has reviewed this request and if they posted the enhancement as a work item here, they seem to be willing to consider it. Let's not let great stand in the way of good. There is room for a "Repeater" and a "ItemsControl".

I also do not like the idea of adding these properties to the StackLayout, they belong in a subclass. Layouts need to be layouts, nothing more.

@hartez hartez removed this from New in Triage Jan 29, 2018

@hartez

This comment has been minimized.

Copy link
Member Author

commented Jan 29, 2018

In response to some of the earlier comments - we're definitely not worried about virtualization or performance with very large ItemsSources here. This is explicitly for handling small lists of templated items.

Looking at Andrei's ItemsControl, there's a lot to like; it's more flexible than a simple Repeater, and it would be trivial to use it as a Repeater (especially since it defaults to using a StackLayout). It also has the advantage of being very familiar to the UWP/WPF devs.

TBH, if we were able to merge a PR for the ItemsControl in the near future, I'd happily close this Issue because I think ItemsControl solves the problems that Repeater was intended to solve. Is there a use case for Repeater that isn't covered by ItemsControl?

@bmacombe

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2018

It would be trivial to change the repeater I was working on to submit for this issue to not inherit from StackPanel and use any provided layout (or default to StackLayout).

I personally like that solution better then the attached property idea that was suggested.

We could follow the simple approach of not worrying about virtualization or performance on large lists, but just support using any layout. The control could always be enhanced later to address large lists if needed.

@opcodewriter

This comment has been minimized.

Copy link

commented Jun 5, 2018

What's "ListView2" ?

@jassmith

This comment has been minimized.

Copy link
Contributor

commented Jun 5, 2018

Something we'll be showing off in more detail soon.

@opcodewriter

This comment has been minimized.

Copy link

commented Jun 5, 2018

OK, thanks, hopefully we'll have something working by the end of 2018 :)

@dansiegel

This comment has been minimized.

Copy link
Contributor

commented Jun 5, 2018

@jassmith please tell me it won't be called ListView2...

@jassmith

This comment has been minimized.

Copy link
Contributor

commented Jun 5, 2018

It wont be called ListView2

@opcodewriter

This comment has been minimized.

Copy link

commented Jun 5, 2018

I know. It's going to be called either ListViewEx or TheRealListView 😆

@weitzhandler

This comment has been minimized.

Copy link

commented Jun 8, 2018

I hope it the concept of 'cell' will vanish. A stupid idea in it's essence. Should have been just 'Content' like WPF/UWP/Silverlight/Avalonia/Uno.

@dansiegel

This comment has been minimized.

Copy link
Contributor

commented Jun 28, 2018

@jassmith now that the spec for ListView2 aka TheRealListView, aka CollectionView is out... one thing I wasn't noticing was the ability to not scroll... it's pretty much one of the key features of the RepeaterView that most of us have implemented and why it typically inherits from StackLayout. My concern would be that this would lead to undesirable behavior. For example with the RepeaterView concept I can nest a RepeaterView inside of a RepeaterView since I control where the ScrollView is I don't end up with nested scrolls. I know you have been vocal about people breaking virtualization when they nested a ListView inside of a ListView....

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jun 28, 2018

@dansiegel If CollectionView turns out to be implement how I imagine it, it will work like how ItemsControl works in conjuction with StackPanel in Windows XAML. Which should answer your question regarding scrolling. See my comment here. Like I mentioned there, CollectionView should not have item selection or scrolling or the EmptyView, It should work and be as simple as the ItemsControl. Those capabilities should be put in a derived class, which I suggested to be called like ListCollectionView (similar to what ListView is in Windows XAML)

@andreinitescu

This comment has been minimized.

Copy link
Contributor

commented Jun 28, 2018

I hope it the concept of 'cell' will vanish. A stupid idea in it's essence. Should have been just 'Content' like WPF/UWP/Silverlight/Avalonia/Uno.

I think ViewCell should just be DataTemplate, which apparently it's how it will be based on the spec
proposal

@ederbond

This comment has been minimized.

Copy link

commented Aug 16, 2018

This is nice.
Is there plans for a FlexRepeater too ? I mean, the same as this but inheriting from FlexLayout instead of StackLayout ? Think both will be wellcomed to XF.

@StephaneDelcroix

This comment has been minimized.

Copy link
Member

commented Aug 16, 2018

ItemsSource and ItemTemplate should be attached bindable properties, so it could be applied to Grid, StackLayout, Flex, ...

@hartez

This comment has been minimized.

Copy link
Member Author

commented Sep 25, 2018

I have updated the proposed spec to reflect the attached property suggestions from GalaxiaGuy and StephaneDelcroix.

@hartez

This comment has been minimized.

Copy link
Member Author

commented Sep 25, 2018

RE: #1718 (comment)

After careful consideration, CollectionView will not cover the scenario from this proposal: #3172 (comment)

So this proposal is back on the table.

@GalaxiaGuy

This comment has been minimized.

Copy link
Contributor

commented Sep 26, 2018

@hartez Typo on the updated spec, both bindable properties are called ItemTemplate. :)

@hartez

This comment has been minimized.

Copy link
Member Author

commented Sep 28, 2018

@hartez Typo on the updated spec, both bindable properties are called ItemTemplate. :)

D'oh! Thanks, fixed.

@andreinitescu andreinitescu referenced this issue Oct 10, 2018
3 of 3 tasks complete

@samhouts samhouts added this to In Progress in v3.6.0 Oct 10, 2018

@samhouts samhouts removed this from Backlog in Enhancements Oct 11, 2018

StephaneDelcroix added a commit that referenced this issue Oct 26, 2018

@samhouts samhouts moved this from In Progress to Done in v3.6.0 Oct 29, 2018

jfversluis added a commit to jfversluis/Xamarin.Forms that referenced this issue Nov 6, 2018
Update from origin (#11)
* [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 (xamarin#3745)

* [Build] Fix merge

* Fix xamarin#3097 swipe gesture not being handled in VisualElementTracker. (xamarin#3098) Fixes xamarin#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 (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`

* 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

* Adding instructions and UI tests for Bugzilla44461 (xamarin#4144)

* Adding instructions and UI tests for Bugzilla44461

* Update Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44461.cs

Co-Authored-By: mikescandy <michele.scandura@outlook.com>

* Fix assert

* [C] avoid AmbiguousMatchexception in Bindings (xamarin#4216) fixes xamarin#4215

if a type defines multiple op_implicit from the same type to different
ones, trying to retrieve it with GetMethod() throws an
AmbiguousMatchException. If this happens, we have to do the resolution
ourself.

- fixes xamarin#4215

* xamarin#4076 fix (xamarin#4161)

* [Enhancement] Possibility to change IsPassword for MacOS (xamarin#4175) fixes xamarin#2223

* xamarin#2223 added possibility to change IsPassword for mac

* added test case

* [Core] Fix layout padding update issue (xamarin#4166)

- Update PaddingPropertyChanged handler
 - Add UnitTest for Padding
 - Update ControlGallery

- fixes xamarin#4165

* Bindable layouts (xamarin#4052)

- fixes xamarin#1718

* [GTK] Do not show a label in gtk slider renderer (xamarin#4098)

* Remove unnecessary ToArray to reduce number of BindableObject[] allocations (xamarin#4101)

* [Mac] Fixes crash after changing main page (xamarin#4228)

- fixes xamarin#4156

* Enforce clipping on fast renderer ImageRenderer when using AspectFill; fixes xamarin#4133 (xamarin#4218)

- fixes xamarin#4133

* notify me of changes to XamlC

* [MacOs] Image from file not getting searched in the bundle  fixes xamarin#2322 (xamarin#4247)

* [GTK] Fix several memory leaks in the GTK backend (xamarin#4112)

* [GTK] Don't recreate master or detail if it didn't change

* [GTK] Fix several memory leaks using the Destroy pattern

Gtk objects must be disposed using the Destroy function that will
automatically iterate over the children and destroy them too:
https://developer.gnome.org/gtk2/stable/GtkWidget.html#gtk-widget-destroy

The gtk-sharp bindings discourage the use of Dispose and don't even call
the base class, leaving it without effect:
https://github.com/mono/gtk-sharp/blob/gtk-sharp-2-12-branch/gtk/Object.custom#L98

In the Controls, that inherits directly from native Gtk objects, the
overrides of the Dispose function are changed to override the Destroy
function.  In the Renderers, that inherit from VisualElementRenderer,
the Destroy funtion is called in the dispose implementation so
subclasses only have to override Dispose (bool disposing) as they do
now.

* [GTK] Don't recreate the toolbar on each change

* [GTK] Fix leak connecting to the PropertyChanged event twice

* [UWP] Fix ActivityIndicator width in absolutelayout (xamarin#3224)

* [Core] Fix autosize elements in absolute layout

* revert the Hasflag extension

* - refactoring to the local UWP fix for Activity Indicator
- fixes xamarin#1399

* [iOS] Fix issue where entry would emit a change notification without a user triggered change (xamarin#3433)

* [iOS] Fix issue where entry would emit a change notification without a user triggered change

* Add repro

* [iOS] Change CALayer.Transform in MainThread (xamarin#4160)

* fixes xamarin#1480

* Added test case

* Update Xamarin.Forms.Platform.iOS/VisualElementTracker.cs

Co-Authored-By: AndreiMisiukevich <andrei.misiukevich@gmail.com>

* updated test case

* Move GetNativeSize to PlatformServices, remove IPlatform (xamarin#4235)

* [UnitTest] Remove UnitPlatform

* Add Editor.IsTextPredictionEnabled property (xamarin#4023)

* Add Editor.IsTextPredictionEnabled property

* simplfy UpdateInputType logic

* modify IsTextPredictionEnabledProperty BindingMode to Default

* undo changes of commit 5db2456

* [UITests] update namespace for UI Tests

- Fixes xamarin#3555

* ListView should convert item to string when ItemTemplate is not specified (xamarin#4016)

* Convert item to string, when ListView has no ItemTemplate

* ToStringValueConverter tests

* Format value using parameter in ToStringValueConverter
- fixes xamarin#3715

* Removed custom entitlements entry for iOS simulator builds (xamarin#4257)

* [UITests] fix dismiss page crash (xamarin#4251)

* ImageButton (xamarin#1974)

* ImageButton Implementation

* [Android] rename BorderBackgroundManager

* [Android] copy AspectFill changes to ImageButton

* [UITests] fix order of gallery pages to work with tests

* [Android] Account for changing image region with border/shadows

* [Android] check for api 18 and add setpadding call back in

* [Android] throw exception instead of crash when image fails to load

* Addressing issue comments and adding additional test cases to Issue demo

- fixes xamarin#1724

* [C] Add Default value to OnIdiom (xamarin#4225)

* [C] Add Default value to OnIdiom

- fixes xamarin#4006
- closes xamarin#4025

* add test

* xamarin/issues/2315 (xamarin#4190) fixes xamarin#2315

* [iOS] make button constructor public (xamarin#4313)

* fix merge issues

* Added UI test to B44338 (xamarin#4307) fixes xamarin#2379

* Move github files to .github dir (xamarin#4288)

This change is completely non-functional, the files moved will function identically in the .github dir, but don't cruft up the root dir.

* [GTK] Fix synchronization context fairness (xamarin#4237)

GLib.Idle.Add enqueues functions in the main loop
with the lowest priority, so while the UI is updating
tasks will be queued in the main loop.
Using Gtk.Application.Invoke they are interleaved with UI
updates and handled with more fairness.

@samhouts samhouts removed this from Done in v3.6.0 Jan 3, 2019

@samhouts samhouts added this to In Progress in v3.5.0 Jan 11, 2019

@samhouts samhouts moved this from In Progress to Done in v3.5.0 Jan 11, 2019

jfversluis added a commit to jfversluis/Xamarin.Forms that referenced this issue May 22, 2019
Update from origin (#11)
* [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 (xamarin#3745)

* [Build] Fix merge

* Fix xamarin#3097 swipe gesture not being handled in VisualElementTracker. (xamarin#3098) Fixes xamarin#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 (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`

* 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

* Adding instructions and UI tests for Bugzilla44461 (xamarin#4144)

* Adding instructions and UI tests for Bugzilla44461

* Update Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44461.cs

Co-Authored-By: mikescandy <michele.scandura@outlook.com>

* Fix assert

* [C] avoid AmbiguousMatchexception in Bindings (xamarin#4216) fixes xamarin#4215

if a type defines multiple op_implicit from the same type to different
ones, trying to retrieve it with GetMethod() throws an
AmbiguousMatchException. If this happens, we have to do the resolution
ourself.

- fixes xamarin#4215

* xamarin#4076 fix (xamarin#4161)

* [Enhancement] Possibility to change IsPassword for MacOS (xamarin#4175) fixes xamarin#2223

* xamarin#2223 added possibility to change IsPassword for mac

* added test case

* [Core] Fix layout padding update issue (xamarin#4166)

- Update PaddingPropertyChanged handler
 - Add UnitTest for Padding
 - Update ControlGallery

- fixes xamarin#4165

* Bindable layouts (xamarin#4052)

- fixes xamarin#1718

* [GTK] Do not show a label in gtk slider renderer (xamarin#4098)

* Remove unnecessary ToArray to reduce number of BindableObject[] allocations (xamarin#4101)

* [Mac] Fixes crash after changing main page (xamarin#4228)

- fixes xamarin#4156

* Enforce clipping on fast renderer ImageRenderer when using AspectFill; fixes xamarin#4133 (xamarin#4218)

- fixes xamarin#4133

* notify me of changes to XamlC

* [MacOs] Image from file not getting searched in the bundle  fixes xamarin#2322 (xamarin#4247)

* [GTK] Fix several memory leaks in the GTK backend (xamarin#4112)

* [GTK] Don't recreate master or detail if it didn't change

* [GTK] Fix several memory leaks using the Destroy pattern

Gtk objects must be disposed using the Destroy function that will
automatically iterate over the children and destroy them too:
https://developer.gnome.org/gtk2/stable/GtkWidget.html#gtk-widget-destroy

The gtk-sharp bindings discourage the use of Dispose and don't even call
the base class, leaving it without effect:
https://github.com/mono/gtk-sharp/blob/gtk-sharp-2-12-branch/gtk/Object.custom#L98

In the Controls, that inherits directly from native Gtk objects, the
overrides of the Dispose function are changed to override the Destroy
function.  In the Renderers, that inherit from VisualElementRenderer,
the Destroy funtion is called in the dispose implementation so
subclasses only have to override Dispose (bool disposing) as they do
now.

* [GTK] Don't recreate the toolbar on each change

* [GTK] Fix leak connecting to the PropertyChanged event twice

* [UWP] Fix ActivityIndicator width in absolutelayout (xamarin#3224)

* [Core] Fix autosize elements in absolute layout

* revert the Hasflag extension

* - refactoring to the local UWP fix for Activity Indicator
- fixes xamarin#1399

* [iOS] Fix issue where entry would emit a change notification without a user triggered change (xamarin#3433)

* [iOS] Fix issue where entry would emit a change notification without a user triggered change

* Add repro

* [iOS] Change CALayer.Transform in MainThread (xamarin#4160)

* fixes xamarin#1480

* Added test case

* Update Xamarin.Forms.Platform.iOS/VisualElementTracker.cs

Co-Authored-By: AndreiMisiukevich <andrei.misiukevich@gmail.com>

* updated test case

* Move GetNativeSize to PlatformServices, remove IPlatform (xamarin#4235)

* [UnitTest] Remove UnitPlatform

* Add Editor.IsTextPredictionEnabled property (xamarin#4023)

* Add Editor.IsTextPredictionEnabled property

* simplfy UpdateInputType logic

* modify IsTextPredictionEnabledProperty BindingMode to Default

* undo changes of commit 5db2456

* [UITests] update namespace for UI Tests

- Fixes xamarin#3555

* ListView should convert item to string when ItemTemplate is not specified (xamarin#4016)

* Convert item to string, when ListView has no ItemTemplate

* ToStringValueConverter tests

* Format value using parameter in ToStringValueConverter
- fixes xamarin#3715

* Removed custom entitlements entry for iOS simulator builds (xamarin#4257)

* [UITests] fix dismiss page crash (xamarin#4251)

* ImageButton (xamarin#1974)

* ImageButton Implementation

* [Android] rename BorderBackgroundManager

* [Android] copy AspectFill changes to ImageButton

* [UITests] fix order of gallery pages to work with tests

* [Android] Account for changing image region with border/shadows

* [Android] check for api 18 and add setpadding call back in

* [Android] throw exception instead of crash when image fails to load

* Addressing issue comments and adding additional test cases to Issue demo

- fixes xamarin#1724

* [C] Add Default value to OnIdiom (xamarin#4225)

* [C] Add Default value to OnIdiom

- fixes xamarin#4006
- closes xamarin#4025

* add test

* xamarin/issues/2315 (xamarin#4190) fixes xamarin#2315

* [iOS] make button constructor public (xamarin#4313)

* fix merge issues

* Added UI test to B44338 (xamarin#4307) fixes xamarin#2379

* Move github files to .github dir (xamarin#4288)

This change is completely non-functional, the files moved will function identically in the .github dir, but don't cruft up the root dir.

* [GTK] Fix synchronization context fairness (xamarin#4237)

GLib.Idle.Add enqueues functions in the main loop
with the lowest priority, so while the UI is updating
tasks will be queued in the main loop.
Using Gtk.Application.Invoke they are interleaved with UI
updates and handled with more fairness.
jfversluis added a commit to jfversluis/Xamarin.Forms that referenced this issue Jun 5, 2019