maui-linux/System.Maui.Platform.UAP/ListViewRenderer.cs

827 строки
24 KiB
C#
Исходник Обычный вид История

2020-05-19 03:56:25 +03:00
using System;
using System.Collections;
2016-03-22 23:02:25 +03:00
using System.Collections.Generic;
using System.Collections.Specialized;
2016-03-22 23:02:25 +03:00
using System.ComponentModel;
using System.Linq;
using System.Reflection;
2016-03-22 23:02:25 +03:00
using System.Threading.Tasks;
2020-05-19 03:56:25 +03:00
using global::Windows.Foundation;
using global::Windows.UI.Xaml;
using global::Windows.UI.Xaml.Automation.Peers;
using global::Windows.UI.Xaml.Controls;
using global::Windows.UI.Xaml.Data;
using global::Windows.UI.Xaml.Input;
using global::Windows.UI.Xaml.Media;
using WListView = global::Windows.UI.Xaml.Controls.ListView;
using WBinding = global::Windows.UI.Xaml.Data.Binding;
using WApp = global::Windows.UI.Xaml.Application;
using System.Maui.Internals;
using System.Maui.PlatformConfiguration.WindowsSpecific;
using Specifics = System.Maui.PlatformConfiguration.WindowsSpecific.ListView;
using System.Collections.ObjectModel;
2020-05-19 03:56:25 +03:00
using UwpScrollBarVisibility = global::Windows.UI.Xaml.Controls.ScrollBarVisibility;
using WSelectionChangedEventArgs = global::Windows.UI.Xaml.Controls.SelectionChangedEventArgs;
2016-03-22 23:02:25 +03:00
2020-05-19 03:56:25 +03:00
namespace System.Maui.Platform.UWP
2016-03-22 23:02:25 +03:00
{
public class ListViewRenderer : ViewRenderer<ListView, FrameworkElement>
{
ITemplatedItemsView<Cell> TemplatedItemsView => Element;
bool _collectionIsWrapped;
IList _collection = null;
bool _itemWasClicked;
bool _subscribedToItemClick;
bool _subscribedToTapped;
bool _disposed;
[Enhancement][Core] ListView should report index of item on all events (#4431) * Update from origin (#8) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Update from origin (#9) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Ensure that the ListViewAdapter is no longer being used by the ListVi… (#3848) fixes #3603 * Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it * Remove `RemoveAllViews` from `Dispose` * Update from origin (#11) * [Android] Enable MaxLines and TextDecorations on fast renderers (#3878) * enable MaxLines on fast renderers * added text decoration functionality * include test in project * [Enhancement] Create a bindable property for AutomationId (#3879) * create a bindable property for automationId * make ClassId and AutomationId properties of Element * add comments to .create-nuget.bat * added preserve attribute (#3876) fixes #2306 * [Core] Moving Command's CanExecuteChanged to use the WeakEventManager (#3852) fixes #3656 * [Core] Use WeakEventManager on CanExecuteChanged * [Core]Add unit test for remove event handler with WeakEventManager * [Core] Fix remove the correct handler * [CSS] accept 'oblique' for 'font-style' (#3815) fixes #3808 - fixes #3808 * Prevent double time/date picker dialogs on Android when setting focus (#3899) * Prevent double time/date picker dialogs on Android when setting focus (#3899) * [Controls] Fix merge remove duplciated issue 3788 * WPF - Fix Unable to intercept back button (#3762) * WPF - Fix Unable to intercept back button * WPF - Improve OnBackButtonPressed -fixes #3689 * Fix Bugzilla38723 (#3812) fixes #2302 * [C] fix css mapping (#3919) * [Android] Fix UI test 1851 (#3882) * add preserve attribute - fixes #2255 * added using System * fixed spacing * use TestContentPage * fixed scope issues * [Android] Make native Android Platforms accessible via Context (#3364) * Make native Android Platforms accessible via Context * Add null checks * Added a disabled look to Android Toolbar Item images. (#3773) * Added a disabled look to Android Toolbar Item images. * Update NavigationPageRenderer.cs Refactored DisabledToolbarAlpha into a constant as requested. * [UWP] fixes tabstops of TimePicker, DatePiker. SearchBar, Stepper (#3896) * [UWP] fixes tabstops of TimePicker, DatePiker. SearchBar, Stepper * common code moved to VisualElementRenderer * rename interface fixes #3872 * [UWP] For the Slider default value of step is set to 1000 to match Android. (#3141) * WPF - Ctrl+A does not select all in WPF password Entry (#3908) * [WPF] Fix Height of items not consistent (#3925) fixes #3913 * Fix StartTimer and Ticker for UWP (#3911) - fixes #1937 * Apply font fix for button and span (#3907) * added instructions (#3891) - fixes #2361 * [Android] Convert corner radius with correct pixel density (#3893) fixes #3884 * [Controls] Add Issue #3884 repo * [Android] Convert corner radius with correct pixel density fixes #3884 * [Controls] Update test message * WPF - Fix TimePicker with short time pattern shows verbose time (#3924) * Fix UI test 39378 (#3928) fixes #2305 * Update ClipBounds when View bounds changes (#3909) fixes #3717 * [C] catch AmbiguousMatchException on GetProps (#3915) - fixes #3870 * Automate UI test B45702 (#3914) fixes #2389 * automate 45702 * fix indentation * Fix bugzilla60787 (#3933) * [Android]Fix for frame renderer's bug (bugzilla 60787). #3902 https://bugzilla.xamarin.com/show_bug.cgi?id=60787 https://github.com/xamarin/Xamarin.Forms/issues/3902 * Add control to repro * PR fix * Build fix * Build fix for Xamarin.Forms.Core.Android.UITests * added instructions (#3926) * [UWP] fixes flyout menu on cell item (#3682) * Fix UI test B41424 needs instructions (#3942) * Add manual test steps and checks for ui test * step4Label text fix * [iOS] fix full width issues for TitleView (#3939) * [iOS] fix full width issues for TitleView * [iOS] simplified iOS 10 fixes #3881 fixes #3679 * Changes in TableView GTK Control to allow refresh the content (#3941) - fixes #3725 * Only set the Page Padding via SafeAreaInset on iOS (#3811) * only set the Page Padding via SafeAreaInset on iOS -fixes #3809 * [Controls] add waits for clicks in ui tests * [Controls] remove wrong category * [iOS] Move inset logic down into ios renderer * Added logic to allow set the ListView SelectedIndex (#3948) fixes #3766 * Automate UI test 35127 (#3927) * automate test - fixes #2262 * indentation fix * indentation fix 2 * Make GetIconDrawable virtual (#3967) By making GetIconDrawable virtual for the Android TabbedPageRenderer it allows for the icon to come from other sources (like glyph fonts). This will work for both top and bottom tabs. * [GTK] Fix visibility of hidden pages in the stack (#3904) When navigating to a new page, we should hide the previous content and show the new one so that the previous page renderer is not taken in account for redraws and resizes * [Android] If MaxLines is not explicitly set, let LineBreakMode handle it (#3936) * [Android] If MaxLines is not explicitly set, all LineBreakMode to set it; if MaxLines is explicitly set, MaxLines setting wins. Use a more reasonable default for native MaxLines when handling it via LineBreakMode. Consolidate MaxLines handling code between legacy and fast renderers. Remove unnecessary setting of SingleLine (which only applies to input). - fixes #3772 * Remove unnecessary maxLines setting * Handle resetting MaxLines to -1/default * Reinstate workaround for array bounds exception in older Android APIs * Fix UI test B43941 (#3889) * Add all platforms and remove non-deterministic behaviour * Return back correct check of counter * Endline fix * remove childPages list * [XamlC] avoid multiple subscription (#3969) Avoid multiple subscription to PropertyChanged on TypedBindings - fixes #3613 - fixes #3650 * Fix typos (mainly 'toogle' becoming 'toggle') (#3975) * Fix Issue2597 Needs UI Test (#3966) * Add test for issue 2597 * Fix space * Add CODEOWNERS * Fix PanGesture inside scroll issue https://github.com/xamarin/Xamarin… (#3842) * Fix PanGesture inside scroll issue https://github.com/xamarin/Xamarin.Forms/issues/3840 - fixes #3840 * fixe formatting * [UITest] added UI Test * [Controls] adjusted UI Test button positions * [UITEST] simplify UI tests * [C] add CSS mapping for max-lines (#3991) - fixes #3982 * [iOS] Add ability to turn off updates to native controls from another thread (#3774) * [iOS] Add ability to turn off updates to native controls from another thread * Flip evaluation order fixes #1755 * Fixed NotImplementedException refreshing items in WPF ListView (#3962) * Fixed NotImplementedException refreshing items in WPF ListView * Small changes in ListView events subscription fixes #3309 fixes #3737 fixes #3648 * [GTK] Fix transparent background in visual elements (#3744) * Fix ActivityIndicator.IsRunning state (#4007) * add pdb for uap into nuget (#4015) * update GitInfo * [XamlC] don't compile bindings with Source (#3978) Sources are usually x:reference that can't be resolved at compilation time. - fixes #3606 * [Xaml[C]] resolve Extensions first (#3977) XamlLoader should first look for type with the Extension suffix. It used to be the case, but somehow regressed. - fixes https://github.com/xamarin/Xamarin.Forms/issues/3606#issuecomment-422377338 * [UWP] Document in the README.md the steps required to run UI Tests (#4014) fixes #3984 * [Tizen] Add TabIndex implement for Tizen renderer (#4046) * [Tasks] multitarget the build tasks (#3895) - fixes #2690 - closes #2706 * [UITests] Update TestCloud.Agent (#4055) * [Tizen] Fix ProjectGuid for Forwarders (#4063) * [Tizen] Fix ProjectGuid for Forwarders * [Tizen] Make sure not to generate dependency file * Correct minor typo (#4068) * Added WebView Reload (#4013) fixes #3776 * Added WebView Reload * WebView Reload Added Tizen suport * [Tizen] Cleanup Code (#4080) * fixed ios editor placeholder font (#4009) * Prevented crash https://github.com/xamarin/Xamarin.Forms/issues/2291 (#4072) - fixes #2291 * [Xaml] Allow OnPlat markup in Styles (#3995) - fixes #3862 * [Xaml] fix Namescope being different than tree (#4089) As part of #2556, the namescoping tree was assumed to be equiv to the object tree, which is obviously wrong. This fixes it, while keeping the old behavior as a fallback. We might go further, but I can't come up with a reasonable scenario failing. - fixes #3821 * [Sample] [Android] Fixed PagesGallery.Droid build (#3999) * fixed PagesGallery.Droid build * Moved Xamarin.Forms.Platform.Android (Forwarders) reference to previous place * updated project guid to lower case * Fix typeface reset issue (#4019) * Use ViewCompat to set and get label for view (#3996) * Removing LineBreakMode support from WindowsResourcesProvider (#4024) * Repro test page for 3979 * Removes LineBreakMode support from WindowsResourcesProvider as it is inconsistent with other platforms and caused issues when setting Span style to the default Device Styles * [macOS] Fix NRE on Mojave when aligning the tile (#4086) fixes #3031 * [GTK] Add support for ClickGestureRecognizer (#3971) * [GTK] Add support for ClickGestureRecognizer * Add ClickGestureGalleryPage to test ClickGestureRecognizer * [iOS] Label TextColor has no effect with FormattedString (#4043) * https://github.com/xamarin/Xamarin.Forms/issues/4040 fix default font/color for formatted string * https://github.com/xamarin/Xamarin.Forms/pull/4043 fixed naming, added test case * Moved field and property to top - fixes #4040 * fix build, tentatively (#4117) * [Xaml] don't swallow exceptions from converters (#4100) Compiled converters are invoked, by reflection, at compile time. Any exception thrown there will be wrapped in a TargetInvocationException. When that happens, we still want to expose the inner XamlParseException to the user. - fixes #4099 * housekeeping ended with https://github.com/xamarin/Xamarin.Forms/pull/3999 (#4105) * Bump minimum Microsoft.NETCore.UniversalWindowsPlatform version to 6.0.12 (#4106) * [Tizen] Fix Window alpha update timing (#4119) * [UWP] fixed `MinimumDate` and `MaximumDate` properties of DatePicker (#3683) fixes #3331 * [WPF] Fixes `ControlTemplate` sizing issue (#2656) - fixes #2642 * Remove BOM from nuspec (#4128) * Navigation Page double Popped event Workaround (#3851) fixes #3509 * Navigation Page double Popped event Workaround * [UITest] Add UI Test * [Core] fix formatting * revert formatting fix * implemented workaround suggested by PureWeen * removed whitespace * moved ignorePopCall to a better location * [Enhancements] Toolbar a11y (#3974) fixes #1742 fixes #3795 * [Controls] Add automation id to icon * [iOS] Add AutomationId support to MDP tooggle button * [Android] Add support for AutomationId to ActionBarDrawerToggle and MasterDetailPage * [IOS] Refactor and add Accessibility to ToolbarItems * [iOS] Fix typos * [Android] Add accessibility to ToolbarItems * [UWP] Refactor A11y to extensions * [UWP] Set Accessibility properties on ToolbarItems * [UWP] Set accessibility to MDP button * [ControlGallery] Add accessibility toolbaritems to gallery * Comment test out * [iOS] Fix NRE when Control is being disposed * [UITests] Remove not used UITests file * Implementation of method ForceUpdateSize for Cell on macOS (#4104) * Implemented Cell ForceUpdateSize on macOS * Tab Styling * Prevent crash during setting NULL to element via interface method (#4179) - fixes #4178 - fixes #4146 * https://github.com/xamarin/Xamarin.Forms/issues/4076 fix (#4161) * [iOS] Rapidly clicking span (6 times at least) on UITest 3525 throws a null exception (#4109) * https://github.com/xamarin/Xamarin.Forms/issues/3930 fix * following convention * [Android] Fixes AutomationProperties.Name on Button (#4094) * [Android] Fixes AutomationProperties.Name on Button * [Android] Fixes for Switch control * UWP Toolbar dynamic overflow (#4022) * Adding Windows specific ToolbarDynamicOverflowEnabled configuration * Enabled ToolbarDynamicOverflowEnabled (pun intended) on page controls and renderers * Issue 3988 sample * Removed obsolete comment, cleaned up private and whitespace * Added toolbar dynamic overflow examples for master detail page and tabbed page - fixes #2057 - fixes #3988 * Add missing initial call to UpdateLineHeight; fixes #4136 (#4147) * Added UI test to B45027 (#4079) * Add UI test to B45027 * Changed execution of current UI test to Android platform * Added iOS UI test to B45027 * Refactored UI test execution * Fix https://github.com/xamarin/Xamarin.Forms/issues/3301 (#4164) - fixes #3301 * [UWP] fixes entering text into SearchBar with UI Tests (#4173) * [UWP] fixes entering text into SearchBar with UI Tests * [UWP] ITabStopOnDescendants - fixed selection when setting focus from Selenium * [UWP] Fix TitleView Width and MDP rendering quirks (#3987) * [UWP] Fix TitleView Width and MDP rendering quirks * [UWP] fix load timing for pushed pages and titleview * [UWP] move renderer check * [UWP] remove re-measure until 4116 fixed - fixes #3828 - fixes #3834 * [macOS] NRE in WebViewRenderer (#4188) fixes #4001 * https://github.com/xamarin/Xamarin.Forms/issues/4001 * fixed build * https://github.com/xamarin/Xamarin.Forms/issues/2831 fixes #2831 (#4111) * [msbuild] use portable pdb files (#4201) Currently, on the first build of a "Hello World" Xamarin.Forms app, you will see this in the build log: ConvertDebuggingFiles Parameters Files C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\FormsViewGroup.pdb C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.pdb OutputItems _ConvertedDebuggingFiles C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\FormsViewGroup.dll C:\Users\myuser\.nuget\packages\xamarin.forms\3.1.0.697729\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll The logging is a little weird here, but this `ConvertDebuggingFiles` MSBuild task takes about 100ms on my machine. What is it doing? The Mono debugger can support two types of debugging files: - `mdb` files - "portable" `pdb` files If Xamarin.Android's build finds a "non-portable" `pdb` file, we have to run it through this task to convert to an `mdb` file... This gives us proper stacktraces for `FormsViewGroup.dll` and `Xamarin.Forms.Platform.Android.dll`. You can change the type of debugging symbols in your project with the `DebugType` setting, which has these options: - Blank or `None`: don't generate symbols. (Although Xamarin.Android has funny behavior here, see: https://github.com/xamarin/xamarin-android/issues/2282) - `Full` generates an `mdb` file, this is a Windows-proprietary format for debug builds - `PdbOnly` generates a "non-portable" `pdb` file, a Windows-proprietary format for release builds - `Portable` generates a "portable" pdb file, which is the new standard that works for debug and release builds. New SDK-style MSBuild projects use this option by default. These values are not case sensitive, I have mostly seen them lower case in newer projects. So what does Xamarin.Forms need to do? Use `<DebugType>portable</DebugType>` in any Android class library or app project. Other platforms, this is optional, not as much benefit. I have heard that `DebugType=portable` might cause a problem on UWP. * Xamarin.Forms will ship "portable" `pdbs` in its NuGet package for `FormsViewGroup.dll` and `Xamarin.Forms.*.Android.dll`. Developers won't pay the 100ms on initial build. * Initial build times for `Xamarin.Forms.sln` will be slightly better for development, although I didn't measure the difference here. * [XamlC] fix the argument match check for events (#4134) Well, it looks like the order of arguments of InheritOrImplements was reversed... a totally fine and normal Friday so far - fixes #4130 * Add UI Test. Add instructions. Move to correct namespace (#4170) fixes #2251 * Add uitest for 2794 (#4110) fixes #2293 * Fix PropagateEvent value properly on Cells (#4191) * bump gitinfo * [Core, iOS, MacOS, Android, UWP, WPF] ListView hide scroll view scroll bars (#3897) fixes #3843 * Update from origin (#8) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Implemented for iOS, Android and MacOS * Implemented UAP and WPF * Refactored duplicate code and removed typo in method name * Update from origin (#9) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Ensure that the ListViewAdapter is no longer being used by the ListVi… (#3848) fixes #3603 * Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it * Remove `RemoveAllViews` from `Dispose` * Fixed code review comments * Removed obsolete convert method * Making sure default platform functionality is intact iOS and Android As er code review comments * Making sure default platform functionality is intact MacOS * Making sure default platform functionality is intact UWP and WPF * Code review comments for iOS, Android and MacOS Default platform value is now preserved and applied when setting is set to default * Code review comments UWP and WPF * Fix build * [UITest] - add ui test to test scroll permutations * [Uwp] fix bad merge * [wpf] fix spacing * Adding instructions and UI tests for Bugzilla44461 (#4144) * Adding instructions and UI tests for Bugzilla44461 * Update Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla44461.cs Co-Authored-By: mikescandy <michele.scandura@outlook.com> * Fix assert * [C] avoid AmbiguousMatchexception in Bindings (#4216) fixes #4215 if a type defines multiple op_implicit from the same type to different ones, trying to retrieve it with GetMethod() throws an AmbiguousMatchException. If this happens, we have to do the resolution ourself. - fixes #4215 * https://github.com/xamarin/Xamarin.Forms/issues/4076 fix (#4161) * [Enhancement] Possibility to change IsPassword for MacOS (#4175) fixes #2223 * https://github.com/xamarin/Xamarin.Forms/issues/2223 added possibility to change IsPassword for mac * added test case * [Core] Fix layout padding update issue (#4166) - Update PaddingPropertyChanged handler - Add UnitTest for Padding - Update ControlGallery - fixes #4165 * Bindable layouts (#4052) - fixes #1718 * [GTK] Do not show a label in gtk slider renderer (#4098) * Remove unnecessary ToArray to reduce number of BindableObject[] allocations (#4101) * [Mac] Fixes crash after changing main page (#4228) - fixes #4156 * Enforce clipping on fast renderer ImageRenderer when using AspectFill; fixes #4133 (#4218) - fixes #4133 * notify me of changes to XamlC * [MacOs] Image from file not getting searched in the bundle fixes #2322 (#4247) * [GTK] Fix several memory leaks in the GTK backend (#4112) * [GTK] Don't recreate master or detail if it didn't change * [GTK] Fix several memory leaks using the Destroy pattern Gtk objects must be disposed using the Destroy function that will automatically iterate over the children and destroy them too: https://developer.gnome.org/gtk2/stable/GtkWidget.html#gtk-widget-destroy The gtk-sharp bindings discourage the use of Dispose and don't even call the base class, leaving it without effect: https://github.com/mono/gtk-sharp/blob/gtk-sharp-2-12-branch/gtk/Object.custom#L98 In the Controls, that inherits directly from native Gtk objects, the overrides of the Dispose function are changed to override the Destroy function. In the Renderers, that inherit from VisualElementRenderer, the Destroy funtion is called in the dispose implementation so subclasses only have to override Dispose (bool disposing) as they do now. * [GTK] Don't recreate the toolbar on each change * [GTK] Fix leak connecting to the PropertyChanged event twice * [UWP] Fix ActivityIndicator width in absolutelayout (#3224) * [Core] Fix autosize elements in absolute layout * revert the Hasflag extension * - refactoring to the local UWP fix for Activity Indicator - fixes #1399 * [iOS] Fix issue where entry would emit a change notification without a user triggered change (#3433) * [iOS] Fix issue where entry would emit a change notification without a user triggered change * Add repro * [iOS] Change CALayer.Transform in MainThread (#4160) * fixes #1480 * Added test case * Update Xamarin.Forms.Platform.iOS/VisualElementTracker.cs Co-Authored-By: AndreiMisiukevich <andrei.misiukevich@gmail.com> * updated test case * Move GetNativeSize to PlatformServices, remove IPlatform (#4235) * [UnitTest] Remove UnitPlatform * Add Editor.IsTextPredictionEnabled property (#4023) * Add Editor.IsTextPredictionEnabled property * simplfy UpdateInputType logic * modify IsTextPredictionEnabledProperty BindingMode to Default * undo changes of commit 5db2456d * [UITests] update namespace for UI Tests - Fixes #3555 * ListView should convert item to string when ItemTemplate is not specified (#4016) * Convert item to string, when ListView has no ItemTemplate * ToStringValueConverter tests * Format value using parameter in ToStringValueConverter - fixes #3715 * Removed custom entitlements entry for iOS simulator builds (#4257) * [UITests] fix dismiss page crash (#4251) * ImageButton (#1974) * ImageButton Implementation * [Android] rename BorderBackgroundManager * [Android] copy AspectFill changes to ImageButton * [UITests] fix order of gallery pages to work with tests * [Android] Account for changing image region with border/shadows * [Android] check for api 18 and add setpadding call back in * [Android] throw exception instead of crash when image fails to load * Addressing issue comments and adding additional test cases to Issue demo - fixes #1724 * [C] Add Default value to OnIdiom (#4225) * [C] Add Default value to OnIdiom - fixes #4006 - closes #4025 * add test * xamarin/Xamarin.Forms/issues/2315 (#4190) fixes #2315 * [iOS] make button constructor public (#4313) * fix merge issues * Added UI test to B44338 (#4307) fixes #2379 * Move github files to .github dir (#4288) This change is completely non-functional, the files moved will function identically in the .github dir, but don't cruft up the root dir. * [GTK] Fix synchronization context fairness (#4237) GLib.Idle.Add enqueues functions in the main loop with the lowest priority, so while the UI is updating tasks will be queued in the main loop. Using Gtk.Application.Invoke they are interleaved with UI updates and handled with more fairness. * Implemented reporting index for all ListView EventArgs * Added back current ctors marked as obsolete * Fixed build, missing constructor for UAP * Changed obsolete description as per comments
2019-01-29 06:47:59 +03:00
CollectionViewSource _collectionViewSource;
[Core, iOS, MacOS, Android, UWP, WPF] ListView hide scroll view scroll bars (#3897) fixes #3843 * Update from origin (#8) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Implemented for iOS, Android and MacOS * Implemented UAP and WPF * Refactored duplicate code and removed typo in method name * Update from origin (#9) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Ensure that the ListViewAdapter is no longer being used by the ListVi… (#3848) fixes #3603 * Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it * Remove `RemoveAllViews` from `Dispose` * Fixed code review comments * Removed obsolete convert method * Making sure default platform functionality is intact iOS and Android As er code review comments * Making sure default platform functionality is intact MacOS * Making sure default platform functionality is intact UWP and WPF * Code review comments for iOS, Android and MacOS Default platform value is now preserved and applied when setting is set to default * Code review comments UWP and WPF * Fix build * [UITest] - add ui test to test scroll permutations * [Uwp] fix bad merge * [wpf] fix spacing
2018-10-25 11:32:22 +03:00
UwpScrollBarVisibility? _defaultHorizontalScrollVisibility;
UwpScrollBarVisibility? _defaultVerticalScrollVisibility;
2016-03-22 23:02:25 +03:00
protected WListView List { get; private set; }
protected class ListViewTransparent : WListView
{
public ListViewTransparent() : base() { }
// Container is not created when the item is null.
// To prevent this, base container preparationan receives an empty object.
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
=> base.PrepareContainerForItemOverride(element, item ?? new object());
}
2016-03-22 23:02:25 +03:00
protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
e.OldElement.ItemSelected -= OnElementItemSelected;
e.OldElement.ScrollToRequested -= OnElementScrollToRequested;
((ITemplatedItemsView<Cell>)e.OldElement).TemplatedItems.CollectionChanged -= OnCollectionChanged;
2019-08-28 23:49:20 +03:00
if (Control != null)
{
Control.Loaded -= ControlOnLoaded;
}
2016-03-22 23:02:25 +03:00
}
if (e.NewElement != null)
{
e.NewElement.ItemSelected += OnElementItemSelected;
e.NewElement.ScrollToRequested += OnElementScrollToRequested;
((ITemplatedItemsView<Cell>)e.NewElement).TemplatedItems.CollectionChanged += OnCollectionChanged;
2016-03-22 23:02:25 +03:00
if (List == null)
{
List = new ListViewTransparent
{
2016-03-22 23:02:25 +03:00
IsSynchronizedWithCurrentItem = false,
2020-05-19 03:56:25 +03:00
ItemTemplate = (global::Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["CellTemplate"],
HeaderTemplate = (global::Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
FooterTemplate = (global::Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
ItemContainerStyle = (global::Windows.UI.Xaml.Style)WApp.Current.Resources["FormsListViewItem"],
2016-03-22 23:02:25 +03:00
GroupStyleSelector = (GroupStyleSelector)WApp.Current.Resources["ListViewGroupSelector"]
};
List.SelectionChanged += OnControlSelectionChanged;
2016-03-22 23:02:25 +03:00
}
ReloadData();
2016-03-22 23:02:25 +03:00
UpdateGrouping();
UpdateHeader();
UpdateFooter();
UpdateSelectionMode();
UpdateWindowsSpecificSelectionMode();
2016-03-22 23:02:25 +03:00
ClearSizeEstimate();
[Core, iOS, MacOS, Android, UWP, WPF] ListView hide scroll view scroll bars (#3897) fixes #3843 * Update from origin (#8) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Implemented for iOS, Android and MacOS * Implemented UAP and WPF * Refactored duplicate code and removed typo in method name * Update from origin (#9) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Ensure that the ListViewAdapter is no longer being used by the ListVi… (#3848) fixes #3603 * Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it * Remove `RemoveAllViews` from `Dispose` * Fixed code review comments * Removed obsolete convert method * Making sure default platform functionality is intact iOS and Android As er code review comments * Making sure default platform functionality is intact MacOS * Making sure default platform functionality is intact UWP and WPF * Code review comments for iOS, Android and MacOS Default platform value is now preserved and applied when setting is set to default * Code review comments UWP and WPF * Fix build * [UITest] - add ui test to test scroll permutations * [Uwp] fix bad merge * [wpf] fix spacing
2018-10-25 11:32:22 +03:00
UpdateVerticalScrollBarVisibility();
UpdateHorizontalScrollBarVisibility();
2019-08-28 23:49:20 +03:00
if (Control != null)
{
Control.Loaded += ControlOnLoaded;
}
2016-03-22 23:02:25 +03:00
}
}
2019-08-28 23:49:20 +03:00
void ControlOnLoaded(object sender, RoutedEventArgs e)
{
var scrollViewer = GetScrollViewer();
scrollViewer?.RegisterPropertyChangedCallback(ScrollViewer.VerticalOffsetProperty, (o, dp) =>
{
var args = new ScrolledEventArgs(0, _scrollViewer.VerticalOffset);
Element?.SendScrolled(args);
});
}
bool IsObservableCollection(object source)
{
Fix-7167-UWP-ListViewRenderer-ScrollToTop-when-NotifyCollectionChangedAction.Reset (#7279) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - wrote uitest, formetted * - updated comments * - uitest are only being executed for UWP * - removed comments (PR feedback)
2019-11-28 11:12:23 +03:00
return source is INotifyCollectionChanged && source is IList;
}
void ReloadData()
{
Fix-7167-UWP-ListViewRenderer-ScrollToTop-when-NotifyCollectionChangedAction.Reset (#7279) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - wrote uitest, formetted * - updated comments * - uitest are only being executed for UWP * - removed comments (PR feedback)
2019-11-28 11:12:23 +03:00
var isStillTheSameUnderlyingItemsSource = _collection != null && object.ReferenceEquals(_collection, Element?.ItemsSource);
if (Element?.ItemsSource == null)
{
_collection = null;
}
else
{
_collectionIsWrapped = !IsObservableCollection(Element.ItemsSource);
Fix-7167-UWP-ListViewRenderer-ScrollToTop-when-NotifyCollectionChangedAction.Reset (#7279) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - wrote uitest, formetted * - updated comments * - uitest are only being executed for UWP * - removed comments (PR feedback)
2019-11-28 11:12:23 +03:00
if (_collectionIsWrapped)
{
_collection = new ObservableCollection<object>();
foreach (var item in Element.ItemsSource)
_collection.Add(item);
}
Fix-7167-UWP-ListViewRenderer-ScrollToTop-when-NotifyCollectionChangedAction.Reset (#7279) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - wrote uitest, formetted * - updated comments * - uitest are only being executed for UWP * - removed comments (PR feedback)
2019-11-28 11:12:23 +03:00
else if(!object.ReferenceEquals(_collection, Element.ItemsSource))
{
_collection = (IList)Element.ItemsSource;
}
}
Fix-7167-UWP-ListViewRenderer-ScrollToTop-when-NotifyCollectionChangedAction.Reset (#7279) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - created test view in control gallery for issue 7167 - wrote view, vm, and "ImprovedObservableCollection" for testing purpose - reproduced the bug without using any external nugets like "System.Reactive" - added onitemselected of listview to test itemselections - fixed by changing the implementation of Xamarin.Forms.Platform.UWP.ListViewRenderer.ReloadData - single commit which is useful for cherry picks - if itemsource and collectionviewsource.source (_collection) are the same the collectionviewsource is not being reinstantioated again - wrote ui test. * - changed controlgalery.projitems manually after cherrypick * - made testcase uitestable * - fixed uitesting exception * - made view, vm ui-testable - (TODO) modified uitest. (assert is missing) * - wrote uitest, formetted * - updated comments * - uitest are only being executed for UWP * - removed comments (PR feedback)
2019-11-28 11:12:23 +03:00
if (isStillTheSameUnderlyingItemsSource && _collectionViewSource != null)
return;
if (_collectionViewSource != null)
_collectionViewSource.Source = null;
_collectionViewSource = new CollectionViewSource
{
Source = _collection,
IsSourceGrouped = Element.IsGroupingEnabled
};
List.ItemsSource = _collectionViewSource.View;
}
void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (_collectionIsWrapped && _collection != null)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
if (e.NewStartingIndex < 0)
goto case NotifyCollectionChangedAction.Reset;
// if a NewStartingIndex that's too high is passed in just add the items.
// I realize this is enforcing bad behavior but prior to this synchronization
// code being added it wouldn't cause the app to crash whereas now it does
// so this code accounts for that in order to ensure smooth sailing for the user
if (e.NewStartingIndex >= _collection.Count)
{
for (int i = 0; i < e.NewItems.Count; i++)
_collection.Add((e.NewItems[i] as BindableObject).BindingContext);
}
else
{
for (int i = e.NewItems.Count - 1; i >= 0; i--)
_collection.Insert(e.NewStartingIndex, (e.NewItems[i] as BindableObject).BindingContext);
}
break;
case NotifyCollectionChangedAction.Remove:
for (int i = e.OldItems.Count - 1; i >= 0; i--)
_collection.RemoveAt(e.OldStartingIndex);
break;
case NotifyCollectionChangedAction.Move:
{
var collection = (ObservableCollection<object>)_collection;
for (var i = 0; i < e.OldItems.Count; i++)
{
var oldi = e.OldStartingIndex;
var newi = e.NewStartingIndex;
if (e.NewStartingIndex < e.OldStartingIndex)
{
oldi += i;
newi += i;
}
collection.Move(oldi, newi);
}
}
break;
case NotifyCollectionChangedAction.Replace:
{
var collection = (ObservableCollection<object>)_collection;
var newi = e.NewStartingIndex;
for (var i = 0; i < e.NewItems.Count; i++)
{
newi += i;
collection[newi] = (e.NewItems[i] as BindableObject).BindingContext;
}
}
break;
case NotifyCollectionChangedAction.Reset:
default:
ClearSizeEstimate();
ReloadData();
break;
}
}
else if (e.Action == NotifyCollectionChangedAction.Reset)
{
ClearSizeEstimate();
ReloadData();
}
2018-04-13 22:35:25 +03:00
[UWP] Multi-window (#2432) * Changes to support multiple windows on UWP * Locker on Layout.cs to prevent concurrency * Changes on UnitTests to work with multi-window * implemented Xamarin.Forms.Core and UAP Element.Dispatcher * Implementation on each platform * Implementation on each platform * Improved Element casting for Dispatcher utilization * Correction of the items presented in the code review * Control Gallery for Multiple Window and Code Review * [UnitTests]Add missing file * Correction for Unit Tests * Correction for Unit Tests * Correction for Unit Tests - Removed ThreadStatic in Ticker * removed thread static * removed thread static into application class * Update Control Gallery * Code Review (Changes) * Comment * Adjust StackOverflow when close the app * Performace improvements * - fix merge and ui test performance * Name of method and adjust on NavigationProxy * Adjustments in the implementation of the DispatcherManager * Updated the ListProxy method and adjust the initialization of dispacther on page. * Remove GetDispacther method from IPlatformServices and some adjusments of code review. * Adjust after merge on NavigationProxy * Register IDispatcherProvider on Xamarin.Forms.Core.UnitTests * Adjustments for correct unit tests operation * Adjustments for correct unit tests operation * remove spaces * Adjust for UITests * Remove IsInvokeRequired and adjusted de instance of s_resolutionList * Remove lock() on ResolveLayoutChanges method * Make IDispatcher implementations internal * Removed Dispatcher association from Element and Page class. Removed Child Assignment in Element Class and ThreadStatic Removal from NavigationProxy Property * Remove DispatcherManager; contain thread static to UWP implementation * Make dispatcher lazy * MockDispatcherProvider on Xaml.UnitTests * Add mock Dispatcher and DispatcherProvider for XAML unit tests * Revert "Add mock Dispatcher and DispatcherProvider for XAML unit tests" This reverts commit 134320d348a3812e44507ae0b50459c8f43478e9. * Add MockDispactcherProvider on Pager.UnitTests * Revert covariance change * Centralize dispatcher checking logic * Add a fallback dispatcher for platforms without a registered DispatcherProvider * Remove Dispatcher/DispatcherProvider from project * Allow UI test pages which use ListProxy to get a dispatcher in UITest mode * Prevent crash instantiating UITest version of Issue2004 * Removed unnecessary old codes * Clean up whitespace changes * Remove unused method
2019-08-15 20:36:38 +03:00
if (Element.Dispatcher == null)
Device.BeginInvokeOnMainThread(() => List?.UpdateLayout());
else
Element.Dispatcher.BeginInvokeOnMainThread(() => List?.UpdateLayout());
}
2016-03-22 23:02:25 +03:00
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == ListView.IsGroupingEnabledProperty.PropertyName)
{
UpdateGrouping();
}
2018-02-02 13:39:37 +03:00
else if (e.PropertyName == ListView.HeaderProperty.PropertyName || e.PropertyName == "HeaderElement")
2016-03-22 23:02:25 +03:00
{
UpdateHeader();
}
2018-02-02 13:39:37 +03:00
else if (e.PropertyName == ListView.FooterProperty.PropertyName || e.PropertyName == "FooterElement")
2016-03-22 23:02:25 +03:00
{
UpdateFooter();
}
else if (e.PropertyName == ListView.RowHeightProperty.PropertyName)
{
ClearSizeEstimate();
}
else if (e.PropertyName == ListView.HasUnevenRowsProperty.PropertyName)
{
ClearSizeEstimate();
}
else if (e.PropertyName == ListView.ItemTemplateProperty.PropertyName)
{
ClearSizeEstimate();
}
2019-05-01 18:03:30 +03:00
else if (e.PropertyName == ListView.SelectionModeProperty.PropertyName)
{
UpdateSelectionMode();
}
else if (e.PropertyName == Specifics.SelectionModeProperty.PropertyName)
{
UpdateWindowsSpecificSelectionMode();
}
[Core, iOS, MacOS, Android, UWP, WPF] ListView hide scroll view scroll bars (#3897) fixes #3843 * Update from origin (#8) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Implemented for iOS, Android and MacOS * Implemented UAP and WPF * Refactored duplicate code and removed typo in method name * Update from origin (#9) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Ensure that the ListViewAdapter is no longer being used by the ListVi… (#3848) fixes #3603 * Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it * Remove `RemoveAllViews` from `Dispose` * Fixed code review comments * Removed obsolete convert method * Making sure default platform functionality is intact iOS and Android As er code review comments * Making sure default platform functionality is intact MacOS * Making sure default platform functionality is intact UWP and WPF * Code review comments for iOS, Android and MacOS Default platform value is now preserved and applied when setting is set to default * Code review comments UWP and WPF * Fix build * [UITest] - add ui test to test scroll permutations * [Uwp] fix bad merge * [wpf] fix spacing
2018-10-25 11:32:22 +03:00
else if (e.PropertyName == ListView.VerticalScrollBarVisibilityProperty.PropertyName)
{
UpdateVerticalScrollBarVisibility();
}
else if (e.PropertyName == ListView.HorizontalScrollBarVisibilityProperty.PropertyName)
{
UpdateHorizontalScrollBarVisibility();
}
2016-03-22 23:02:25 +03:00
}
protected override void Dispose(bool disposing)
{
if (_disposed)
2016-03-22 23:02:25 +03:00
{
return;
}
_disposed = true;
if (disposing)
{
if (List != null)
{
2018-04-30 19:46:03 +03:00
foreach (ViewToRendererConverter.WrapperControl wrapperControl in FindDescendants<ViewToRendererConverter.WrapperControl>(List))
{
wrapperControl.CleanUp();
}
if (_subscribedToTapped)
{
_subscribedToTapped = false;
List.Tapped -= ListOnTapped;
}
if (_subscribedToItemClick)
{
_subscribedToItemClick = false;
List.ItemClick -= OnListItemClicked;
}
List.SelectionChanged -= OnControlSelectionChanged;
if (_collectionViewSource != null)
_collectionViewSource.Source = null;
List.DataContext = null;
// Leaving this here as a warning because setting this to null causes
// an AccessViolationException if you run Issue1975
// List.ItemsSource = null;
List = null;
}
if (_zoom != null)
{
_zoom.ViewChangeCompleted -= OnViewChangeCompleted;
_zoom = null;
}
2016-03-22 23:02:25 +03:00
}
base.Dispose(disposing);
}
static IEnumerable<T> FindDescendants<T>(DependencyObject dobj) where T : DependencyObject
{
int count = VisualTreeHelper.GetChildrenCount(dobj);
for (var i = 0; i < count; i++)
{
DependencyObject element = VisualTreeHelper.GetChild(dobj, i);
if (element is T)
yield return (T)element;
foreach (T descendant in FindDescendants<T>(element))
yield return descendant;
}
}
sealed class BrushedElement
{
public BrushedElement(FrameworkElement element, WBinding brushBinding = null, Brush brush = null)
{
Element = element;
BrushBinding = brushBinding;
Brush = brush;
}
public Brush Brush { get; }
public WBinding BrushBinding { get; }
public FrameworkElement Element { get; }
public bool IsBound
{
get { return BrushBinding != null; }
}
}
SemanticZoom _zoom;
ScrollViewer _scrollViewer;
ContentControl _headerControl;
readonly List<BrushedElement> _highlightedElements = new List<BrushedElement>();
void ClearSizeEstimate()
{
Element.ClearValue(CellControl.MeasuredEstimateProperty);
}
void UpdateFooter()
{
List.Footer = Element.FooterElement;
2016-03-22 23:02:25 +03:00
}
void UpdateHeader()
{
List.Header = Element.HeaderElement;
2016-03-22 23:02:25 +03:00
}
void UpdateGrouping()
{
bool grouping = Element.IsGroupingEnabled;
if (_collectionViewSource != null)
_collectionViewSource.IsSourceGrouped = grouping;
2016-03-22 23:02:25 +03:00
var templatedItems = TemplatedItemsView.TemplatedItems;
if (grouping && templatedItems.ShortNames != null)
2016-03-22 23:02:25 +03:00
{
if (_zoom == null)
{
ScrollViewer.SetIsVerticalScrollChainingEnabled(List, false);
2020-05-19 03:56:25 +03:00
var grid = new GridView { ItemsSource = templatedItems.ShortNames, Style = (global::Windows.UI.Xaml.Style)WApp.Current.Resources["JumpListGrid"] };
2016-03-22 23:02:25 +03:00
ScrollViewer.SetIsHorizontalScrollChainingEnabled(grid, false);
_zoom = new SemanticZoom { IsZoomOutButtonEnabled = false, ZoomedOutView = grid };
// Since we reuse our ScrollTo, we have to wait until the change completes or ChangeView has odd behavior.
_zoom.ViewChangeCompleted += OnViewChangeCompleted;
// Specific order to let SNC unparent the ListView for us
SetNativeControl(_zoom);
_zoom.ZoomedInView = List;
}
else
{
_zoom.CanChangeViews = true;
}
}
else
{
if (_zoom != null)
_zoom.CanChangeViews = false;
else if (List != Control)
SetNativeControl(List);
}
}
void UpdateSelectionMode()
{
if (Element.SelectionMode == ListViewSelectionMode.None)
{
2020-05-19 03:56:25 +03:00
List.SelectionMode = global::Windows.UI.Xaml.Controls.ListViewSelectionMode.None;
List.SelectedIndex = -1;
Element.SelectedItem = null;
}
else if (Element.SelectionMode == ListViewSelectionMode.Single)
{
2020-05-19 03:56:25 +03:00
List.SelectionMode = global::Windows.UI.Xaml.Controls.ListViewSelectionMode.Single;
// UWP seems to reset the selected item when SelectionMode is set, make sure our items stays selected by doing this call
if (Element.SelectedItem != null)
OnElementItemSelected(null, new SelectedItemChangedEventArgs(Element.SelectedItem, TemplatedItemsView.TemplatedItems.GetGlobalIndexOfItem(Element.SelectedItem)));
}
}
void UpdateWindowsSpecificSelectionMode()
{
if (Element.OnThisPlatform().GetSelectionMode() == PlatformConfiguration.WindowsSpecific.ListViewSelectionMode.Accessible)
{
// Using Tapped will disable the ability to use the Enter key
List.IsItemClickEnabled = true;
if (!_subscribedToItemClick)
{
_subscribedToItemClick = true;
List.ItemClick += OnListItemClicked;
}
if (_subscribedToTapped)
{
_subscribedToTapped = false;
List.Tapped -= ListOnTapped;
}
}
else
{
// In order to support tapping on elements within a list item, we handle
// ListView.Tapped (which can be handled by child elements in the list items
// and prevented from bubbling up) rather than ListView.ItemClick
if (!_subscribedToTapped)
{
_subscribedToTapped = true;
List.Tapped += ListOnTapped;
}
List.IsItemClickEnabled = false;
if (_subscribedToItemClick)
{
_subscribedToItemClick = false;
List.ItemClick -= OnListItemClicked;
}
}
}
[Core, iOS, MacOS, Android, UWP, WPF] ListView hide scroll view scroll bars (#3897) fixes #3843 * Update from origin (#8) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Implemented for iOS, Android and MacOS * Implemented UAP and WPF * Refactored duplicate code and removed typo in method name * Update from origin (#9) * [C] VisibilityConverter Trims input (#3581) For CSS purposes, the VisibilityConverter was added, and actually replaced the `Boolean.Parse(str)` call for parsing Visibility. `Boolean.Parse()` trims input, and the converter was not, so this was a regression. This changes Trim() the input, to be fully backward compatible. - fixes #3554 * Ensure ConstructorCountId and TimeId elements are available before querying them (#3588) * For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589) This would allow previewer/designer/reloader to determine the source of a stylesheet and refresh its content when appropriate. * Revert "For consistency with ResourceDictionary, expose the Source for a StyleSheet (#2589)" This reverts commit f66a72de5b475a6a8387a80e418997b38dc40d4c. * Fix NRE; Ret 0 if Text null (#3594) fixes #3579 * [UWP, WPF] Fixes rendering of the main page (#2896) fixes #2704 * [Core] Ignore Shamehat target when running DesignTimeBuild (#3605) * [XamlC] Fix binding compilation fo value types (#3551) properly load valuetype arguments of generated setters, using ldarg, instead of ldarga. - fixes #3539 * Update PULL_REQUEST_TEMPLATE.md * Update PULL_REQUEST_TEMPLATE.md * [Android] Fix Label LineHeight (#3452) * fix line height android * Make UAP respect initial LineHeight * update .create-nuget.bat (#3638) * Add Null Check to GetRenderer (#3575) - fix #3563 * Fix 3562 Null Reference Exception (#3576) - fixes #3562 * Fix 3564 Null Reference Exception (#3578) - fixes #3564 * [iOS] AutomationProperty support for cells (#3313) fixes #3296 * [iOS] AutomationProperty support for cells * Add test case to AutomationProperties gallery * [UWP] Fix crash app when create navigation/tabbed page without children pages fixes #3188 (#3514) * [Android] Use height when determining ScaledScreenSize; fixes #3609 (#3641) * [C] Set binding context on Span Gestures (#3639) * [Core] Set binding context on Span Gestures * [Core] Simplify loop setting child binding context - fixes #3524 * Update PULL_REQUEST_TEMPLATE.md * [Android] remove deprecated AndroidUseLatestPlatformSdk (#3672) * [iOS] iPad ActionSheet should always have a Cancel method (#3636) * Add repro for #3049 * [iOS] iPad ActionSheet should always have a Cancel method fixes #3049 * [Android] fixes #3675 - set initial ScrollView Scroll values when RTL (#3676) * [Android] API check for Shadow properties on Button (#3617) fixes #2702 * [Android] API check for Shadow properties on Button * Fix swapped shadow values * [iOS] fixes #3525 - add epsilon for float compare (#3654) * [iOS] fixes #3525 - add epsilon for float compare and make region immutable * [ControlGallery] spread out spans to account for click slop * [ControlGallery] - adjust span slightly for android test * [Core] remove private * Fix text wrapping (#3671) fixes #3634 * [GTK] Fix navigation bar visibility updates (#3651) * Fix partially #3585 (#3592) * Make webkit-sharp.dll.config cross-platform * Update webkit-sharp.dll with missing signals bindings see: https://github.com/ylatuya/webkit-sharp/tree/fluendo * [iOS, UWP] fixes #2894 - Gestures collection changes weren't correctly propagating (#3643) * [iOS, UWP] fixes #2894 - Gestures weren't wiring up to spans in all cases * [Core] remove ChildGestureRecognizers when spans get removed * [iOS] removed incorrect return from null * Fixes #3663 (#3684) * Fix ScrollView Padding issue (#3685) * [WPF] Memory leak when you pop a TabbedPage (#3372) fixes #3267 * Fix [WPF] Memory leak when you pop a TabbedPage * Update ViewRenderer.cs * Update ViewRenderer.cs * [Android,iOS,UWP] Allow Entry CursorPosition/SelectionLength to be set in ctor (#3402) fixes #3343 fixes #3633 * Add repro for #3343 + unit tests * [Core] Disallow negative values for CursorPosition/SelectionLength * [All] CursorPosition/SelectionLength can bindin ctor & clear value fixes #3343 * typo * cleanup * [iOS] Cursor snaps to end * try/catch * [CSS] add more properties (#3466) map new CSS properties: - `color` on `IColorElement` (`ActivityIndicator`, `BoxView`), `ProgressBar` and `Switch` - `row-gap` and `column-gap` on `Grid` - `transform` and `transform-origin` on `VisualElement` - `vertical-align` on `Label` add new XF-specific CSS properties - `-xf-placeholder` and `-xf-placeholder-color` on `Editor`, `Entry`, `SearchBar` - `-xf-max-length` on `InputView` (`Editor` and `Entry`) - `-xf-bar-background-color` and `-xf-bar-text-color` on `NavigationPage` and `TabbedPage` - `-xf-orientation` on `ScrollView` and `StackLayout` - `-xf-horizontal-scroll-bar-visibility` and `-xf-vertical-scroll-bar-visibility` on `ScrollView` - `-xf-min-track-color`, `-xf-max-track-color` and `("-xf-thumb-color` on `Slider` - `-xf-spacing` on `StackLayout` This PR replaces and closes #3276 - fixes #2891 * [iOS] Specify a default size for UISearchBar width if needed (#3635) fixes #3413 fixes #2139 * [Controls] Add reproduction and test case for issue #3413 * [iOS] Don't use max value for iOS UISearchbar breaks on iOS 11.3 * [iOS] Force width value so we can renderer UISearchBar on iOS10 with infinite width * [Controls] Fix spelling and add Manual Review to the test of #3413 * [iOS] Simplify code for UISearchBar width * [iOS] Return always some width from measure the UISearchBar on IOS * [Controls] Add reproduction case for issue #2139 * [UWP] Fixed double set margins in Layouts (#3570) fixes #3398 fixes #3616 * [Android] Support multiple clipping settings in single layout (#3559) * Repro * Fix for API 18+ * [iOS] Unsubscribe CellPropertyChanged when SwitchCellRenderer is disposed (#3518) * [Controls] Add repo of issue #3408 * [iOS] Unsubscribe CellPropertyChanged when cell is disposed * [Controls] Add issue to project * [iOS] Introduce CellPropertyChange to CellTableViewCell to used by all other cell renderers * [Controls] Simplify Issue * [iOS] Remove PropertyChanged that was not used * [Controls] add check for null binding on template, add notes about issues * [Controls] added reference to Android crash * [iOS]Use existing PropertyChanged on ViewCelRenderer * [iOS] Keep the existing override so we don't break users * Update TextCellRenderer.cs * update submodule * 24H Mode (#3701) The 24h mode for the pickerdialog was not working. Version 3.1 was working fine. Here is an updated file. * [UWP] uncomment tests that are now passing for 3188 (#3723) * [UITest] Update Xamarin.UITest nuget package (#3632) * [UITests] Update Xamarin.UITest 2.2.5 * [UITests] Try fix Toolbaritems * [UITest] Update to 2.2.5-1606 * [UITests] Small Fixes and workarounds to make uitest happy * [UITests ] Add delay to 1733 for API28 * [Android] Revert bad merge (#3746) fixes #3705 * [Android, iOS] Fixes layout compression causes (#3698) fixes #3624 * [Android, iOS] Fixes layout compression causes * [iOS] improve UpdateNewElement method * Fix build error hopefully * [UWP] Fixes CollectionChanged events in ListView (#3323) * fixes #3273 * [UWP] Fixes CollectionChanged events in ListView * a wrapped collection is used only if the SourceItem is not ObservableCollection * improve uitest * fixed NRE in empty ListView * added a sortable custom renderer for UItest * minor refactoring * fixed reset of not wrapped collections * addressing comments * [UWP] remove WinRT hack * [UWP] add missing using and cleanup additional resources * [Android] Update Forms to remove API28 deprecated API (#3653) fixes #2128 fixes #3629 * [Build] Update provisioning * [Controls] Ignore deprecated Android API usage * [Android] Remove use of obsolete color usage * [Android] Remove app fragment usage * [android] Rollback changes to EntryCellRenderer * [Android] Better way to get the default color for the label text * [Android] Obsolete message for ContentPage.CreateFragment() * [ControlGallery] - create bitmap from Drawable to use for pixel location * [Android] Use textcolor resource * Update submodule * Fix tests (#3771) * [ControlGallery] Wait for element and add timing to tests * [iOS] Fix NRE on RenderPool * Add TabStop/TabIndex (#2795) * [Core, UWP, Android] support TabStop/TabIndex * removing linq * add iOS / MacOS implementation * add WPF implementation fixes UWP implementation * - addressing comments - improve test - optimizations - added previous tab direction in same tab group * addressing comments * [Android] support tabstop for pickers * - moving shared code to a static class - removed reflection * ITabStop -> changed to internal, renamed, added in to fastRenderers * Update ITabStop to be public * Fix : Binding Icon in ToolbarItem in TabbedPage doesn't refresh (#3761) fixes #3756 * [iOS] Fix NRE on ContextCell (#3714) fixes #3275 * [Controls] Add repo for issue #3275 * [iOS] Fix NRE when no gestures exist on table * [iOS] Null check outside loop * [iOS]Make sure to dispose/unhook when we are removed from UITableView. * Update submodule * [iOS] Don't double dispose ContextActionCell * WPF - Fix Width and Height measurement when GetDesiredSize (#3750) * WPF - Reset Width and Height when GetDesiredSize * Some formatting changes * Add APP directive * [WPF]Fix build * [Android Maps] Make markers available to subclasses (#3751) * Make markers available to subclasses * Fix build * Use Find instead of FirstOrDefault * [UITests] wait for element before querying for it (#3791) * [UITests] wait for element before querying for it * [Controls] generalize and better represent intended behavior * WPF - Fix Local store not persistant when restarting App (#3752) -fixes #3541 * WPF - Fix Local store not persistant when restarting App * Add UITest * [Controls] Add automated UI Test * [UITests] Isolate test 3408 * [UITest] Update Xamarin UITest packages * [UWP] implement Replace without reloading ListView (#3792) -fixes #3788 * [UWP] implement Replace without reloading ListView * [UWP] extract bindingcontext of new item for replace * [iOS] Use UIApperance default color for UISwitch (#3819) * [Controls] Set default color of UISwitch to Red * [iOS] Use default color from Apperance API * [UITests] replace awaits with more reliable WaitForElement (#3835) * [Core] Propagate BindingContext changes to TitleView (#3823) * [Core] Propagate BindingContext changes to TitleView * [Tests] Move UI test to Core Unit Test * [A] do not draw gradient for empty CornerRadius (#3786) Drawing CornerRadius (introduce by #1998) when the CornerRadii are actually 0 causes scaling artifacts on API < 25. This fixes the regression when no CornerRadius is set. Expect blurry border scaling with CornerRadius not empty and API < 25 - fixes #3781 * [Android] Fix WebView.Navigating event, make WebViewClient inheritable (#3780) * Extracted WebViewRenderer.WebClient to FormsWebViewClient, moved SendNavigating call from ShouldOverrideUrlLoading to OnPageStarted * Changed _webViewClient and GetWebViewClient() method to return base class * Changed public things to protected internal * Fix spaces to tabs indentation to match the coding style (#3745) * [Build] Fix merge * Fix #3097 swipe gesture not being handled in VisualElementTracker. (#3098) Fixes #3097 * Ensure that the ListViewAdapter is no longer being used by the ListVi… (#3848) fixes #3603 * Ensure that the ListViewAdapter is no longer being used by the ListView before disposing it * Remove `RemoveAllViews` from `Dispose` * Fixed code review comments * Removed obsolete convert method * Making sure default platform functionality is intact iOS and Android As er code review comments * Making sure default platform functionality is intact MacOS * Making sure default platform functionality is intact UWP and WPF * Code review comments for iOS, Android and MacOS Default platform value is now preserved and applied when setting is set to default * Code review comments UWP and WPF * Fix build * [UITest] - add ui test to test scroll permutations * [Uwp] fix bad merge * [wpf] fix spacing
2018-10-25 11:32:22 +03:00
void UpdateVerticalScrollBarVisibility()
{
if (_defaultVerticalScrollVisibility == null)
_defaultVerticalScrollVisibility = ScrollViewer.GetVerticalScrollBarVisibility(Control);
switch (Element.VerticalScrollBarVisibility)
{
case (ScrollBarVisibility.Always):
ScrollViewer.SetVerticalScrollBarVisibility(Control, UwpScrollBarVisibility.Visible);
break;
case (ScrollBarVisibility.Never):
ScrollViewer.SetVerticalScrollBarVisibility(Control, UwpScrollBarVisibility.Hidden);
break;
case (ScrollBarVisibility.Default):
ScrollViewer.SetVerticalScrollBarVisibility(Control, (UwpScrollBarVisibility)_defaultVerticalScrollVisibility);
break;
}
}
void UpdateHorizontalScrollBarVisibility()
{
if (_defaultHorizontalScrollVisibility == null)
_defaultHorizontalScrollVisibility = ScrollViewer.GetHorizontalScrollBarVisibility(Control);
switch (Element.HorizontalScrollBarVisibility)
{
case (ScrollBarVisibility.Always):
ScrollViewer.SetHorizontalScrollBarVisibility(Control, UwpScrollBarVisibility.Visible);
break;
case (ScrollBarVisibility.Never):
ScrollViewer.SetHorizontalScrollBarVisibility(Control, UwpScrollBarVisibility.Hidden);
break;
case (ScrollBarVisibility.Default):
ScrollViewer.SetHorizontalScrollBarVisibility(Control, (UwpScrollBarVisibility)_defaultHorizontalScrollVisibility);
break;
}
}
2016-03-22 23:02:25 +03:00
async void OnViewChangeCompleted(object sender, SemanticZoomViewChangedEventArgs e)
{
if (e.IsSourceZoomedInView)
return;
// HACK: Technically more than one short name could be the same, this will potentially find the wrong one in that case
var item = (string)e.SourceItem.Item;
var templatedItems = TemplatedItemsView.TemplatedItems;
int index = templatedItems.ShortNames.IndexOf(item);
2016-03-22 23:02:25 +03:00
if (index == -1)
return;
var til = templatedItems.GetGroup(index);
2016-03-22 23:02:25 +03:00
if (til.Count == 0)
return; // FIXME
// Delay until after the SemanticZoom change _actually_ finishes, fixes tons of odd issues on Phone w/ virtualization.
if (Device.Idiom == TargetIdiom.Phone)
await Task.Delay(1);
IListProxy listProxy = til.ListProxy;
ScrollTo(listProxy.ProxiedEnumerable, listProxy[0], ScrollToPosition.Start, true, true);
2016-03-22 23:02:25 +03:00
}
bool ScrollToItemWithAnimation(ScrollViewer viewer, object item)
{
2020-05-19 03:56:25 +03:00
var selectorItem = List.ContainerFromItem(item) as global::Windows.UI.Xaml.Controls.Primitives.SelectorItem;
var transform = selectorItem?.TransformToVisual(viewer.Content as UIElement);
2020-05-19 03:56:25 +03:00
var position = transform?.TransformPoint(new global::Windows.Foundation.Point(0, 0));
if (!position.HasValue)
return false;
// scroll with animation
viewer.ChangeView(position.Value.X, position.Value.Y, null);
return true;
}
2016-04-12 22:30:27 +03:00
#pragma warning disable 1998 // considered for removal
2016-03-22 23:02:25 +03:00
async void ScrollTo(object group, object item, ScrollToPosition toPosition, bool shouldAnimate, bool includeGroup = false, bool previouslyFailed = false)
2016-04-12 22:30:27 +03:00
#pragma warning restore 1998
2016-03-22 23:02:25 +03:00
{
ScrollViewer viewer = GetScrollViewer();
if (viewer == null)
{
RoutedEventHandler loadedHandler = null;
2018-04-30 19:46:03 +03:00
loadedHandler = async (o, e) =>
2016-03-22 23:02:25 +03:00
{
List.Loaded -= loadedHandler;
// Here we try to avoid an exception, see explanation at bottom
await Dispatcher.RunIdleAsync(args => { ScrollTo(group, item, toPosition, shouldAnimate, includeGroup); });
};
List.Loaded += loadedHandler;
return;
}
var templatedItems = TemplatedItemsView.TemplatedItems;
Tuple<int, int> location = templatedItems.GetGroupAndIndexOfItem(group, item);
2016-03-22 23:02:25 +03:00
if (location.Item1 == -1 || location.Item2 == -1)
return;
object[] t = templatedItems.GetGroup(location.Item1).ItemsSource.Cast<object>().ToArray();
2016-03-22 23:02:25 +03:00
object c = t[location.Item2];
// scroll to desired item with animation
if (shouldAnimate && ScrollToItemWithAnimation(viewer, c))
return;
2016-03-22 23:02:25 +03:00
double viewportHeight = viewer.ViewportHeight;
var semanticLocation = new SemanticZoomLocation { Item = c };
// async scrolling
2020-05-19 03:56:25 +03:00
await Dispatcher.RunAsync(global::Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
2016-03-22 23:02:25 +03:00
{
switch (toPosition)
{
case ScrollToPosition.Start:
{
2016-03-22 23:02:25 +03:00
List.ScrollIntoView(c, ScrollIntoViewAlignment.Leading);
return;
}
2016-03-22 23:02:25 +03:00
case ScrollToPosition.MakeVisible:
{
List.ScrollIntoView(c, ScrollIntoViewAlignment.Default);
return;
}
2016-03-22 23:02:25 +03:00
case ScrollToPosition.End:
case ScrollToPosition.Center:
{
var content = (FrameworkElement)List.ItemTemplate.LoadContent();
content.DataContext = c;
2020-05-19 03:56:25 +03:00
content.Measure(new global::Windows.Foundation.Size(viewer.ActualWidth, double.PositiveInfinity));
2016-03-22 23:02:25 +03:00
double tHeight = content.DesiredSize.Height;
2016-03-22 23:02:25 +03:00
if (toPosition == ScrollToPosition.Center)
semanticLocation.Bounds = new Rect(0, viewportHeight / 2 - tHeight / 2, 0, 0);
else
semanticLocation.Bounds = new Rect(0, viewportHeight - tHeight, 0, 0);
break;
}
}
});
2016-03-22 23:02:25 +03:00
// Waiting for loaded doesn't seem to be enough anymore; the ScrollViewer does not appear until after Loaded.
// Even if the ScrollViewer is present, an invoke at low priority fails (E_FAIL) presumably because the items are
// still loading. An invoke at idle sometimes work, but isn't reliable enough, so we'll just have to commit
// treason and use a blanket catch for the E_FAIL and try again.
try
{
List.MakeVisible(semanticLocation);
}
catch (Exception)
{
if (previouslyFailed)
return;
Task.Delay(1).ContinueWith(ct => { ScrollTo(group, item, toPosition, shouldAnimate, includeGroup, true); }, TaskScheduler.FromCurrentSynchronizationContext()).WatchForError();
}
}
void OnElementScrollToRequested(object sender, ScrollToRequestedEventArgs e)
{
var scrollArgs = (ITemplatedItemsListScrollToRequestedEventArgs)e;
ScrollTo(scrollArgs.Group, scrollArgs.Item, e.Position, e.ShouldAnimate);
2016-03-22 23:02:25 +03:00
}
T GetFirstDescendant<T>(DependencyObject element) where T : FrameworkElement
{
int count = VisualTreeHelper.GetChildrenCount(element);
for (var i = 0; i < count; i++)
{
DependencyObject child = VisualTreeHelper.GetChild(element, i);
T target = child as T ?? GetFirstDescendant<T>(child);
if (target != null)
return target;
}
return null;
}
ContentControl GetHeaderControl()
{
if (_headerControl == null)
{
ScrollViewer viewer = GetScrollViewer();
if (viewer == null)
return null;
var presenter = GetFirstDescendant<ItemsPresenter>(viewer);
if (presenter == null)
return null;
_headerControl = GetFirstDescendant<ContentControl>(presenter);
}
return _headerControl;
}
ScrollViewer GetScrollViewer()
{
if (_scrollViewer == null)
{
_scrollViewer = List.GetFirstDescendant<ScrollViewer>();
}
return _scrollViewer;
}
void ListOnTapped(object sender, TappedRoutedEventArgs args)
{
var orig = args.OriginalSource as DependencyObject;
int index = -1;
// Work our way up the tree until we find the actual list item
// the user tapped on
while (orig != null && orig != List)
{
var lv = orig as ListViewItem;
if (lv != null)
{
index = TemplatedItemsView.TemplatedItems.GetGlobalIndexOfItem(lv.Content);
break;
}
orig = VisualTreeHelper.GetParent(orig);
}
if (index > -1)
{
OnListItemClicked(index);
}
}
2016-03-22 23:02:25 +03:00
void OnElementItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (Element == null)
return;
if (_deferSelection)
{
// If we get more than one of these, that's okay; we only want the latest one
_deferredSelectedItemChangedEvent = new Tuple<object, SelectedItemChangedEventArgs>(sender, e);
return;
}
if (e.SelectedItem == null)
{
List.SelectedIndex = -1;
return;
}
var templatedItems = TemplatedItemsView.TemplatedItems;
2016-03-22 23:02:25 +03:00
var index = 0;
if (Element.IsGroupingEnabled)
{
int selectedItemIndex = templatedItems.GetGlobalIndexOfItem(e.SelectedItem);
2016-03-22 23:02:25 +03:00
var leftOver = 0;
int groupIndex = templatedItems.GetGroupIndexFromGlobal(selectedItemIndex, out leftOver);
2016-03-22 23:02:25 +03:00
index = selectedItemIndex - (groupIndex + 1);
}
else
{
index = templatedItems.GetGlobalIndexOfItem(e.SelectedItem);
2016-03-22 23:02:25 +03:00
}
List.SelectedIndex = index;
}
void OnListItemClicked(int index)
2016-03-22 23:02:25 +03:00
{
Element.NotifyRowTapped(index);
_itemWasClicked = true;
2016-03-22 23:02:25 +03:00
}
void OnListItemClicked(object sender, ItemClickEventArgs e)
{
if (e.ClickedItem != null && TemplatedItemsView?.TemplatedItems != null)
{
var templatedItems = TemplatedItemsView.TemplatedItems;
var selectedItemIndex = templatedItems.GetGlobalIndexOfItem(e.ClickedItem);
2018-04-30 19:46:03 +03:00
OnListItemClicked(selectedItemIndex);
}
}
void OnControlSelectionChanged(object sender, WSelectionChangedEventArgs e)
2016-03-22 23:02:25 +03:00
{
bool areEqual = false;
2019-11-24 21:16:20 +03:00
if (Element.SelectedItem != null && Element.SelectedItem.GetType().GetTypeInfo().IsValueType)
areEqual = Element.SelectedItem.Equals(List.SelectedItem);
else
areEqual = Element.SelectedItem == List.SelectedItem;
if (!areEqual)
{
if (_itemWasClicked)
List.SelectedItem = Element.SelectedItem;
else
((IElementController)Element).SetValueFromRenderer(ListView.SelectedItemProperty, List.SelectedItem);
}
_itemWasClicked = false;
2016-03-22 23:02:25 +03:00
}
FrameworkElement FindElement(object cell)
{
foreach (CellControl selector in FindDescendants<CellControl>(List))
{
if (ReferenceEquals(cell, selector.DataContext))
return selector;
}
return null;
}
bool _deferSelection = false;
2016-03-22 23:02:25 +03:00
Tuple<object, SelectedItemChangedEventArgs> _deferredSelectedItemChangedEvent;
Add more UWP automated testing capabilities (#1252) * Implement Clear(marked) method * For Windows tests where we need to query a value we can't get, mark inconclusive * Fix queries for multi-line "marked" values * Force frames with text in them to be "tappable" * Actually rerun queries during retry * Update images for package deployment * Allow the tests to restart the Control Gallery if it crashes * UWP tests can now activate context menus * Make double-tap (really double click) work for UWP desktop * Get some basic scroll up/down functions working * ScrollTo functions * Modify ListViewRenderer automation peer to prevent freezing on ListViews * Allow automation to find tabs * Temporarily ignore some of the tests which don't do much * Make ListViews with string/value type lists work * Add note about 29257/60478 * Use toggle button for test 30353 for UWP * Handle getting screen bounds consistently * Make test for G2414 use ActivateContextMenu extension method * Simplify UI test for 31330 and make it runnable on Windows * Add notes on failing tests * Add query for MoreButton on G2809 test * Ignore ActivityIndicator IsRunning test for UWP * Use ScrollDownTo instead of ScrollForElement method on Windows * CellsGalleryTestCellList now working on UWP * Cells tests working on UWP * Re-add Tap to ScrollAndTap * Get rid of custom automation peer stuff and just fix the tests * Viewport caching and multi-monitor support for scroll * Modified scroll values to hopefully get this running correctly on high density screen * Clear messages so Appearing tests don't freeze up automation on UWP * Make test for 32230 compatible with UWP * Make test 32615 compatible with UWP * Use ActivateContextMenu to simplify 34561 test * Add notes for 34912 failure * Make 36171 test compatible with UWP tests Add directions for running the tests locally * PR cleanup
2017-11-10 13:52:25 +03:00
protected override AutomationPeer OnCreateAutomationPeer()
{
if (List == null)
return new FrameworkElementAutomationPeer(this);
var automationPeer = new ListViewAutomationPeer(List);
// skip this renderer from automationPeer tree to avoid infinity loop
automationPeer.SetParent(new FrameworkElementAutomationPeer(Parent as FrameworkElement));
return automationPeer;
Add more UWP automated testing capabilities (#1252) * Implement Clear(marked) method * For Windows tests where we need to query a value we can't get, mark inconclusive * Fix queries for multi-line "marked" values * Force frames with text in them to be "tappable" * Actually rerun queries during retry * Update images for package deployment * Allow the tests to restart the Control Gallery if it crashes * UWP tests can now activate context menus * Make double-tap (really double click) work for UWP desktop * Get some basic scroll up/down functions working * ScrollTo functions * Modify ListViewRenderer automation peer to prevent freezing on ListViews * Allow automation to find tabs * Temporarily ignore some of the tests which don't do much * Make ListViews with string/value type lists work * Add note about 29257/60478 * Use toggle button for test 30353 for UWP * Handle getting screen bounds consistently * Make test for G2414 use ActivateContextMenu extension method * Simplify UI test for 31330 and make it runnable on Windows * Add notes on failing tests * Add query for MoreButton on G2809 test * Ignore ActivityIndicator IsRunning test for UWP * Use ScrollDownTo instead of ScrollForElement method on Windows * CellsGalleryTestCellList now working on UWP * Cells tests working on UWP * Re-add Tap to ScrollAndTap * Get rid of custom automation peer stuff and just fix the tests * Viewport caching and multi-monitor support for scroll * Modified scroll values to hopefully get this running correctly on high density screen * Clear messages so Appearing tests don't freeze up automation on UWP * Make test for 32230 compatible with UWP * Make test 32615 compatible with UWP * Use ActivateContextMenu to simplify 34561 test * Add notes for 34912 failure * Make 36171 test compatible with UWP tests Add directions for running the tests locally * PR cleanup
2017-11-10 13:52:25 +03:00
}
2016-03-22 23:02:25 +03:00
}
}