From 8ec0ccc00fdc5f9ea1b7803bc42dffe6a5c6d790 Mon Sep 17 00:00:00 2001 From: Mike Norman Date: Tue, 14 Feb 2017 17:32:08 -0600 Subject: [PATCH 01/38] Marked Xamarin.Forms.Internal classes internal. (#765) --- .../CellExtensions.xml | 14 +++++----- .../DynamicResource.xml | 6 ++--- .../Xamarin.Forms.Internals/EvalRequested.xml | 6 ++--- .../Xamarin.Forms.Internals/IDataTemplate.xml | 4 +-- .../IDynamicResourceHandler.xml | 4 +-- .../Xamarin.Forms.Internals/INameScope.xml | 10 +++---- .../InvalidationTrigger.xml | 16 ++++++------ .../Xamarin.Forms.Internals/NameScope.xml | 18 ++++++------- .../NavigationRequestedEventArgs.xml | 14 +++++----- .../NotifyCollectionChangedEventArgsEx.xml | 26 +++++++++---------- ...fyCollectionChangedEventArgsExtensions.xml | 8 +++--- .../PreserveAttribute.xml | 10 +++---- .../Xamarin.Forms.Internals/Ticker.xml | 14 +++++----- .../ToolbarTracker.xml | 16 ++++++------ .../TypedBindingBase.xml | 8 +++--- .../TypedBinding`2.xml | 4 +-- 16 files changed, 89 insertions(+), 89 deletions(-) diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/CellExtensions.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/CellExtensions.xml index 836d07106a1..57497c525b8 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/CellExtensions.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/CellExtensions.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -44,7 +44,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -79,7 +79,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -114,7 +114,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -149,7 +149,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -169,7 +169,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -206,7 +206,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/DynamicResource.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/DynamicResource.xml index c520260dc2c..508671968d8 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/DynamicResource.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/DynamicResource.xml @@ -11,7 +11,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -28,7 +28,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. @@ -44,7 +44,7 @@ System.String - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/EvalRequested.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/EvalRequested.xml index 95d08ee3693..71eb08606f1 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/EvalRequested.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/EvalRequested.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -26,7 +26,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. @@ -41,7 +41,7 @@ System.String - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDataTemplate.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDataTemplate.xml index d7a21dbd484..de423512e39 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDataTemplate.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDataTemplate.xml @@ -13,7 +13,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -29,7 +29,7 @@ System.Func<System.Object> - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDynamicResourceHandler.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDynamicResourceHandler.xml index a927827f3e3..9738b9cc318 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDynamicResourceHandler.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/IDynamicResourceHandler.xml @@ -8,7 +8,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -30,7 +30,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml index bdd669ce331..0b4c68cd542 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml @@ -8,7 +8,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -28,7 +28,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -51,7 +51,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -75,7 +75,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -95,7 +95,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml index 345d841a154..ec935f5abf8 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml @@ -14,7 +14,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -29,7 +29,7 @@ Xamarin.Forms.Internals.InvalidationTrigger - To be added. + For internal use by platform renderers. @@ -43,7 +43,7 @@ Xamarin.Forms.Internals.InvalidationTrigger - To be added. + For internal use by platform renderers. @@ -57,7 +57,7 @@ Xamarin.Forms.Internals.InvalidationTrigger - To be added. + For internal use by platform renderers. @@ -71,7 +71,7 @@ Xamarin.Forms.Internals.InvalidationTrigger - To be added. + For internal use by platform renderers. @@ -85,7 +85,7 @@ Xamarin.Forms.Internals.InvalidationTrigger - To be added. + For internal use by platform renderers. @@ -99,7 +99,7 @@ Xamarin.Forms.Internals.InvalidationTrigger - To be added. + For internal use by platform renderers. @@ -113,7 +113,7 @@ Xamarin.Forms.Internals.InvalidationTrigger - To be added. + For internal use by platform renderers. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml index d4ccdf2d20f..c9fde5fb45a 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml @@ -15,7 +15,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -29,7 +29,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -49,7 +49,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -66,7 +66,7 @@ Xamarin.Forms.BindableProperty - To be added. + For internal use by platform renderers. To be added. @@ -88,7 +88,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -108,7 +108,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -131,7 +131,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -155,7 +155,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -175,7 +175,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NavigationRequestedEventArgs.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NavigationRequestedEventArgs.xml index 72f27d4b82b..d9788726266 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NavigationRequestedEventArgs.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NavigationRequestedEventArgs.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -30,7 +30,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -50,7 +50,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -65,7 +65,7 @@ System.Boolean - To be added. + For internal use by platform renderers. To be added. To be added. @@ -81,7 +81,7 @@ Xamarin.Forms.Page - To be added. + For internal use by platform renderers. To be added. To be added. @@ -97,7 +97,7 @@ System.Boolean - To be added. + For internal use by platform renderers. To be added. To be added. @@ -113,7 +113,7 @@ System.Threading.Tasks.Task<System.Boolean> - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsEx.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsEx.xml index 504754ca899..fe2a35e75d1 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsEx.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsEx.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -28,7 +28,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -48,7 +48,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -68,7 +68,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -90,7 +90,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -112,7 +112,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -134,7 +134,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -156,7 +156,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -180,7 +180,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -204,7 +204,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -228,7 +228,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -252,7 +252,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -267,7 +267,7 @@ System.Int32 - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsExtensions.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsExtensions.xml index eb3470b9177..a3c66995193 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsExtensions.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NotifyCollectionChangedEventArgsExtensions.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -35,7 +35,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -63,7 +63,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -84,7 +84,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/PreserveAttribute.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/PreserveAttribute.xml index 1ec0021498f..7cef962fdc1 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/PreserveAttribute.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/PreserveAttribute.xml @@ -15,7 +15,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -28,7 +28,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -46,7 +46,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -61,7 +61,7 @@ System.Boolean - To be added. + For internal use by platform renderers. To be added. @@ -76,7 +76,7 @@ System.Boolean - To be added. + For internal use by platform renderers. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/Ticker.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/Ticker.xml index 2bd3f8ffead..eca0ed1e0b6 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/Ticker.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/Ticker.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -25,7 +25,7 @@ Xamarin.Forms.Internals.Ticker - To be added. + For internal use by platform renderers. To be added. To be added. @@ -42,7 +42,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -58,7 +58,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -77,7 +77,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. To be added. @@ -97,7 +97,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. @@ -116,7 +116,7 @@ To be added. - To be added. + For internal use by platform renderers. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/ToolbarTracker.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/ToolbarTracker.xml index 46a698dbb3c..f81bb01958a 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/ToolbarTracker.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/ToolbarTracker.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -23,7 +23,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -38,7 +38,7 @@ System.Collections.Generic.IEnumerable<Xamarin.Forms.Page> - To be added. + For internal use by platform renderers. To be added. To be added. @@ -54,7 +54,7 @@ System.EventHandler - To be added. + For internal use by platform renderers. To be added. @@ -69,7 +69,7 @@ System.Boolean - To be added. + For internal use by platform renderers. To be added. To be added. @@ -85,7 +85,7 @@ System.Boolean - To be added. + For internal use by platform renderers. To be added. To be added. @@ -101,7 +101,7 @@ Xamarin.Forms.Page - To be added. + For internal use by platform renderers. To be added. To be added. @@ -117,7 +117,7 @@ System.Collections.Generic.IEnumerable<Xamarin.Forms.ToolbarItem> - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBindingBase.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBindingBase.xml index 354ceb6b486..4b26e47b185 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBindingBase.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBindingBase.xml @@ -10,7 +10,7 @@ - To be added. + For internal use by platform renderers. To be added. @@ -25,7 +25,7 @@ Xamarin.Forms.IValueConverter - To be added. + For internal use by platform renderers. To be added. To be added. @@ -41,7 +41,7 @@ System.Object - To be added. + For internal use by platform renderers. To be added. To be added. @@ -57,7 +57,7 @@ System.Object - To be added. + For internal use by platform renderers. To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBinding`2.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBinding`2.xml index d31d0f99010..09f88cdf450 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBinding`2.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/TypedBinding`2.xml @@ -16,7 +16,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. To be added. @@ -36,7 +36,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. To be added. From df913c30cbc440843836ed78727f55f32f2aad80 Mon Sep 17 00:00:00 2001 From: kingces95 Date: Tue, 14 Feb 2017 23:43:58 -0800 Subject: [PATCH 02/38] Force git to checkout docs using unix line endings (#766) * Checkout docs using unix line endings * Only exit script when running update-docs-windows.bat * Add docs that build system did not detect were missing --- .gitattributes | 5 +- .../Xamarin.Forms.Internals/INameScope.xml | 5 + .../Xamarin.Forms.Internals/NameScope.xml | 5 + .../Application.xml | 92 ++--- .../Application.xml | 8 +- .../TabbedPage.xml | 23 +- .../Entry.xml | 14 +- .../NavigationPage.xml | 20 +- .../Page.xml | 16 +- .../Picker.xml | 68 ++-- .../UpdateMode.xml | 20 +- .../VisualElement.xml | 12 +- .../Android.xml | 4 +- .../Tizen.xml | 4 +- .../Windows.xml | 4 +- .../iOS.xml | 4 +- .../Xamarin.Forms/AppLinkEntry.xml | 28 +- .../Xamarin.Forms/BindableObject.xml | 1 - .../Xamarin.Forms/Button.xml | 7 +- .../Xamarin.Forms/Element.xml | 5 + .../Xamarin.Forms/IAppLinks.xml | 8 +- .../Xamarin.Forms/IConfigPlatform.xml | 4 +- .../INavigationPageController.xml | 2 +- .../Xamarin.Forms/ITableModel.xml | 1 + .../Xamarin.Forms/NavigationPage.xml | 80 ++--- docs/Xamarin.Forms.Core/Xamarin.Forms/On.xml | 5 + docs/Xamarin.Forms.Core/index.xml | 317 ++++++++++++++---- docs/Xamarin.Forms.Maps/index.xml | 3 + .../Xamarin.Forms.Xaml/StaticExtension.xml | 3 + .../Xamarin.Forms.Xaml/TypeExtension.xml | 3 + docs/Xamarin.Forms.Xaml/index.xml | 5 +- update-docs-windows.bat | 2 +- 32 files changed, 504 insertions(+), 274 deletions(-) diff --git a/.gitattributes b/.gitattributes index 3400ba987c0..f724967cde0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,4 +11,7 @@ # Denote all files that are truly binary and should not be modified. *.png binary *.jpg binary -*.jpeg binary \ No newline at end of file +*.jpeg binary + +# Always checkout docs using unix line endings because mdoc uses unix line endings even on windows +/docs/**/*.xml text eol=lf diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml index 0b4c68cd542..d497343688f 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/INameScope.xml @@ -63,6 +63,11 @@ 1.5.0.0 2.0.0.0 + + + System.Obsolete + + System.Void diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml index c9fde5fb45a..ae74c7b2791 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/NameScope.xml @@ -143,6 +143,11 @@ 1.5.0.0 2.0.0.0 + + + System.Obsolete + + System.Void diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat/Application.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat/Application.xml index 0ce3eb6a5f0..f350f5eca9f 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat/Application.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat/Application.xml @@ -94,6 +94,46 @@ To be added. + + + + Method + + 2.0.0.0 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 2.0.0.0 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + @@ -210,43 +250,24 @@ To be added. - - - + + + Method 2.0.0.0 - System.Boolean + System.Void + To be added. + To be added. To be added. - To be added. - To be added. - - - - - - Method - - 2.0.0.0 - - - System.Boolean - - - - - - To be added. - To be added. - To be added. To be added. @@ -287,26 +308,5 @@ To be added. - - - - Method - - 2.0.0.0 - - - System.Void - - - - - - - To be added. - To be added. - To be added. - To be added. - - diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/Application.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/Application.xml index 6200f51346f..82db1e76b8c 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/Application.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/Application.xml @@ -28,7 +28,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a value that tells whether the soft input mode of the provided pans or resizes its content to allow the display of the on-screen input UI. A value that tells whether the soft input mode of the provided pans or resizes its content to allow the display of the on-screen input UI. To be added. @@ -48,7 +48,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Returns a value that tells whether the soft input mode of the provided platform configuration pans or resizes its content to allow the display of the on-screen input UI. A value that tells whether the soft input mode of the provided platform configuration pans or resizes its content to allow the display of the on-screen input UI. To be added. @@ -69,7 +69,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a value that controls whether the soft input mode of the provided pans or resizes its content to allow the display of the on-screen input UI. To be added. @@ -90,7 +90,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets a value that controls whether the soft input mode of the provided platform configuration pans or resizes its content to allow the display of the on-screen input UI. A value that controls whether the soft input mode of the provided platform configuration pans or resizes its content to allow the display of the on-screen input UI. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/TabbedPage.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/TabbedPage.xml index 3d4d4fd1a4e..6e3939b5b1c 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/TabbedPage.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.AndroidSpecific/TabbedPage.xml @@ -28,7 +28,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Disables swiped paging. The updated element on the Android platform. To be added. @@ -48,7 +48,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Enables swiped paging. The updated element on the Android platform. To be added. @@ -68,7 +68,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a Boolean value that tells whether swiped paging is enabled. A Boolean value that tells whether swipe paging is enabled. To be added. @@ -88,7 +88,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns the number of offscreen pages are cached in memory. The number of offscreen pages are cached in memory. To be added. @@ -108,9 +108,10 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Gets a Boolean value that controls whether swipe paging is enabled. - if swiped paging is enabled. Otherwise, . + + if swiped paging is enabled. Otherwise, . To be added. @@ -143,7 +144,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Returns the number of offscreen pages are cached in memory. The number of offscreen pages are cached in memory. To be added. @@ -179,7 +180,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a value that controls whether page swiping is enabled to the provided . To be added. @@ -200,7 +201,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets a value that controls whether page swiping is enabled to the provided . The configuration that was updated. @@ -222,7 +223,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets the number of off-screen pages that are stored in memory to the provided . To be added. @@ -243,7 +244,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets the number of off-screen pages that are stored in memory to the provided . The configuration that was updated. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Entry.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Entry.xml index 57378daa877..e20141b5bca 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Entry.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Entry.xml @@ -11,7 +11,9 @@ The entry instance that Xamarin.Forms created on the iOS platform. - Developers can use this platform-specific instance to control whether text in the entry instance will be resized to fit the available width. If font size adjustment is turned on, the control will progressively reduce the font sized down to a minimum value as the user enters text. + + Developers can use this platform-specific instance to control whether text in the entry instance will be resized to fit the available width. If font size adjustment is turned on, the control will progressively reduce the font sized down to a minimum value as the user enters text. + @@ -63,7 +65,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Disables automatic font size adjustment on the platform-specific element. The updated configuration object on which developers can make successive method calls. To be added. @@ -83,7 +85,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Enables automatic font size adjustment on the platform-specific element. The updated configuration object on which developers can make successive method calls. To be added. @@ -103,7 +105,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a Boolean value that tells whether the entry control automatically adjusts the font size of text that the user enters. A Boolean value that tells whether the entry control automatically adjusts the font size of text that the user enters. To be added. @@ -124,7 +126,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a Boolean value that tells whether the entry control automatically adjusts the font size of text that the user enters. To be added. @@ -145,7 +147,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets a Boolean value that tells whether automatic font size adjusmtent is enabled on the element. The updated configuration object on which developers can make successive method calls. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/NavigationPage.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/NavigationPage.xml index 503cbd4bf51..c9464e72d01 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/NavigationPage.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/NavigationPage.xml @@ -28,7 +28,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Makes the navigation bar opaque on the platform-specific element. The updated configuration object on which developers can make successive method calls. To be added. @@ -48,7 +48,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Makes the navigation bar translucent on the platform-specific element. The updated configuration object on which developers can make successive method calls. To be added. @@ -68,7 +68,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a Boolean value that tells whether the navigation bar on the platform-specific navigation page is translucent. A Boolean value that tells whether the navigation bar on the platform-specific navigation page is translucent. To be added. @@ -88,7 +88,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. A value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. To be added. @@ -108,7 +108,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Returns a value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. A value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. To be added. @@ -128,7 +128,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Returns a Boolean value that tells whether the navigation bar on the platform-specific navigation page is translucent. A Boolean value that tells whether the navigation bar on the platform-specific navigation page is translucent. To be added. @@ -164,7 +164,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a Boolean value that controls whether the navigation bar on the platform-specific navigation page is translucent. To be added. @@ -185,7 +185,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets a Boolean value that controls whether the navigation bar on the platform-specific navigation page is translucent. The updated configuration object on which developers can make successive method calls. @@ -207,7 +207,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. To be added. @@ -228,7 +228,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Returns a value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. The updated configuration object on which developers can make successive method calls. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Page.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Page.xml index 4a399324ffb..a2280967ac0 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Page.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Page.xml @@ -28,7 +28,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a value that tells whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. A value that tells whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. To be added. @@ -48,7 +48,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a value that tells whether it is preferred that the status bar is shown, hidden, or relies on the system default. A value that tells whether it is preferred that the status bar is shown, hidden, or relies on the system default. To be added. @@ -68,7 +68,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Returns a value that tells whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. A value that tells whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. To be added. @@ -103,7 +103,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Sets a value that controls whether it is preferred that the status bar is shown, hidden, or relies on the system default. A value that controls whether it is preferred that the status bar is shown, hidden, or relies on the system default. To be added. @@ -139,7 +139,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a value that controls whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. To be added. @@ -160,7 +160,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets a value that controls whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. The updated configuration object on which developers can make successive method calls. @@ -182,7 +182,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a value that controls whether it is preferred that the status bar is shown, hidden, or relies on the system default. To be added. @@ -203,7 +203,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets a value that controls whether it is preferred that the status bar is shown, hidden, or relies on the system default. The updated configuration object on which developers can make successive method calls. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Picker.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Picker.xml index 0694c0e9d70..cab4326695f 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Picker.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/Picker.xml @@ -1,4 +1,4 @@ - + @@ -14,21 +14,6 @@ To be added. - - - - Field - - 2.0.0.0 - - - Xamarin.Forms.BindableProperty - - - Backing store for the attached property that controls whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. - To be added. - - @@ -43,7 +28,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a value that tells whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. A value that tells whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. To be added. @@ -64,12 +49,34 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a value that controls whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. To be added. + + + + Method + + 2.0.0.0 + + + Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.iOS,Xamarin.Forms.Picker> + + + + + + + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. + The updated configuration object on which developers can make successive method calls. + To be added. + + @@ -84,33 +91,26 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Returns a value that tells whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. A value that tells whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. To be added. - - - - - Method + + + + + Field 2.0.0.0 - Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.iOS,Xamarin.Forms.Picker> + Xamarin.Forms.BindableProperty - - - - - The platform specific configuration that contains the element on which to perform the operation. - The new property value to assign. - Sets a value that controls whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. - The updated configuration object on which developers can make successive method calls. + Backing store for the attached property that controls whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. To be added. - \ No newline at end of file + diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/UpdateMode.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/UpdateMode.xml index 2d88a51aa4c..144bb5010c0 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/UpdateMode.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/UpdateMode.xml @@ -1,4 +1,4 @@ - + @@ -13,9 +13,9 @@ To be added. - - - + + + Field 2.0.0.0 @@ -24,12 +24,12 @@ Xamarin.Forms.PlatformConfiguration.iOSSpecific.UpdateMode - Bound properties on picker elements should be updated after scrolling is finished. + Bound properties on picker elements should be continuously updated while the user scrolls. - - - + + + Field 2.0.0.0 @@ -38,8 +38,8 @@ Xamarin.Forms.PlatformConfiguration.iOSSpecific.UpdateMode - Bound properties on picker elements should be continuously updated while the user scrolls. + Bound properties on picker elements should be updated after scrolling is finished. - \ No newline at end of file + diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/VisualElement.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/VisualElement.xml index 3d7caa69f5e..6d0048a6480 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/VisualElement.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration.iOSSpecific/VisualElement.xml @@ -11,7 +11,9 @@ A visual element instance that Xamarin.Forms created on the iOS platform. - Developers use this type to set iOS-specific blur effects on visual elements. + + Developers use this type to set iOS-specific blur effects on visual elements. + @@ -43,7 +45,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. Returns a value that controls which, if any, blur effect is applied. A value that controls which, if any, blur effect is applied. To be added. @@ -63,7 +65,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. Returns a value that tells which, if any, blur effect is applied. A value that tells which, if any, blur effect is applied. To be added. @@ -84,7 +86,7 @@ - The platform specific element on which to perform the operation. + The platform specific element on which to perform the operation. The new property value to assign. Sets a value that controls which, if any, blur effect is applied. To be added. @@ -105,7 +107,7 @@ - The platform specific configuration that contains the element on which to perform the operation. + The platform specific configuration that contains the element on which to perform the operation. The new property value to assign. Sets the blur effect to use. The updated configuration object on which developers can make successive method calls. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Android.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Android.xml index 6132ecdb603..c6d11646aeb 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Android.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Android.xml @@ -15,7 +15,9 @@ Marker class that identifies the Android platform. - Developers specify the type name of this marker class to the method to specify the underlying Android control on which to run a platform-specific effect. + + Developers specify the type name of this marker class to the method to specify the underlying Android control on which to run a platform-specific effect. + diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Tizen.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Tizen.xml index 02ddffb2c24..a972ae5cab5 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Tizen.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Tizen.xml @@ -15,7 +15,9 @@ Marker class that identifies the Tizen platform. - Developers specify the type name of this marker class to the method to specify the underlying Tizen control on which to run a platform-specific effect. + + Developers specify the type name of this marker class to the method to specify the underlying Tizen control on which to run a platform-specific effect. + diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Windows.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Windows.xml index d4def6f0ced..c93866d19a4 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Windows.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/Windows.xml @@ -15,7 +15,9 @@ Marker class that identifies the Windows platform. - Developers specify the type name of this marker class to the method to specify the underlying Windows control on which to run a platform-specific effect. + + Developers specify the type name of this marker class to the method to specify the underlying Windows control on which to run a platform-specific effect. + diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/iOS.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/iOS.xml index e60636d5e61..a98b98f9511 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/iOS.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.PlatformConfiguration/iOS.xml @@ -15,7 +15,9 @@ Marker class that identifies the iOS platform. - Developers specify the type name of this marker class to the method to specify the underlying iOS control on which to run a platform-specific effect. + + Developers specify the type name of this marker class to the method to specify the underlying iOS control on which to run a platform-specific effect. + diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/AppLinkEntry.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/AppLinkEntry.xml index 23ceff6cd2e..ab50ffa9971 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/AppLinkEntry.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/AppLinkEntry.xml @@ -43,8 +43,8 @@ System.Uri - Gets or sets an application-specific URI that uniquely describes content within an app. - An application-specific URI that uniquely describes content within an app. + Gets or sets an application-specific URI that uniquely describes content within an app. + An application-specific URI that uniquely describes content within an app. To be added. Application Indexing and Deep Linking @@ -75,8 +75,8 @@ System.String - Gets or sets a description that appears with the item in search results. - The description that appears with the item in search results. + Gets or sets a description that appears with the item in search results. + The description that appears with the item in search results. To be added. Application Indexing and Deep Linking @@ -127,9 +127,9 @@ System.Boolean - Gets or sets a value that tells whether the item that is identified by the link entry is currently open. - A value that tells whether the item that is identified by the link entry is currently open. - Application developers can set this value in and methods to control whether the app link is shown for indexing or Handoff. + Gets or sets a value that tells whether the item that is identified by the link entry is currently open. + A value that tells whether the item that is identified by the link entry is currently open. + Application developers can set this value in and methods to control whether the app link is shown for indexing or Handoff. Application Indexing and Deep Linking @@ -160,9 +160,9 @@ System.Collections.Generic.IDictionary<System.String,System.String> - Gets a dictionary of application-specific key-value pairs. - A dictionary of standard and application-specific key-value pairs that is used for Handoff on the iOS platform. - The standard keys are contentType, associatedWebPage, and shouldAddToPublicIndex. + Gets a dictionary of application-specific key-value pairs. + A dictionary of standard and application-specific key-value pairs that is used for Handoff on the iOS platform. + The standard keys are contentType, associatedWebPage, and shouldAddToPublicIndex. Application Indexing and Deep Linking @@ -177,8 +177,8 @@ Xamarin.Forms.ImageSource - Gets or sets a small image that appears with the item in search results. - A small image that appears with the item in search results + Gets or sets a small image that appears with the item in search results. + A small image that appears with the item in search results To be added. Application Indexing and Deep Linking @@ -209,8 +209,8 @@ System.String - Gets or sets the title of the item. - The title of the item. + Gets or sets the title of the item. + The title of the item. To be added. Application Indexing and Deep Linking diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/BindableObject.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/BindableObject.xml index e1310cacc59..0e789c9a4f0 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/BindableObject.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/BindableObject.xml @@ -161,7 +161,6 @@ public static void OneWayDemo () 1.3.0.0 1.4.0.0 1.5.0.0 - 2.0.0.0 System.Void diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/Button.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/Button.xml index 3df8f8fc0cd..d0d694d608d 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/Button.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/Button.xml @@ -1,6 +1,6 @@ - - + + Xamarin.Forms.Core 1.0.0.0 @@ -21,9 +21,6 @@ Xamarin.Forms.IElementConfiguration<Xamarin.Forms.Button> - - Xamarin.Forms.IFontElement - diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/Element.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/Element.xml index c6a193859aa..d2070b028c5 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/Element.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/Element.xml @@ -881,6 +881,11 @@ 1.5.0.0 2.0.0.0 + + + System.Obsolete + + System.Void diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/IAppLinks.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/IAppLinks.xml index e71b0ae1129..adb546990f9 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/IAppLinks.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/IAppLinks.xml @@ -46,10 +46,10 @@ - The to remove from the app index. - Removes the provided application link from the application index. - This method has no effect on the Android platform. - Application Indexing and Deep Linking + The to remove from the app index. + Removes the provided application link from the application index. + This method has no effect on the Android platform. + Application Indexing and Deep Linking diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/IConfigPlatform.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/IConfigPlatform.xml index 1ab1b9c4356..72a94d3e3b0 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/IConfigPlatform.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/IConfigPlatform.xml @@ -8,7 +8,9 @@ Base interface for marker classes that identify target platforms for platform specific effects. - Developers pass the type name of a predefined platform-specific implementation of this marker class to the method to specify the underlying control on which to run a platform-specific effect. + + Developers pass the type name of a predefined platform-specific implementation of this marker class to the method to specify the underlying control on which to run a platform-specific effect. + diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/INavigationPageController.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/INavigationPageController.xml index 95aeae7eb70..1fdf280eb0a 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/INavigationPageController.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/INavigationPageController.xml @@ -43,7 +43,7 @@ - + Method diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/ITableModel.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/ITableModel.xml index 1225c8b62a4..25bc52cc472 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/ITableModel.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/ITableModel.xml @@ -30,6 +30,7 @@ To be added. To be added. For internal use by platform renderers. + To be added. To be added. diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/NavigationPage.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/NavigationPage.xml index c2afceddbae..e6e1cba9d1c 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/NavigationPage.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/NavigationPage.xml @@ -226,42 +226,6 @@ - - - - Property - - 2.0.0.0 - - - Xamarin.Forms.Page - - - - The that is the root of the navigation stack. - - To be added. - To be added. - - - - - - Field - - 2.0.0.0 - - - Xamarin.Forms.BindableProperty - - - - Identifies the property. - - - - - @@ -486,7 +450,7 @@ System.Diagnostics.DebuggerStepThrough - System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<PopAsync>d__39)) + System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<PopAsync>d__44)) @@ -584,7 +548,7 @@ System.Diagnostics.DebuggerStepThrough - System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<PopToRootAsync>d__47)) + System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<PopToRootAsync>d__52)) @@ -641,7 +605,7 @@ System.Diagnostics.DebuggerStepThrough - System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<PushAsync>d__49)) + System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<PushAsync>d__54)) @@ -680,6 +644,42 @@ To be added. + + + + Property + + 2.0.0.0 + + + Xamarin.Forms.Page + + + + The that is the root of the navigation stack. + + To be added. + To be added. + + + + + + Field + + 2.0.0.0 + + + Xamarin.Forms.BindableProperty + + + + Identifies the property. + + + + + @@ -928,7 +928,7 @@ public class MyPage : NavigationPage System.Diagnostics.DebuggerStepThrough - System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<Xamarin-Forms-INavigationPageController-PopAsyncInner>d__64)) + System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.NavigationPage/<Xamarin-Forms-INavigationPageController-PopAsyncInner>d__69)) diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/On.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/On.xml index 65daa858eca..80d9d2b569a 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/On.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/On.xml @@ -39,6 +39,11 @@ 2.0.0.0 + + + Xamarin.Forms.TypeConverter(typeof(Xamarin.Forms.ListStringTypeConverter)) + + System.Collections.Generic.IList<System.String> diff --git a/docs/Xamarin.Forms.Core/index.xml b/docs/Xamarin.Forms.Core/index.xml index 1b1cf3100c2..b730a9508fb 100644 --- a/docs/Xamarin.Forms.Core/index.xml +++ b/docs/Xamarin.Forms.Core/index.xml @@ -57,7 +57,7 @@ System.Runtime.CompilerServices.InternalsVisibleTo("Xamarin.Forms.Platform.WP8") - System.Runtime.CompilerServices.InternalsVisibleTo("Xamarin.Forms.Platform.MacOS") + System.Runtime.CompilerServices.InternalsVisibleTo("Xamarin.Forms.Platform.macOS") System.Runtime.CompilerServices.InternalsVisibleTo("iOSUnitTests") @@ -156,6 +156,7 @@ + @@ -283,6 +284,7 @@ + @@ -481,7 +483,12 @@ + + + + + @@ -1152,6 +1159,27 @@ + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + To be added. + To be added. + + + + @@ -1198,6 +1226,29 @@ + + + + + + + + ExtensionMethod + + Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Android,Xamarin.Forms.Application> + + + + + + + To be added. + To be added. + To be added. + + + + @@ -1213,8 +1264,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns a value that tells whether the soft input mode of the provided platform configuration pans or resizes its content to allow the display of the on-screen input UI. @@ -1235,9 +1286,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls whether the soft input mode of the provided platform configuration pans or resizes its content to allow the display of the on-screen input UI. @@ -1257,8 +1308,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Disables swiped paging. @@ -1278,8 +1329,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Enables swiped paging. @@ -1299,8 +1350,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Gets a Boolean value that controls whether swipe paging is enabled. @@ -1320,8 +1371,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns the number of offscreen pages are cached in memory. @@ -1342,9 +1393,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls whether page swiping is enabled to the provided . @@ -1353,9 +1404,9 @@ - - - + + + ExtensionMethod Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Android,Xamarin.Forms.TabbedPage> @@ -1365,11 +1416,11 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets the number of off-screen pages that are stored in memory to the provided . - + @@ -1408,8 +1459,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Disables automatic font size adjustment on the platform-specific element. @@ -1429,8 +1480,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Enables automatic font size adjustment on the platform-specific element. @@ -1451,9 +1502,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a Boolean value that tells whether automatic font size adjusmtent is enabled on the element. @@ -1473,8 +1524,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Makes the navigation bar opaque on the platform-specific element. @@ -1494,8 +1545,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Makes the navigation bar translucent on the platform-specific element. @@ -1515,8 +1566,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns a value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. @@ -1536,8 +1587,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns a Boolean value that tells whether the navigation bar on the platform-specific navigation page is translucent. @@ -1558,9 +1609,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a Boolean value that controls whether the navigation bar on the platform-specific navigation page is translucent. @@ -1581,13 +1632,145 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Returns a value that controls whether the status bar text color is adjusted to match the luminosity of the navigation bar for the platform-specific navigation page. + + + + + + + + ExtensionMethod + + Xamarin.Forms.PlatformConfiguration.iOSSpecific.UIStatusBarAnimation + + + + + + The platform specific configuration that contains the element on which to perform the operation. + Returns a value that tells whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. + + + + + + + + + + + + ExtensionMethod + + Xamarin.Forms.PlatformConfiguration.iOSSpecific.StatusBarHiddenMode + + + + + + The platform specific configuration that contains the element on which to perform the operation. + Sets a value that controls whether it is preferred that the status bar is shown, hidden, or relies on the system default. + + + + + + + + + + + + ExtensionMethod + + Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.iOS,Xamarin.Forms.Page> + + + + + + + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls whether the preferred animation style to use when updating the status bar is None, Slide, or Fade. + + + + + + + + + + + + ExtensionMethod + + Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.iOS,Xamarin.Forms.Page> + + + + + + + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls whether it is preferred that the status bar is shown, hidden, or relies on the system default. + + + + + + + + + + + + ExtensionMethod + + Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.iOS,Xamarin.Forms.Picker> + + + + + + + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. + + + + + + + + + + + + ExtensionMethod + + Xamarin.Forms.PlatformConfiguration.iOSSpecific.UpdateMode + + + + + + The platform specific configuration that contains the element on which to perform the operation. + Returns a value that tells whether elements in the picker are continuously updated while scrolling or updated once after scrolling has completed. + + + + @@ -1603,8 +1786,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns a value that tells which, if any, blur effect is applied. @@ -1625,9 +1808,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets the blur effect to use. @@ -1754,8 +1937,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns the width of the master pane when it is collapsed. @@ -1776,9 +1959,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets the width of a pane when it is collapsed. @@ -1798,8 +1981,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns a value that controls whether panes collapses fully or partially. @@ -1820,9 +2003,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls whether panes collapses fully or partially. @@ -1842,8 +2025,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Causes the master detail page to partially collapse panes. @@ -1863,8 +2046,8 @@ - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + Returns a value that controls the placement of the toolbar. @@ -1885,9 +2068,9 @@ - To be added. - To be added. - To be added. + The platform specific configuration that contains the element on which to perform the operation. + The new property value to assign. + Sets a value that controls the placement of the toolbar. diff --git a/docs/Xamarin.Forms.Maps/index.xml b/docs/Xamarin.Forms.Maps/index.xml index 775e9db2be6..318b3c5e970 100644 --- a/docs/Xamarin.Forms.Maps/index.xml +++ b/docs/Xamarin.Forms.Maps/index.xml @@ -32,6 +32,9 @@ System.Resources.NeutralResourcesLanguage("en") + + System.Runtime.CompilerServices.CompilationRelaxations(8) + System.Runtime.CompilerServices.InternalsVisibleTo("Xamarin.Forms.Maps.macOS") diff --git a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/StaticExtension.xml b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/StaticExtension.xml index 680d9ac8623..dbb7225908b 100644 --- a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/StaticExtension.xml +++ b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/StaticExtension.xml @@ -22,6 +22,9 @@ Xamarin.Forms.ContentProperty("Member") + + Xamarin.Forms.Xaml.ProvideCompiled("Xamarin.Forms.Build.Tasks.StaticExtension") + A markup extension that gets a static member value. diff --git a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TypeExtension.xml b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TypeExtension.xml index 31d0cde8b84..157dbc1ba9a 100644 --- a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TypeExtension.xml +++ b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TypeExtension.xml @@ -22,6 +22,9 @@ Xamarin.Forms.ContentProperty("TypeName") + + Xamarin.Forms.Xaml.ProvideCompiled("Xamarin.Forms.Build.Tasks.TypeExtension") + For internal use by the XAML infrastructure. diff --git a/docs/Xamarin.Forms.Xaml/index.xml b/docs/Xamarin.Forms.Xaml/index.xml index e61a4ad85d8..18fecba6196 100644 --- a/docs/Xamarin.Forms.Xaml/index.xml +++ b/docs/Xamarin.Forms.Xaml/index.xml @@ -47,6 +47,9 @@ System.Runtime.Versioning.TargetFramework(".NETPortable,Version=v4.5,Profile=Profile259", FrameworkDisplayName=".NET Portable Subset") + + Xamarin.Forms.Dependency(typeof(Xamarin.Forms.Xaml.ValueConverterProvider)) + Xamarin.Forms.Internals.Preserve @@ -128,7 +131,7 @@ To be added. To be added. To be added. - To be added. + For internal use by the XAML infrastructure. diff --git a/update-docs-windows.bat b/update-docs-windows.bat index 40d1fa6078c..9f22271050b 100644 --- a/update-docs-windows.bat +++ b/update-docs-windows.bat @@ -33,5 +33,5 @@ del tmpFile IF NOT "%RESULT%" == "Members Added: 0, Members Deleted: 0" (exit 1) -exit 0 +exit /B 0 From 4464db59e55819a838d5b1f4ccba8ff350413748 Mon Sep 17 00:00:00 2001 From: Samantha Houts Date: Tue, 14 Feb 2017 23:52:35 -0800 Subject: [PATCH 03/38] [Controls] Fix accessibility gallery (#763) --- .../AccessibilityGallery.cs | 85 +++++++++++++------ 1 file changed, 57 insertions(+), 28 deletions(-) diff --git a/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs b/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs index e2354153e67..64d9e2a2c29 100644 --- a/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs +++ b/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs @@ -9,9 +9,19 @@ public AccessibilityGallery() // https://developer.xamarin.com/guides/ios/advanced_topics/accessibility/ // https://msdn.microsoft.com/en-us/windows/uwp/accessibility/basic-accessibility-information + const string EntryPlaceholder = "Your name."; + const string EntryHint = "Type your name."; + const string ImageName = "Roof"; + const string ImageHint = "Tap to show an alert."; + const string BoxHint = "Shows a purple box."; + const string BoxName = "Box"; + string screenReader = ""; string scrollFingers = ""; string explore = ""; + string labeledByInstructions = ""; + string imageInstructions = ""; + string boxInstructions = ""; switch (Device.RuntimePlatform) { @@ -19,30 +29,45 @@ public AccessibilityGallery() screenReader = "VoiceOver"; scrollFingers = "three fingers"; explore = "Use two fingers to swipe up or down the screen to read all of the elements on this page."; + labeledByInstructions = $"The following Entry should read aloud \"{EntryPlaceholder}.\", plus native instructions on how to use an Entry element. This text comes from the placeholder."; + imageInstructions = $"The following Image should read aloud \"{ImageName}. {ImageHint}\". You should be able to tap the image and hear an alert box."; + boxInstructions = $"The following Box should read aloud \"{BoxName}. {BoxHint}\". You should be able to tap the box and hear an alert box."; break; case Device.Android: screenReader = "TalkBack"; scrollFingers = "two fingers"; explore = "Drag one finger across the screen to read each element on the page."; + labeledByInstructions = $"The following Entry should read aloud \"EditBox {EntryPlaceholder} for {EntryHint}.\", plus native instructions on how to use an Entry element. This text comes from the Entry placeholder and text of the Label."; + imageInstructions = $"The following Image should read aloud \"{ImageName}. {ImageHint}\". You should be able to tap the image and hear an alert box."; + boxInstructions = $"The following Box should read aloud \"{BoxName}. {BoxHint}\". You should be able to tap the box and hear an alert box."; break; case Device.Windows: case Device.WinPhone: screenReader = "Narrator"; scrollFingers = "two fingers"; + explore = "Use three fingers to swipe up the screen to read all of the elements on this page."; + labeledByInstructions = $"The following Entry should read aloud \"{EntryHint}\", plus native instructions on how to use an Entry element. This text comes from the text of the label."; + imageInstructions = $"The following Image should read aloud \"{ImageName}. {ImageHint}\". Windows does not currently support TapGestures while the Narrator is active."; + boxInstructions = $"The following Box should read aloud \"{BoxName}. {BoxHint}\". Windows does not currently support TapGestures while the Narrator is active."; break; default: screenReader = "the native screen reader"; break; } - var instructions = new Label { Text = $"Please enable {screenReader}. {explore} Use {scrollFingers} to scroll the view. Tap an element once to hear the description. Double tap anywhere on the screen to activate the selected element. Swipe left or right with one finger to switch to the previous or next element." }; + var instructions = new Label { Text = $"Please enable {screenReader}. {explore} Use {scrollFingers} to scroll the view. Tap an element once to hear the name and description and native instructions. Double tap anywhere on the screen to activate the selected element. Swipe left or right with one finger to switch to the previous or next element." }; - const string EntryPlaceholder = "Your name"; - const string EntryHint = "Type your name."; - - var instructions2 = new Label { Text = $"The following Entry should read aloud \"{EntryPlaceholder}. {EntryHint}\", plus native instructions on how to use an entry element. Note that Android will NOT read the Hint if a Placeholder is provided." }; + var instructions2 = new Label { Text = labeledByInstructions }; + var entryLabel = new Label { Text = EntryHint, VerticalOptions = LayoutOptions.Center }; var entry = new Entry { Placeholder = EntryPlaceholder }; - entry.SetAccessibilityHint(EntryHint); + entry.SetAccessibilityLabeledBy(entryLabel); + + var entryGroup = new Grid(); + entryGroup.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); + entryGroup.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); + entryGroup.AddChild(entryLabel, 0, 0); + entryGroup.AddChild(entry, 1, 0); + var activityIndicator = new ActivityIndicator(); @@ -50,8 +75,10 @@ public AccessibilityGallery() const string ButtonText = "Update progress"; - var instructions3 = new Label { Text = $"The following Button should read aloud \"{ButtonText}\", plus native instructions on how to use a button." }; + const string ButtonHint = "Tap to start/stop the activity indicator."; + var instructions3 = new Label { Text = $"The following Button should read aloud \"{ButtonText}.\", plus native instructions on how to use a button." }; var button = new Button { Text = ButtonText }; + button.SetAccessibilityHint(ButtonHint); button.Clicked += (sender, e) => { activityIndicator.IsRunning = !activityIndicator.IsRunning; @@ -59,27 +86,27 @@ public AccessibilityGallery() }; - const string ImageHint = "Tap to show an alert."; - var instructions4 = new Label { Text = $"The following Image should read aloud \"{ImageHint}\". You should be able to tap the image and hear an alert box." }; + var instructions4 = new Label { Text = imageInstructions }; var image = new Image { Source = "photo.jpg" }; + // The tap gesture will NOT work on Win image.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => DisplayAlert("Success", "You tapped the image", "OK")) }); + image.SetAccessibilityName(ImageName); image.SetAccessibilityHint(ImageHint); - // images are ignored by default on iOS (at least, Forms images are); + // Images are ignored by default on iOS (at least, Forms Images are); // make accessible in order to enable the gesture and narration image.SetIsInAccessibleTree(true); - var instructions5 = new Label { Text = $"The following Button should NOT be read aloud, nor should you be able to interact with it while {screenReader} is active." }; - var button2 = new Button { Text = "I am not accessible" }; - // setting this to false seems to have no effect on any platform - button2.SetIsInAccessibleTree(false); - - + var instructions6 = new Label { Text = boxInstructions }; var boxView = new BoxView { Color = Color.Purple }; + // The tap gesture will NOT work on Win boxView.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => DisplayAlert("Success", "You tapped the box", "OK")) }); - boxView.SetAccessibilityName("Box"); - boxView.SetAccessibilityHint("Shows a purple box."); - //boxView.SetIsInAccessibleTree(true); + boxView.SetAccessibilityName(BoxName); + boxView.SetAccessibilityHint(BoxHint); + // BoxViews are ignored by default on iOS and Win; + // make accessible in order to enable the gesture and narration + boxView.SetIsInAccessibleTree(true); + var stack = new StackLayout { @@ -87,29 +114,21 @@ public AccessibilityGallery() { instructions, instructions2, - entry, + entryGroup, instructions3, button, activityIndicator, instructions4, image, - instructions5, - button2, boxView } }; var scrollView = new ScrollView { Content = stack }; - - // TODO: Test Pan/Pinch gestures - // TODO: Test CarouselView - Content = scrollView; } - } - public static class AccessibilityExtensions { public static void SetAccessibilityName(this VisualElement element, string name) @@ -141,5 +160,15 @@ public static bool GetIsInAccessibleTree(this VisualElement element) { return (bool)element.GetValue(Accessibility.IsInAccessibleTreeProperty); } + + public static void SetAccessibilityLabeledBy(this VisualElement element, Element value) + { + element.SetValue(Accessibility.LabeledByProperty, value); + } + + public static Element GetAccessibilityLabeledBy(this VisualElement element) + { + return (Element)element.GetValue(Accessibility.LabeledByProperty); + } } } From 340a705c5e2f912f97e8e276215de4ff20583e59 Mon Sep 17 00:00:00 2001 From: adrianknight89 Date: Wed, 15 Feb 2017 05:38:22 -0600 Subject: [PATCH 04/38] [iOS] Dispose pickers properly and automate GC checks (#632) * dispose datepicker * add dispose to other pickers * add ui test * add dispose to picker model * change class name --- .../Issue1023.cs | 162 ++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 3 +- .../Renderers/DatePickerRenderer.cs | 46 ++++- .../Renderers/PickerRenderer.cs | 58 ++++++- .../Renderers/TimePickerRenderer.cs | 23 ++- 5 files changed, 277 insertions(+), 15 deletions(-) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1023.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1023.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1023.cs new file mode 100644 index 00000000000..a09a49a0a01 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1023.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; +using System.Threading; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.None, 1023, "Automate GC checks of picker disposals", PlatformAffected.iOS)] + public class Bugzilla1023 : TestNavigationPage + { + protected override void Init() + { + PushAsync(new LandingPage1023()); + } + +#if UITEST && __IOS__ + [Test] + public void Bugzilla1023Test() + { + for (var n = 0; n < 10; n++) + { + RunningApp.WaitForElement(q => q.Marked("Push")); + RunningApp.Tap(q => q.Marked("Push")); + + RunningApp.WaitForElement(q => q.Marked("ListView")); + RunningApp.Back(); + } + + // At this point, the counter can be any value, but it's most likely not zero. + // Invoking GC once is enough to clean up all garbage data and set counter to zero + RunningApp.WaitForElement(q => q.Marked("GC")); + RunningApp.Tap(q => q.Marked("GC")); + + RunningApp.WaitForElement(q => q.Marked("Counter: 0")); + } +#endif + } + + [Preserve(AllMembers = true)] + public class LandingPage1023 : ContentPage + { + public static int Counter; + public Label Label; + + public LandingPage1023() + { + Label = new Label + { + Text = "Counter: " + Counter, + HorizontalTextAlignment = TextAlignment.Center, + VerticalTextAlignment = TextAlignment.Center + }; + + Content = new StackLayout + { + Orientation = StackOrientation.Vertical, + HorizontalOptions = LayoutOptions.Center, + VerticalOptions = LayoutOptions.Center, + Spacing = 15, + Children = + { + new Label + { + Text = "Click Push to show a ListView. When you hit the Back button, Counter will show the number of pages that have not been finalized yet." + + " If you click GC, the counter should be 0." + }, + Label, + new Button + { + Text = "GC", + AutomationId = "GC", + Command = new Command(o => + { + GC.Collect(); + GC.WaitForPendingFinalizers(); + GC.Collect(); + Label.Text = "Counter: " + Counter; + }) + }, + new Button + { + Text = "Push", + AutomationId = "Push", + Command = new Command(async o => + { + await Navigation.PushAsync(new ContentPage1023()); + }) + } + } + }; + } + + protected override void OnAppearing() + { + base.OnAppearing(); + + if (Label != null) + Label.Text = "Counter: " + Counter; + } + } + + [Preserve(AllMembers = true)] + public class ContentPage1023 : ContentPage + { + public ContentPage1023() + { + Interlocked.Increment(ref LandingPage1023.Counter); + System.Diagnostics.Debug.WriteLine("Page: " + LandingPage1023.Counter); + + Content = new ListView + { + HasUnevenRows = true, + ItemsSource = new List { "DatePicker", "Picker", "TimePicker" }, + ItemTemplate = new DataTemplateSelector1023(), + AutomationId = "ListView" + }; + } + + ~ContentPage1023() + { + Interlocked.Decrement(ref LandingPage1023.Counter); + System.Diagnostics.Debug.WriteLine("Page: " + LandingPage1023.Counter); + } + } + + [Preserve(AllMembers = true)] + public class DataTemplateSelector1023 : DataTemplateSelector + { + public DataTemplate DatePickerTemplate { get; set; } + public DataTemplate PickerTemplate { get; set; } + public DataTemplate TimePickerTemplate { get; set; } + + public DataTemplateSelector1023() + { + DatePickerTemplate = new DataTemplate(() => new ViewCell { View = new DatePicker() }); + PickerTemplate = new DataTemplate(() => new ViewCell { View = new Picker() }); + TimePickerTemplate = new DataTemplate(() => new ViewCell { View = new TimePicker() }); + } + + protected override DataTemplate OnSelectTemplate(object item, BindableObject container) + { + switch (item as string) + { + case "DatePicker": + return DatePickerTemplate; + case "Picker": + return PickerTemplate; + case "TimePicker": + return TimePickerTemplate; + } + + return null; + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index c69e1a31b6a..754133de0c7 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -177,6 +177,7 @@ + @@ -634,4 +635,4 @@ MSBuild:UpdateDesignTimeXaml - \ No newline at end of file + diff --git a/Xamarin.Forms.Platform.iOS/Renderers/DatePickerRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/DatePickerRenderer.cs index 710aa364ccc..39e7ab77fbb 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/DatePickerRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/DatePickerRenderer.cs @@ -22,6 +22,7 @@ public class DatePickerRenderer : ViewRenderer { UIDatePicker _picker; UIColor _defaultTextColor; + bool _disposed; IElementController ElementController => Element as IElementController; @@ -29,7 +30,10 @@ protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); - if (e.OldElement == null) + if (e.NewElement == null) + return; + + if (Control == null) { var entry = new NoCaretField { BorderStyle = UITextBorderStyle.RoundedRect }; @@ -55,13 +59,10 @@ protected override void OnElementChanged(ElementChangedEventArgs e) SetNativeControl(entry); } - if (e.NewElement != null) - { - UpdateDateFromModel(false); - UpdateMaximumDate(); - UpdateMinimumDate(); - UpdateTextColor(); - } + UpdateDateFromModel(false); + UpdateMaximumDate(); + UpdateMinimumDate(); + UpdateTextColor(); } protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) @@ -120,5 +121,34 @@ void UpdateTextColor() else Control.TextColor = textColor.ToUIColor(); } + + protected override void Dispose(bool disposing) + { + if (_disposed) + return; + + _disposed = true; + + if (disposing) + { + _defaultTextColor = null; + + if (_picker != null) + { + _picker.RemoveFromSuperview(); + _picker.ValueChanged -= HandleValueChanged; + _picker.Dispose(); + _picker = null; + } + + if (Control != null) + { + Control.EditingDidBegin -= OnStarted; + Control.EditingDidEnd -= OnEnded; + } + } + + base.Dispose(disposing); + } } } \ No newline at end of file diff --git a/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs index c0f10d104d7..0905dcfc178 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs @@ -11,6 +11,7 @@ public class PickerRenderer : ViewRenderer { UIPickerView _picker; UIColor _defaultTextColor; + bool _disposed; IElementController ElementController => Element as IElementController; @@ -139,13 +140,51 @@ void UpdateTextColor() Control.TextColor = textColor.ToUIColor(); } + protected override void Dispose(bool disposing) + { + if (_disposed) + return; + + _disposed = true; + + if (disposing) + { + _defaultTextColor = null; + + if (_picker != null) + { + if (_picker.Model != null) + { + _picker.Model.Dispose(); + _picker.Model = null; + } + + _picker.RemoveFromSuperview(); + _picker.Dispose(); + _picker = null; + } + + if (Control != null) + { + Control.EditingDidBegin -= OnStarted; + Control.EditingDidEnd -= OnEnded; + } + + if(Element != null) + ((INotifyCollectionChanged)Element.Items).CollectionChanged -= RowsCollectionChanged; + } + + base.Dispose(disposing); + } + class PickerSource : UIPickerViewModel { - readonly PickerRenderer _renderer; + PickerRenderer _renderer; + bool _disposed; - public PickerSource(PickerRenderer model) + public PickerSource(PickerRenderer renderer) { - _renderer = model; + _renderer = renderer; } public int SelectedIndex { get; internal set; } @@ -183,6 +222,19 @@ public override void Selected(UIPickerView picker, nint row, nint component) if(_renderer.Element.On().UpdateMode() == UpdateMode.Immediately) _renderer.UpdatePickerFromModel(this); } + + protected override void Dispose(bool disposing) + { + if (_disposed) + return; + + _disposed = true; + + if (disposing) + _renderer = null; + + base.Dispose(disposing); + } } } } \ No newline at end of file diff --git a/Xamarin.Forms.Platform.iOS/Renderers/TimePickerRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/TimePickerRenderer.cs index f2632768986..bfb96d81bb3 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/TimePickerRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/TimePickerRenderer.cs @@ -10,17 +10,34 @@ public class TimePickerRenderer : ViewRenderer { UIDatePicker _picker; UIColor _defaultTextColor; + bool _disposed; IElementController ElementController => Element as IElementController; protected override void Dispose(bool disposing) { + if (_disposed) + return; + + _disposed = true; + if (disposing) { - Control.EditingDidBegin -= OnStarted; - Control.EditingDidEnd -= OnEnded; + _defaultTextColor = null; - _picker.ValueChanged -= OnValueChanged; + if (_picker != null) + { + _picker.RemoveFromSuperview(); + _picker.ValueChanged -= OnValueChanged; + _picker.Dispose(); + _picker = null; + } + + if (Control != null) + { + Control.EditingDidBegin -= OnStarted; + Control.EditingDidEnd -= OnEnded; + } } base.Dispose(disposing); From 1d8e098e2a85d5f82eeb816f7e12c3c8e9381262 Mon Sep 17 00:00:00 2001 From: adrianknight89 Date: Wed, 15 Feb 2017 05:39:02 -0600 Subject: [PATCH 05/38] [iOS] MasterDetailPage master icon should be changeable from any page on the stack (#608) * master detail page master icon could be changed from any page on the stack * change icon names * added titles --- .../Bugzilla32865.cs | 135 ++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 1 + .../Renderers/NavigationRenderer.cs | 61 ++++---- .../Renderers/PhoneMasterDetailRenderer.cs | 15 +- 4 files changed, 181 insertions(+), 31 deletions(-) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs new file mode 100644 index 00000000000..27769528c48 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs @@ -0,0 +1,135 @@ +using System; +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +// Apply the default category of "Issues" to all of the tests in this assembly +// We use this as a catch-all for tests which haven't been individually categorized +#if UITEST +[assembly: NUnit.Framework.Category("Issues")] +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 32865, "On MasterDetailPage trying to change Icon of Master page doesn\'t work if another view is pushed and Image is renderer in blue", PlatformAffected.iOS)] + public class Bugzilla32865 : TestMasterDetailPage // or TestMasterDetailPage, etc ... + { + public static Bugzilla32865 Mdp; + + protected override void Init() + { + Mdp = this; + + Master = new ContentPage {Title = "Master"}; + Detail = new NavigationPage(new DetailView32865()); + } + + public void ChangeIcon() + { + Master.Icon = "settings"; + } + public void ChangeIcon2() + { + Master.Icon = "menuIcon"; + } + } + + [Preserve(AllMembers = true)] + public class DetailView32865 : ContentPage + { + public DetailView32865() + { + Title = "Page1"; + + var label = new Label + { + Text = "Push a page and then change master icon. The icon should be changeable from any page on the navigation stack.", + HorizontalTextAlignment = TextAlignment.Center, + VerticalTextAlignment = TextAlignment.Center + }; + + var button = new Button() + { + Text = "Icon 1", + }; + button.Clicked += Button_Clicked; + var button2 = new Button() + { + Text = "Icon 2", + }; + button2.Clicked += Button2_Clicked; + var button3 = new Button() + { + Text = "Push Page", + }; + button3.Clicked += Button3_Clicked; + + var layout = new StackLayout() + { + VerticalOptions = LayoutOptions.FillAndExpand, + HorizontalOptions = LayoutOptions.FillAndExpand, + Children = { label, button, button2, button3 }, + }; + Content = layout; + } + void Button3_Clicked(object sender, EventArgs e) + { + Navigation.PushAsync(new DetailView232865()); + } + + void Button_Clicked(object sender, EventArgs e) + { + Bugzilla32865.Mdp.ChangeIcon(); + } + + void Button2_Clicked(object sender, EventArgs e) + { + Bugzilla32865.Mdp.ChangeIcon2(); + } + } + + [Preserve(AllMembers = true)] + public class DetailView232865 : ContentPage + { + public DetailView232865() + { + Title = "Page2"; + + var button = new Button() + { + Text = "Icon 1", + }; + button.Clicked += Button_Clicked; + + var button2 = new Button() + { + Text = "Icon 2", + }; + button2.Clicked += Button2_Clicked; + + var layout = new StackLayout() + { + VerticalOptions = LayoutOptions.FillAndExpand, + HorizontalOptions = LayoutOptions.FillAndExpand, + Children = { button, button2 }, + }; + + Content = layout; + } + + void Button_Clicked(object sender, EventArgs e) + { + Bugzilla32865.Mdp.ChangeIcon(); + } + + void Button2_Clicked(object sender, EventArgs e) + { + Bugzilla32865.Mdp.ChangeIcon2(); + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 754133de0c7..b3b14346cd2 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -58,6 +58,7 @@ Code + diff --git a/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs index e742fceeee7..e054a2d3279 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs @@ -35,8 +35,6 @@ public NavigationRenderer() var parentingViewController = (ParentingViewController)ViewControllers.Last(); UpdateLeftBarButtonItem(parentingViewController); }); - - } Page Current { get; set; } @@ -621,34 +619,7 @@ void UpdateLeftBarButtonItem(ParentingViewController containerController, Page p if ((firstPage != pageBeingRemoved && currentChild != firstPage && NavigationPage.GetHasBackButton(currentChild)) || _parentMasterDetailPage == null) return; - if (!_parentMasterDetailPage.ShouldShowToolbarButton()) - { - containerController.NavigationItem.LeftBarButtonItem = null; - return; - } - - var shouldUseIcon = _parentMasterDetailPage.Master.Icon != null; - if (shouldUseIcon) - { - try - { - containerController.NavigationItem.LeftBarButtonItem = - new UIBarButtonItem(new UIImage(_parentMasterDetailPage.Master.Icon), UIBarButtonItemStyle.Plain, - (o, e) => _parentMasterDetailPage.IsPresented = !_parentMasterDetailPage.IsPresented); - } - catch (Exception) - { - // Throws Exception otherwise would catch more specific exception type - shouldUseIcon = false; - } - } - - if (!shouldUseIcon) - { - containerController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(_parentMasterDetailPage.Master.Title, - UIBarButtonItemStyle.Plain, - (o, e) => _parentMasterDetailPage.IsPresented = !_parentMasterDetailPage.IsPresented); - } + SetMasterLeftBarButton(containerController, _parentMasterDetailPage); } void UpdateTint() @@ -681,6 +652,36 @@ void UpdateToolBarVisible() } } + internal static void SetMasterLeftBarButton(UIViewController containerController, MasterDetailPage masterDetailPage) + { + if (!masterDetailPage.ShouldShowToolbarButton()) + { + containerController.NavigationItem.LeftBarButtonItem = null; + return; + } + + EventHandler handler = (o, e) => masterDetailPage.IsPresented = !masterDetailPage.IsPresented; + + bool shouldUseIcon = masterDetailPage.Master.Icon != null; + if (shouldUseIcon) + { + try + { + containerController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(new UIImage(masterDetailPage.Master.Icon), UIBarButtonItemStyle.Plain, handler); + } + catch (Exception) + { + // Throws Exception otherwise would catch more specific exception type + shouldUseIcon = false; + } + } + + if (!shouldUseIcon) + { + containerController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(masterDetailPage.Master.Title, UIBarButtonItemStyle.Plain, handler); + } + } + class SecondaryToolbar : UIToolbar { readonly List _lines = new List(); diff --git a/Xamarin.Forms.Platform.iOS/Renderers/PhoneMasterDetailRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/PhoneMasterDetailRenderer.cs index b26e314851e..fbadc772686 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/PhoneMasterDetailRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/PhoneMasterDetailRenderer.cs @@ -218,7 +218,7 @@ void EmptyContainers() void HandleMasterPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == Page.IconProperty.PropertyName || e.PropertyName == Page.TitleProperty.PropertyName) - MessagingCenter.Send(this, NavigationRenderer.UpdateToolbarButtons); + UpdateLeftBarButton(); } void HandlePropertyChanged(object sender, PropertyChangedEventArgs e) @@ -321,6 +321,19 @@ void UpdateMasterDetailContainers() SetNeedsStatusBarAppearanceUpdate(); } + void UpdateLeftBarButton() + { + var masterDetailPage = Element as MasterDetailPage; + if (!(masterDetailPage?.Detail is NavigationPage)) + return; + + var detailRenderer = Platform.GetRenderer(masterDetailPage.Detail) as UINavigationController; + + UIViewController firstPage = detailRenderer?.ViewControllers.FirstOrDefault(); + if (firstPage != null) + NavigationRenderer.SetMasterLeftBarButton(firstPage, masterDetailPage); + } + public override UIViewController ChildViewControllerForStatusBarHidden() { if (((MasterDetailPage)Element).Detail != null) From 505296c70a623567ec799aa5cf3685328a9b0ccc Mon Sep 17 00:00:00 2001 From: kingces95 Date: Wed, 15 Feb 2017 03:52:27 -0800 Subject: [PATCH 06/38] Checkout docs using unix line endings (#769) From c5c5c7d2f64f126ec949958ccfc87b6055f5cb88 Mon Sep 17 00:00:00 2001 From: Samantha Houts Date: Thu, 16 Feb 2017 10:57:29 -0800 Subject: [PATCH 07/38] [Controls] Fix test number --- .../Xamarin.Forms.Controls.Issues.Shared/Bugzilla28650.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla28650.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla28650.cs index 6415d902689..e6c471a89c2 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla28650.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla28650.cs @@ -12,7 +12,7 @@ namespace Xamarin.Forms.Controls { [Preserve(AllMembers = true)] - [Issue(IssueTracker.Bugzilla, 928650, "In a Listview on iOS, \"andExpand\" does not expand when text is two lines long")] + [Issue(IssueTracker.Bugzilla, 28650, "In a Listview on iOS, \"andExpand\" does not expand when text is two lines long")] public class Bugzilla28650 : TestContentPage { const string caret_image = "caret_r.png"; From 1522c0e48d3feacfbaf68a0016e35e21d9c5940c Mon Sep 17 00:00:00 2001 From: kingces95 Date: Thu, 16 Feb 2017 15:01:58 -0500 Subject: [PATCH 08/38] Robust doc change detection (#772) * Robust doc change detection * Update docs * Update all docs before checking for differences --- docs/Xamarin.Forms.Core/index.xml | 18 ++++++------- update-docs-windows.bat | 45 +++++++++++++++---------------- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/docs/Xamarin.Forms.Core/index.xml b/docs/Xamarin.Forms.Core/index.xml index b730a9508fb..fa6be5f5adf 100644 --- a/docs/Xamarin.Forms.Core/index.xml +++ b/docs/Xamarin.Forms.Core/index.xml @@ -839,7 +839,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. @@ -875,7 +875,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. @@ -911,7 +911,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. @@ -947,7 +947,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. @@ -968,7 +968,7 @@ To be added. - To be added. + For internal use by platform renderers. @@ -1006,7 +1006,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. @@ -1033,7 +1033,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. @@ -1062,7 +1062,7 @@ To be added. To be added. To be added. - To be added. + For internal use by platform renderers. @@ -1085,7 +1085,7 @@ To be added. To be added. - To be added. + For internal use by platform renderers. diff --git a/update-docs-windows.bat b/update-docs-windows.bat index 9f22271050b..33e93c2d95b 100644 --- a/update-docs-windows.bat +++ b/update-docs-windows.bat @@ -1,37 +1,36 @@ @echo off PATH="C:\Program Files (x86)\Mono\bin";%PATH% -echo "Updating Xamarin.Forms.Core" -tools\mdoc\mdoc update --delete Xamarin.Forms.Core\bin\Debug\Xamarin.Forms.Core.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Core | findstr /r "^Members.Added:..," > tmpFile -set /p RESULT= < tmpFile -echo "%RESULT%" -del tmpFile +IF EXIST docs.xml (erase docs.xml) +for /r docs %%i in (*.xml) do type %%i >> docs.xml -IF NOT "%RESULT%" == "Members Added: 0, Members Deleted: 0" (exit 1) +echo "Updating Xamarin.Forms.Core" +tools\mdoc\mdoc update --delete Xamarin.Forms.Core\bin\Debug\Xamarin.Forms.Core.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Core > nul +IF %ERRORLEVEL% NEQ 0 (goto fail) echo "Updating Xamarin.Forms.Xaml" -tools\mdoc\mdoc update --delete Xamarin.Forms.Xaml\bin\Debug\Xamarin.Forms.Xaml.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Xaml | findstr /r "^Members.Added:..," > tmpFile -set /p RESULT= < tmpFile -echo "%RESULT%" -del tmpFile - -IF NOT "%RESULT%" == "Members Added: 0, Members Deleted: 0" (exit 1) +tools\mdoc\mdoc update --delete Xamarin.Forms.Xaml\bin\Debug\Xamarin.Forms.Xaml.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Xaml > nul +IF %ERRORLEVEL% NEQ 0 (goto fail) echo "Updating Xamarin.Forms.Maps" -tools\mdoc\mdoc update --delete Xamarin.Forms.Maps\bin\Debug\Xamarin.Forms.Maps.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Maps | findstr /r "^Members.Added:..," > tmpFile -set /p RESULT= < tmpFile -echo "%RESULT%" -del tmpFile - -IF NOT "%RESULT%" == "Members Added: 0, Members Deleted: 0" (exit 1) +tools\mdoc\mdoc update --delete Xamarin.Forms.Maps\bin\Debug\Xamarin.Forms.Maps.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Maps > nul +IF %ERRORLEVEL% NEQ 0 (goto fail) echo "Updating Xamarin.Forms.Pages" -tools\mdoc\mdoc update --delete Xamarin.Forms.Pages\bin\Debug\Xamarin.Forms.Pages.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Pages | findstr /r "^Members.Added:..," > tmpFile -set /p RESULT= < tmpFile -echo "%RESULT%" -del tmpFile +tools\mdoc\mdoc update --delete Xamarin.Forms.Pages\bin\Debug\Xamarin.Forms.Pages.dll -L "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259" --out docs\Xamarin.Forms.Pages > nul +IF %ERRORLEVEL% NEQ 0 (goto fail) -IF NOT "%RESULT%" == "Members Added: 0, Members Deleted: 0" (exit 1) +IF EXIST _docs.xml (erase _docs.xml) +for /r docs %%i in (*.xml) do type %%i >> _docs.xml +fc docs.xml _docs.xml > nul 2> nul +IF %ERRORLEVEL% NEQ 0 (goto fail) +erase docs.xml _docs.xml +echo No changes detected. exit /B 0 +:fail +erase docs.xml _docs.xml +echo Changes detected! +exit /B 1 + From 53b1bbaf366a43832df1e941e42ca3d0b4c6fcbf Mon Sep 17 00:00:00 2001 From: Stephane Delcroix Date: Fri, 17 Feb 2017 09:57:31 +0100 Subject: [PATCH 09/38] [XamlC] compile NullExtension markup (#750) --- .../CompiledMarkupExtensions/NullExtension.cs | 18 ++++++++++++++++++ .../Xamarin.Forms.Build.Tasks.csproj | 1 + .../MarkupExtensions/NullExtension.cs | 1 + 3 files changed, 20 insertions(+) create mode 100644 Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs diff --git a/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs b/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs new file mode 100644 index 00000000000..6701dacc04a --- /dev/null +++ b/Xamarin.Forms.Build.Tasks/CompiledMarkupExtensions/NullExtension.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using Mono.Cecil; +using Mono.Cecil.Cil; +using Xamarin.Forms.Xaml; + +namespace Xamarin.Forms.Build.Tasks +{ + class NullExtension : ICompiledMarkupExtension + { + + public IEnumerable ProvideValue(IElementNode node, ModuleDefinition module, ILContext context, out TypeReference typeRef) + { + typeRef = module.TypeSystem.Object; + return new[] { Instruction.Create(OpCodes.Ldnull) }; + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj index 0175a4b872a..880fa0c338c 100644 --- a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj +++ b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj @@ -111,6 +111,7 @@ + diff --git a/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs b/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs index 7872a1c4676..6bdab68401b 100644 --- a/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs +++ b/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs @@ -2,6 +2,7 @@ namespace Xamarin.Forms.Xaml { + [ProvideCompiled("Xamarin.Forms.Build.Tasks.NullExtension")] public class NullExtension : IMarkupExtension { public object ProvideValue(IServiceProvider serviceProvider) From f449b31918fbc2d3525cd151ff36c27b175887a0 Mon Sep 17 00:00:00 2001 From: Jimmy Garrido Date: Fri, 17 Feb 2017 02:40:40 -0800 Subject: [PATCH 10/38] Fixed Title not updating on parent page (#743) --- .../Bugzilla43527.cs | 43 +++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 1 + .../NavigationPageRenderer.cs | 2 + 3 files changed, 46 insertions(+) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla43527.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla43527.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla43527.cs new file mode 100644 index 00000000000..4f894f9c1b9 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla43527.cs @@ -0,0 +1,43 @@ +using System; +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 43527, "[UWP] Detail title does not update when wrapped in a NavigationPage", PlatformAffected.WinRT)] + public class Bugzilla43527 : TestMasterDetailPage + { + protected override void Init() + { + Master = new ContentPage + { + Title = "Master", + BackgroundColor = Color.Red + }; + + Detail = new NavigationPage(new TestPage()); + } + + class TestPage : ContentPage + { + public TestPage() + { + Title = "Test Page"; + + Content = new StackLayout + { + Children = { + new Label { Text = "Hello Page" }, + new Button { Text = "Change Title", Command = new Command(() => Title = $"New Title: {DateTime.Now.Second}") } + } + }; + } + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index b3b14346cd2..f6100c66b82 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -144,6 +144,7 @@ + diff --git a/Xamarin.Forms.Platform.WinRT/NavigationPageRenderer.cs b/Xamarin.Forms.Platform.WinRT/NavigationPageRenderer.cs index 185737aac17..d0b5727f57e 100644 --- a/Xamarin.Forms.Platform.WinRT/NavigationPageRenderer.cs +++ b/Xamarin.Forms.Platform.WinRT/NavigationPageRenderer.cs @@ -314,6 +314,8 @@ void OnCurrentPagePropertyChanged(object sender, PropertyChangedEventArgs e) UpdateBackButtonTitle(); else if (e.PropertyName == NavigationPage.HasNavigationBarProperty.PropertyName) UpdateTitleVisible(); + else if (e.PropertyName == Page.TitleProperty.PropertyName) + UpdateTitleOnParents(); } void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) From de3fdf57c7ee0af98e5d958a1a62595636b885f0 Mon Sep 17 00:00:00 2001 From: Paul DiPietro Date: Fri, 17 Feb 2017 04:42:33 -0600 Subject: [PATCH 11/38] [WinRT/UWP] Insert missing SendScrollFinished call (#751) --- .../Bugzilla44940.cs | 94 +++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 1 + .../ScrollViewRenderer.cs | 1 + 3 files changed, 96 insertions(+) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44940.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44940.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44940.cs new file mode 100644 index 00000000000..57c686b7568 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44940.cs @@ -0,0 +1,94 @@ +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; +using System.Threading.Tasks; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +// Apply the default category of "Issues" to all of the tests in this assembly +// We use this as a catch-all for tests which haven't been individually categorized +#if UITEST +[assembly: NUnit.Framework.Category("Issues")] +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 44940, "[WinRT/UWP] ScrollView.ScrollToAsync does not return from await", PlatformAffected.WinRT)] + public class Bugzilla44940 : TestContentPage + { + Label _statusLabel; + Entry _firstEntry; + Entry _secondEntry; + StackLayout _verticalStackLayout; + ScrollView _scrollView; + + protected override void Init() + { + _statusLabel = new Label + { + Text = "With focus on first Entry, hit Return key", + HorizontalOptions = LayoutOptions.CenterAndExpand, + LineBreakMode = LineBreakMode.WordWrap + }; + + _firstEntry = new Entry + { + HorizontalOptions = LayoutOptions.FillAndExpand, + VerticalOptions = LayoutOptions.CenterAndExpand, + }; + + _secondEntry = new Entry + { + HorizontalOptions = LayoutOptions.FillAndExpand, + VerticalOptions = LayoutOptions.CenterAndExpand, + }; + + _firstEntry.Completed += FirstEntryCompleted; + + _verticalStackLayout = new StackLayout + { + HorizontalOptions = LayoutOptions.FillAndExpand, + VerticalOptions = LayoutOptions.FillAndExpand, + Padding = new Thickness(0, 0, 0, 0), + Margin = new Thickness(0, 0, 0, 0), + Spacing = 5, + Children = + { + _statusLabel, + _firstEntry, + _secondEntry + } + }; + + _scrollView = new ScrollView + { + Orientation = ScrollOrientation.Vertical, + HorizontalOptions = LayoutOptions.CenterAndExpand, + VerticalOptions = LayoutOptions.FillAndExpand, + Margin = new Thickness(10, 5, 10, 0), + Padding = new Thickness(0, 0, 0, 0), + Content = _verticalStackLayout + }; + + Content = _scrollView; + + Device.BeginInvokeOnMainThread(async () => + { + await Task.Delay(100); + _firstEntry.Focus(); + }); + } + + async void FirstEntryCompleted(object sender, System.EventArgs e) + { + _firstEntry?.Unfocus(); + _statusLabel.Text = "Attempting scroll. Return from await pending..."; + await _scrollView.ScrollToAsync(_secondEntry, ScrollToPosition.MakeVisible, false); + _statusLabel.Text = "This should be visible on WinRT/UWP"; + _secondEntry?.Focus(); + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index f6100c66b82..8aa7217526b 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -152,6 +152,7 @@ + diff --git a/Xamarin.Forms.Platform.WinRT/ScrollViewRenderer.cs b/Xamarin.Forms.Platform.WinRT/ScrollViewRenderer.cs index 6938a76e20b..0be6ba288c3 100644 --- a/Xamarin.Forms.Platform.WinRT/ScrollViewRenderer.cs +++ b/Xamarin.Forms.Platform.WinRT/ScrollViewRenderer.cs @@ -146,6 +146,7 @@ void OnScrollToRequested(object sender, ScrollToRequestedEventArgs e) { Control.ChangeView(x, y, null, !e.ShouldAnimate); } + Controller.SendScrollFinished(); } void OnViewChanged(object sender, ScrollViewerViewChangedEventArgs e) From caa8882ff2007d93d08e2c1de307117f5c706730 Mon Sep 17 00:00:00 2001 From: "E.Z. Hart" Date: Fri, 17 Feb 2017 03:43:26 -0700 Subject: [PATCH 12/38] Split Windows RuntimePlatform into UWP and WinRT (#748) * Split RuntimePlatform Windows into UWP and WinRT * Update docs * Backward compatible targetPlatform=Windows for native XAML views on WinRT/UWP --- .../Bugzilla22229.xaml.cs | 3 ++- .../Bugzilla34632.cs | 2 +- .../Bugzilla42069.cs | 3 ++- .../ImageLoadingErrorHandling.cs | 4 ++-- .../Issue773.cs | 2 +- .../AccessibilityGallery.cs | 3 ++- .../GalleryPages/ButtonGallery.cs | 3 ++- .../CellsGalleries/ProductViewCell.cs | 2 +- .../GalleryPages/FrameGallery.cs | 2 +- .../GalleryPages/LabelGallery.cs | 3 ++- Xamarin.Forms.Controls/TestCases.cs | 3 ++- Xamarin.Forms.Core.UnitTests/ListViewTests.cs | 3 ++- Xamarin.Forms.Core/Device.cs | 10 ++++++++- .../TestAttributes.cs | 1 + .../WindowsBasePlatformServices.cs | 6 +++++- Xamarin.Forms.Xaml/XamlParser.cs | 7 +++++++ .../Xamarin.Forms/Device.xml | 21 ++++++++++++++++--- 17 files changed, 60 insertions(+), 18 deletions(-) diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22229.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22229.xaml.cs index f7d8918c466..12e7143fea1 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22229.xaml.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22229.xaml.cs @@ -26,7 +26,8 @@ public Bugzilla22229() case Device.Android: _prefix = ""; break; - case Device.Windows: + case Device.WinRT: + case Device.UWP: case Device.WinPhone: _prefix = "Assets/"; break; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla34632.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla34632.cs index 30cbc5a867a..201f0b86701 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla34632.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla34632.cs @@ -16,7 +16,7 @@ public class Bugzilla34632 : TestMasterDetailPage { protected override void Init () { - if (Device.RuntimePlatform == Device.Windows) + if (Device.RuntimePlatform == Device.UWP || Device.RuntimePlatform == Device.WinRT) MasterBehavior = MasterBehavior.Split; else MasterBehavior = MasterBehavior.SplitOnLandscape; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42069.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42069.cs index d4de5aa372e..b16223282ba 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42069.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42069.cs @@ -25,7 +25,8 @@ protected override void Init() smallImage = "coffee.png"; break; case Device.WinPhone: - case Device.Windows: + case Device.WinRT: + case Device.UWP: smallImage = "bank.png"; break; } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/ImageLoadingErrorHandling.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/ImageLoadingErrorHandling.cs index 6abac885a19..b2607c71348 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/ImageLoadingErrorHandling.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/ImageLoadingErrorHandling.cs @@ -5,7 +5,7 @@ namespace Xamarin.Forms.Controls { [Preserve(AllMembers = true)] - [Issue(IssueTracker.None, 0, "Image Loading Error Handling", PlatformAffected.WinRT)] + [Issue(IssueTracker.None, 0, "Image Loading Error Handling", PlatformAffected.WinRT | PlatformAffected.UWP)] public class ImageLoadingErrorHandling : TestContentPage { protected override void Init() @@ -31,7 +31,7 @@ protected override void Init() Grid fakeUri = CreateTest(() => image.Source = ImageSource.FromUri(new Uri("http://not.real")), "Non-existent URI", - Device.RuntimePlatform == Device.Windows && Device.Idiom == TargetIdiom.Phone + (Device.RuntimePlatform == Device.UWP || Device.RuntimePlatform == Device.WinRT) && Device.Idiom == TargetIdiom.Phone ? "Clicking this button should display an alert dialog. The error message should include the text 'NotFound'." : "Clicking this button should display an alert dialog. The error message should include the text 'the server name or address could not be resolved'."); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue773.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue773.cs index 63d9cbc147f..7857051868d 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue773.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue773.cs @@ -165,7 +165,7 @@ public CannotScrollRepro () layout.Children.Add(new ScrollView { BackgroundColor = Color.Aqua, Orientation = ScrollOrientation.Horizontal, - HeightRequest = Device.RuntimePlatform == Device.Windows || Device.RuntimePlatform == Device.WinPhone ? 80 : 44, + HeightRequest = Device.RuntimePlatform == Device.WinRT || Device.RuntimePlatform == Device.UWP || Device.RuntimePlatform == Device.WinPhone ? 80 : 44, Content = buttonStack }); diff --git a/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs b/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs index 64d9e2a2c29..f5f0b39c23e 100644 --- a/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs +++ b/Xamarin.Forms.Controls/ControlGalleryPages/AccessibilityGallery.cs @@ -41,7 +41,8 @@ public AccessibilityGallery() imageInstructions = $"The following Image should read aloud \"{ImageName}. {ImageHint}\". You should be able to tap the image and hear an alert box."; boxInstructions = $"The following Box should read aloud \"{BoxName}. {BoxHint}\". You should be able to tap the box and hear an alert box."; break; - case Device.Windows: + case Device.WinRT: + case Device.UWP: case Device.WinPhone: screenReader = "Narrator"; scrollFingers = "two fingers"; diff --git a/Xamarin.Forms.Controls/GalleryPages/ButtonGallery.cs b/Xamarin.Forms.Controls/GalleryPages/ButtonGallery.cs index 896085a39e7..3d452f71eb1 100644 --- a/Xamarin.Forms.Controls/GalleryPages/ButtonGallery.cs +++ b/Xamarin.Forms.Controls/GalleryPages/ButtonGallery.cs @@ -41,7 +41,8 @@ public ButtonGallery () fontName = "sans-serif-light"; break; case Device.WinPhone: - case Device.Windows: + case Device.WinRT: + case Device.UWP: fontName = "Comic Sans MS"; break; } diff --git a/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ProductViewCell.cs b/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ProductViewCell.cs index e0b4b9dfff6..92f36810fd2 100644 --- a/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ProductViewCell.cs +++ b/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ProductViewCell.cs @@ -20,7 +20,7 @@ public ProductCellView (string text) var frame = new Frame { Content = _stack, - BackgroundColor = new[] { Device.Android, Device.Windows, Device.WinPhone }.Contains(Device.RuntimePlatform) ? new Color(0.2) : new Color(1) + BackgroundColor = new[] { Device.Android, Device.WinRT, Device.UWP, Device.WinPhone }.Contains(Device.RuntimePlatform) ? new Color(0.2) : new Color(1) }; _timeLabel = new Label { Text = text diff --git a/Xamarin.Forms.Controls/GalleryPages/FrameGallery.cs b/Xamarin.Forms.Controls/GalleryPages/FrameGallery.cs index 653ecdae98b..96078f5b01f 100644 --- a/Xamarin.Forms.Controls/GalleryPages/FrameGallery.cs +++ b/Xamarin.Forms.Controls/GalleryPages/FrameGallery.cs @@ -22,7 +22,7 @@ public FrameGallery () Content = new Button { Text = "Framous!" }, - BackgroundColor = new[] { Device.Android, Device.Windows, Device.WinPhone }.Contains(Device.RuntimePlatform) ? new Color(0) : new Color(1), + BackgroundColor = new[] { Device.Android, Device.WinRT, Device.UWP, Device.WinPhone }.Contains(Device.RuntimePlatform) ? new Color(0) : new Color(1), VerticalOptions = LayoutOptions.FillAndExpand }; diff --git a/Xamarin.Forms.Controls/GalleryPages/LabelGallery.cs b/Xamarin.Forms.Controls/GalleryPages/LabelGallery.cs index 4ae44ba613f..d141ca4a378 100644 --- a/Xamarin.Forms.Controls/GalleryPages/LabelGallery.cs +++ b/Xamarin.Forms.Controls/GalleryPages/LabelGallery.cs @@ -82,7 +82,8 @@ public LabelGallery () fontName = "sans-serif-light"; break; case Device.WinPhone: - case Device.Windows: + case Device.WinRT: + case Device.UWP: fontName = "Comic Sans MS"; break; } diff --git a/Xamarin.Forms.Controls/TestCases.cs b/Xamarin.Forms.Controls/TestCases.cs index d05b0a0e364..85f766f22f9 100644 --- a/Xamarin.Forms.Controls/TestCases.cs +++ b/Xamarin.Forms.Controls/TestCases.cs @@ -212,7 +212,8 @@ public static NavigationPage GetTestCases () page.Title = "Test Cases"; break; case Device.WinPhone: - case Device.Windows: + case Device.UWP: + case Device.WinRT: page.Title = "Tests"; break; } diff --git a/Xamarin.Forms.Core.UnitTests/ListViewTests.cs b/Xamarin.Forms.Core.UnitTests/ListViewTests.cs index 329ba86cb1f..9b2810ed785 100644 --- a/Xamarin.Forms.Core.UnitTests/ListViewTests.cs +++ b/Xamarin.Forms.Core.UnitTests/ListViewTests.cs @@ -1474,7 +1474,8 @@ public void ChildElementsParentIsNulledWhenCleared() [TestCase (Device.Android, ListViewCachingStrategy.RecycleElement)] [TestCase (Device.iOS, ListViewCachingStrategy.RecycleElement)] - [TestCase (Device.Windows, ListViewCachingStrategy.RetainElement)] + [TestCase (Device.WinRT, ListViewCachingStrategy.RetainElement)] + [TestCase(Device.UWP, ListViewCachingStrategy.RetainElement)] [TestCase ("Other", ListViewCachingStrategy.RetainElement)] [TestCase (Device.WinPhone, ListViewCachingStrategy.RetainElement)] public void EnforcesCachingStrategy (string platform, ListViewCachingStrategy expected) diff --git a/Xamarin.Forms.Core/Device.cs b/Xamarin.Forms.Core/Device.cs index ba83ca0e304..755a8e2d027 100644 --- a/Xamarin.Forms.Core/Device.cs +++ b/Xamarin.Forms.Core/Device.cs @@ -11,7 +11,8 @@ public static class Device public const string iOS = "iOS"; public const string Android = "Android"; public const string WinPhone = "WinPhone"; - public const string Windows = "Windows"; + public const string UWP = "UWP"; + public const string WinRT = "WinRT"; public const string macOS = "macOS"; internal static DeviceInfo info; @@ -29,6 +30,13 @@ public static TargetPlatform OS TargetPlatform platform; if (Enum.TryParse(RuntimePlatform, out platform)) return platform; + + // In the old TargetPlatform, there was no distinction between WinRT/UWP + if (RuntimePlatform == UWP || RuntimePlatform == WinRT) + { + return TargetPlatform.Windows; + } + return TargetPlatform.Other; } } diff --git a/Xamarin.Forms.CustomAttributes/TestAttributes.cs b/Xamarin.Forms.CustomAttributes/TestAttributes.cs index 3ac2e6f2fb0..bebd78acb37 100644 --- a/Xamarin.Forms.CustomAttributes/TestAttributes.cs +++ b/Xamarin.Forms.CustomAttributes/TestAttributes.cs @@ -135,6 +135,7 @@ public enum PlatformAffected Android = 1 << 1, WinPhone = 1 << 2, WinRT = 1 << 3, + UWP = 1 << 4, All = ~0, Default = 0 } diff --git a/Xamarin.Forms.Platform.WinRT/WindowsBasePlatformServices.cs b/Xamarin.Forms.Platform.WinRT/WindowsBasePlatformServices.cs index 3b5999f6651..ced37977289 100644 --- a/Xamarin.Forms.Platform.WinRT/WindowsBasePlatformServices.cs +++ b/Xamarin.Forms.Platform.WinRT/WindowsBasePlatformServices.cs @@ -116,7 +116,11 @@ public IIsolatedStorageFile GetUserStoreForApplication() public bool IsInvokeRequired => !CoreApplication.MainView.CoreWindow.Dispatcher.HasThreadAccess; - public string RuntimePlatform => Device.Windows; +#if WINDOWS_UWP + public string RuntimePlatform => Device.UWP; +#else + public string RuntimePlatform => Device.WinRT; +#endif public void OpenUriAction(Uri uri) { diff --git a/Xamarin.Forms.Xaml/XamlParser.cs b/Xamarin.Forms.Xaml/XamlParser.cs index 456aad6ac58..eb078597e47 100644 --- a/Xamarin.Forms.Xaml/XamlParser.cs +++ b/Xamarin.Forms.Xaml/XamlParser.cs @@ -269,7 +269,14 @@ static IList PrefixesToIgnore(IList> xmlns) continue; try { if (targetPlatform != Device.RuntimePlatform) + { + // Special case for Windows backward compatibility + if (targetPlatform == "Windows" && + (Device.RuntimePlatform == Device.UWP || Device.RuntimePlatform == Device.WinRT)) + continue; + prefixes.Add(prefix); + } } catch (InvalidOperationException) { prefixes.Add(prefix); } diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/Device.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/Device.xml index 37fbad36a18..fbf294b3fcb 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/Device.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/Device.xml @@ -361,9 +361,9 @@ button.HeightRequest = Device.OnPlatform (20,30,30); While the callback returns , the timer will keep recurring. - - - + + + Field 2.0.0.0 @@ -391,5 +391,20 @@ button.HeightRequest = Device.OnPlatform (20,30,30); To be added. + + + + Field + + 2.0.0.0 + + + System.String + + + To be added. + To be added. + + From 986c46d0d410bb80a83ac37da0c68c2ad2f390b3 Mon Sep 17 00:00:00 2001 From: Paul DiPietro Date: Fri, 17 Feb 2017 04:44:14 -0600 Subject: [PATCH 13/38] [A] Do not throw error for first param in ScrollTo (#742) --- .../Bugzilla41600.cs | 51 +++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 1 + .../Renderers/ListViewRenderer.cs | 3 ++ 3 files changed, 55 insertions(+) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla41600.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla41600.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla41600.cs new file mode 100644 index 00000000000..21b3df24233 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla41600.cs @@ -0,0 +1,51 @@ +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; +using System.Collections.Generic; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 41600, "[Android] Invalid item param value for ScrollTo throws an error", PlatformAffected.Android)] + public class Bugzilla41600 : TestContentPage + { + protected override void Init() + { + var items = new List(); + for (var i = 0; i <= 30; i++) + items.Add(i.ToString()); + + var listView = new ListView + { + ItemsSource = items + }; + Content = new StackLayout + { + Children = + { + listView, + new Button + { + Text = "Click for ScrollTo (should do nothing)", + Command = new Command(() => + { + listView.ScrollTo("Hello", ScrollToPosition.Start, true); + }) + }, + new Button + { + Text = "Click for ScrollTo (should go to 15)", + Command = new Command(() => + { + listView.ScrollTo(items[15], ScrollToPosition.Start, false); + }) + } + } + }; + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 8aa7217526b..36c7a2b927b 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -130,6 +130,7 @@ + diff --git a/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs b/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs index 1054e1e8026..fa83b25b0a3 100644 --- a/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs +++ b/Xamarin.Forms.Platform.Android/Renderers/ListViewRenderer.cs @@ -206,6 +206,9 @@ void OnScrollToRequested(object sender, ScrollToRequestedEventArgs e) else { position = templatedItems.GetGlobalIndexOfItem(scrollArgs.Item); + if (position == -1) + return; + cell = templatedItems[position]; } From 7edc1013b1f343a3bff1b75f83cdff29ff15639c Mon Sep 17 00:00:00 2001 From: Chad Kimes Date: Thu, 26 Jan 2017 10:13:27 +0100 Subject: [PATCH 14/38] [iOS] Fix extra tab icon appearing in iOS for TabbedPage (#448) commit 1ba6ff67a745a0e802f67b7a4f36db4f8385466e Merge: e3f1937 a1d4b64 Author: Stephane Delcroix Date: Thu Jan 26 10:11:08 2017 +0100 Merge branch 'master' of git://github.com/ckimes89/Xamarin.Forms into ckimes89-master commit a1d4b6485c51c0800e16d476ba8749bd1a0a6b28 Author: Chad Kimes Date: Tue Oct 11 13:42:28 2016 -0400 [iOS] Fix extra tab icon appearing in iOS 10 commit 07cd17df33aa9eb61e2507ca04ecf30d3416e16b Author: Chad Kimes Date: Tue Oct 11 13:38:30 2016 -0400 [iOS] Add static check method for iOS 10 --- Xamarin.Forms.Platform.iOS/Forms.cs | 12 ++++++++++++ .../Renderers/TabbedRenderer.cs | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Xamarin.Forms.Platform.iOS/Forms.cs b/Xamarin.Forms.Platform.iOS/Forms.cs index d51e14957cc..3969c0ff002 100644 --- a/Xamarin.Forms.Platform.iOS/Forms.cs +++ b/Xamarin.Forms.Platform.iOS/Forms.cs @@ -37,6 +37,8 @@ public static class Forms static bool? s_isiOS9OrNewer; #endif + static bool? s_isiOS10OrNewer; + static Forms() { if (nevertrue) @@ -55,6 +57,16 @@ internal static bool IsiOS9OrNewer } #endif + internal static bool IsiOS10OrNewer + { + get + { + if (!s_isiOS10OrNewer.HasValue) + s_isiOS10OrNewer = UIDevice.CurrentDevice.CheckSystemVersion(10, 0); + return s_isiOS10OrNewer.Value; + } + } + public static void Init() { if (IsInitialized) diff --git a/Xamarin.Forms.Platform.iOS/Renderers/TabbedRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/TabbedRenderer.cs index 1470a93410a..2b8e70c41d0 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/TabbedRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/TabbedRenderer.cs @@ -171,7 +171,9 @@ void HandleFinishedCustomizingViewControllers(object sender, UITabBarCustomizeCh void OnPagePropertyChanged(object sender, PropertyChangedEventArgs e) { - if (e.PropertyName == Page.TitleProperty.PropertyName) + // Setting TabBarItem.Title in iOS 10 causes rendering bugs + // Work around this by creating a new UITabBarItem on each change + if (e.PropertyName == Page.TitleProperty.PropertyName && !Forms.IsiOS10OrNewer) { var page = (Page)sender; var renderer = Platform.GetRenderer(page); @@ -181,7 +183,7 @@ void OnPagePropertyChanged(object sender, PropertyChangedEventArgs e) if (renderer.ViewController.TabBarItem != null) renderer.ViewController.TabBarItem.Title = page.Title; } - else if (e.PropertyName == Page.IconProperty.PropertyName) + else if (e.PropertyName == Page.IconProperty.PropertyName || e.PropertyName == Page.TitleProperty.PropertyName && Forms.IsiOS10OrNewer) { var page = (Page)sender; From 25fbdc093385d250bd8274f8c567d3081dd86526 Mon Sep 17 00:00:00 2001 From: Stephane Delcroix Date: Thu, 26 Jan 2017 10:51:36 +0100 Subject: [PATCH 15/38] [i] Add Test for 45284 --- .../Bugzilla45284.xaml | 14 ++++++ .../Bugzilla45284.xaml.cs | 47 +++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 6 +++ 3 files changed, 67 insertions(+) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml new file mode 100644 index 00000000000..7d698656202 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs new file mode 100644 index 00000000000..f78279987e8 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using Xamarin.Forms; +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 45284, "[iOS10] Extra tab icons display in iOS when binding Title on TabbedPage", PlatformAffected.iOS)] + public partial class Bugzilla45284 : TabbedPage + { + public Bugzilla45284() + { + var model = new Bugzilla45284Model(); + InitializeComponent(); + BindingContext = model; + model.Change(); + } + } + + public class Bugzilla45284Model : INotifyPropertyChanged + { + public List Tabs => new List { + new Bugzilla45284TabModel(), + new Bugzilla45284TabModel(), + new Bugzilla45284TabModel(), + new Bugzilla45284TabModel(), + new Bugzilla45284TabModel(), + new Bugzilla45284TabModel(), + new Bugzilla45284TabModel(), + }; + + public event PropertyChangedEventHandler PropertyChanged; + public void Change() + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Tabs))); + } + } + + public class Bugzilla45284TabModel + { + public string Title { get; set; } = "Title"; + public string Icon { get; set; } = "bank.png"; + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 36c7a2b927b..e98c36c8098 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -499,6 +499,9 @@ + + Bugzilla45284.xaml + @@ -608,6 +611,9 @@ MSBuild:UpdateDesignTimeXaml + + MSBuild:UpdateDesignTimeXaml + From a1c7f9909a16d3253d9afd5cb2e1a839c6fb5a8c Mon Sep 17 00:00:00 2001 From: Stephane Delcroix Date: Thu, 26 Jan 2017 15:09:35 +0100 Subject: [PATCH 16/38] fix uitest build --- .../Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs index f78279987e8..e3f0a207abc 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla45284.xaml.cs @@ -7,6 +7,7 @@ namespace Xamarin.Forms.Controls.Issues { +#if APP [Preserve(AllMembers = true)] [Issue(IssueTracker.Bugzilla, 45284, "[iOS10] Extra tab icons display in iOS when binding Title on TabbedPage", PlatformAffected.iOS)] public partial class Bugzilla45284 : TabbedPage @@ -44,4 +45,5 @@ public class Bugzilla45284TabModel public string Title { get; set; } = "Title"; public string Icon { get; set; } = "bank.png"; } +#endif } \ No newline at end of file From 2ad9cb93f47f46fcb0584370ab8c297b20912718 Mon Sep 17 00:00:00 2001 From: "E.Z. Hart" Date: Wed, 25 Jan 2017 11:54:54 -0700 Subject: [PATCH 17/38] Add localized listener for Android numeric input --- .../CustomRenderers.cs | 30 +++ .../Bugzilla42000.cs | 65 ++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 1 + .../Cells/EntryCellRenderer.cs | 18 +- .../Renderers/EditorRenderer.cs | 18 +- .../Renderers/EntryRenderer.cs | 19 +- .../Renderers/KeyboardExtensions.cs | 2 +- .../Renderers/LocalizedDigitsKeyListener.cs | 211 ++++++++++++++++++ .../Xamarin.Forms.Platform.Android.csproj | 5 +- 9 files changed, 362 insertions(+), 7 deletions(-) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42000.cs create mode 100644 Xamarin.Forms.Platform.Android/Renderers/LocalizedDigitsKeyListener.cs diff --git a/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs b/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs index 86876a387dc..4c6c1a89a4a 100644 --- a/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs +++ b/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs @@ -19,12 +19,18 @@ using AView = Android.Views.View; using Android.OS; using System.Reflection; +using Android.Text; +using Android.Text.Method; using Xamarin.Forms.Controls.Issues; [assembly: ExportRenderer(typeof(Bugzilla31395.CustomContentView), typeof(CustomContentRenderer))] [assembly: ExportRenderer(typeof(NativeListView), typeof(NativeListViewRenderer))] [assembly: ExportRenderer(typeof(NativeListView2), typeof(NativeAndroidListViewRenderer))] [assembly: ExportRenderer(typeof(NativeCell), typeof(NativeAndroidCellRenderer))] + +[assembly: ExportRenderer(typeof(Bugzilla42000._42000NumericEntryNoDecimal), typeof(EntryRendererNoDecimal))] +[assembly: ExportRenderer(typeof(Bugzilla42000._42000NumericEntryNoNegative), typeof(EntryRendererNoNegative))] + #if PRE_APPLICATION_CLASS #elif FORMS_APPLICATION_ACTIVITY #else @@ -485,5 +491,29 @@ protected override void OnElementChanged(ElementChangedEventArgs