unoplatform / uno

Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
https://platform.uno
Apache License 2.0
8.48k stars 690 forks source link

fix(iOS): multiple files selection (backport #16634) #16638

Closed mergify[bot] closed 3 weeks ago

mergify[bot] commented 3 weeks ago

GitHub Issue (If applicable): closes #

PR Type

What kind of change does this PR introduce?

What is the current behavior?

When selecting multiple files from iOS, users are able to tap over the "add" button multiple times, causing an exception and subsequently making the app crash.

What is the new behavior?

PR Checklist

Please check if your PR fulfills the following requirements:

Other information

Internal Issue (If applicable):


This is an automatic backport of pull request #16634 done by Mergify.

unodevops commented 3 weeks ago

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-16638/index.html

unodevops commented 3 weeks ago

🤖 Your WebAssembly Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-16638/index.html

nventive-devops commented 3 weeks ago

The build 124348 found UI Test snapshots differences: android-28-net7: 21, android-28-net7-Snap: 37, ios: 216, ios-Snap: 844, skia-gtk-screenshots: 50, skia-linux-screenshots: 56, skia-windows-screenshots: 10, wasm: 65, wasm-automated-net7.0-UWP-Default-automated: 27, wasm-automated-net7.0-UWP-RuntimeTests-0: 1, wasm-automated-net7.0-UWP-RuntimeTests-1: 0, wasm-automated-net7.0-UWP-RuntimeTests-2: 0, wasm-automated-net7.0-WinUI-Benchmarks-automated: 0, wasm-automated-net7.0-WinUI-RuntimeTests-0: 0, wasm-automated-net7.0-WinUI-RuntimeTests-1: 0, wasm-automated-net7.0-WinUI-RuntimeTests-2: 0

Details * `android-28-net7`: **21** changed over 823
🚨🚨 Comparison Details (first 20) 🚨🚨 - `Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75` - `Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50` - `ImageStretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None` - `ListView_SelectedItem_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_SelectedItem` - `SelectionTest_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage` - `SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage` - `ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220` - `When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer` - `WebView_NavigateToLongString_AfterSuccess` - `When_InScrollViewer_initial` - `When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch` - `When_InListView_after_scroll` - `When_InScrollViewer_after_scroll` - `Flyout_TemplatedParent_UITests_Windows_UI_Xaml_Controls_Flyout_Flyout_TemplatedParent` - `Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25` - `ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems` - `ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220` - `WebView_NavigateToAnchor_Initial` - `DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage` - `UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage`
* `android-28-net7-Snap`: **37** changed over 1060
🚨🚨 Comparison Details (first 20) 🚨🚨 - `MediaPlayerElement_Using_flv_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Flv_Extension` - `MediaPlayerElement_Using_mkv_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mkv_Extension` - `MediaPlayerElement_Using_mov_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mov_Extension` - `TextBox_TextBox_DefaultTextBoxStyle_Uno_UI_Samples_Content_UITests_TextBoxControl_TextBox_DefaultTextBoxStyle` - `TextBox_TextBox_Foreground_Uno_UI_Samples_Content_UITests_TextBoxControl_TextBox_Foreground` - `TextBox_TextBox_Formatting_Flicker_UITests_Shared_Windows_UI_Xaml_Controls_TextBoxTests_TextBox_Formatting_Flicker` - `MUX_NumberBox_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage` - `TextBlock_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout` - `Scrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage` - `MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension` - `MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension` - `NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page` - `TextBox_Multiline_TextBox_In_ScrollViewer_Uno_UI_Samples_Content_UITests_TextBoxControl_Multiline_TextBox_In_ScrollViewer` - `TextBox_PasswordBox_AutoFill_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_AutoFill` - `WebView_WebView2_Javascript_AlertConfirmPrompt_SamplesApp_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2ControlJavaScriptAlertConfirmPrompt` - `WebView_WebView2_WithHeaders_SamplesApp_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_WithHeaders` - `Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents` - `ListView_HorizontalListView_Templates_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListView_Templates` - `ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems` - `MediaPlayerElement_MediaPlayerElement_Stretch_Fill_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Stretch_Fill`
* `ios`: **216** changed over 265
🚨🚨 Comparison Details (first 20) 🚨🚨 - `Change_Manipulation_Property_After_property_change` - `Button_NestedButtons_Validation_nVentive_Umbrella_Views_UI_Samples_Content_UITests_ButtonTestsControl_Nested_Buttons` - `ComboBoxTests_Fullscreen_Popup_iOS_Closed` - `ComboBoxTests_Disabled_UITests_Windows_UI_Xaml_Controls_ComboBox_ComboBox_Disabled` - `Flyout_ShowAt_Window_Content_UITests_Windows_UI_Xaml_Controls_FlyoutTests_Flyout_ShowAt_Window_Content` - `FocusManager_FocusDirection_Down_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_FocusDirection` - `Image_Invalid_image_invalid_before_hide` - `Image_Source_Nullify_image_source_nullify_empty` - `Keyboard_Textbox_NoScrollViewer_Validation_4_-_Remove_Focus_on_multilineTextBox` - `Large_Image_With_Margin_Ready` - `Screenshots_Image_Stretch_Alignment_Taller_Mode-3` - `SelectionTest_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage` - `SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage` - `Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes` - `Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-1` - `When_MaxLines_Changed_On_Grid_Container_Uno_UI_Samples_Content_UITests_TextBlockControl_SimpleText_MaxLines_Multiple_Containers` - `Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-2` - `When_MaxLines_Changed_On_Stack_Container_Uno_UI_Samples_Content_UITests_TextBlockControl_SimpleText_MaxLines_Multiple_Containers` - `TextBox_No_Text_Entered_UITests_Shared_Windows_UI_Xaml_Controls_TextBoxControl_TextBox_Binding_Null` - `TextBox_PageLoadedTest_UITests_Shared_Windows_UI_Xaml_Controls_TextBoxTests_TextBox_TextChanged`
* `ios-Snap`: **844** changed over 1051
🚨🚨 Comparison Details (first 20) 🚨🚨 - `AutoSuggestBox_UITests_Windows_UI_Xaml_Controls_AutoSuggestBoxTests_AutoSuggestBox_Description_UITests_Windows_UI_Xaml_Controls_AutoSuggestBoxTests_AutoSuggestBox_Description` - `Border_Border_CornerRadius_Clipping_UITests_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Clipping` - `Border_NonUniformThicknessandRadius_Uno_UI_Samples_UITests_BorderTestsControl_NonUniformThicknessandRadius` - `Border_ZeroThickness_Uno_UI_Samples_UITests_BorderTestsControl_ZeroThickness` - `Brushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch` - `Brushes_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInList_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInList` - `Clipping_SamplesApp_Windows_UI_Xaml_Clipping_Transform_Ellipse_In_Canvas_in_Two_Grids_SamplesApp_Windows_UI_Xaml_Clipping_Transform_Ellipse_In_Canvas_in_Two_Grids` - `ComboBox_ComboBox_ScrollViewer_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ComboBox_ComboBox_ScrollViewer` - `Default_UITests_Windows_UI_Xaml_Controls_CommandBar_CommandBar_Native_Frame_UITests_Windows_UI_Xaml_Controls_CommandBar_CommandBar_Native_Frame` - `Default_UITests_Windows_UI_Xaml_Controls_CommandBar_CommandBar_Native_With_AppBarButton_With_Foreground_UITests_Windows_UI_Xaml_Controls_CommandBar_CommandBar_Native_With_AppBarButton_With_Foreground` - `FlipView_FlipView_Images_UITests_Windows_UI_Xaml_Controls_FlipView_FlipView_Images` - `Flyouts_Flyout_Attached_UITests_Shared_Windows_UI_Xaml_Controls_Flyout_Flyout_Attached` - `Focus_UITests_Windows_UI_Xaml_FocusTests_Focus_FocusVisual_Properties_UITests_Windows_UI_Xaml_FocusTests_Focus_FocusVisual_Properties` - `Focus_UITests_Windows_UI_Xaml_FocusTests_Focus_VisualStates_UITests_Windows_UI_Xaml_FocusTests_Focus_VisualStates` - `Grid_Grid_RowSpan_Right_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_RowSpan_Right` - `Grid_Grid_Star_Auto_WithTextblock_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_Star_Auto_WithTextblock` - `Grid_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_UserControlMargin_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_UserControlMargin` - `Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Transforms_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Transforms` - `Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_UseTargetSizeLate_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_UseTargetSizeLate` - `Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic`
* `skia-gtk-screenshots`: **50** changed over 2176
🚨🚨 Comparison Details (first 20) 🚨🚨 - `Using .flv.png-dark` - `Using .flv.png` - `Native.png-dark` - `Native.png` - `Using .mkv.png-dark` - `Using .mkv.png` - `Using .ogg.png-dark` - `Using .ogg.png` - `CalendarView_Theming.png-dark` - `CalendarView_Theming.png` - `Ellipse.png-dark` - `Ellipse.png` - `SwipeControlPage2.png-dark` - `SwipeControlPage2.png` - `BorderImageBrush.png` - `UIElement_ContextFlyout.png-dark` - `UIElement_ContextFlyout.png` - `CompositionEffectBrush.png-dark` - `CompositionEffectBrush.png` - `ImageBrushInList.png-dark`
* `skia-linux-screenshots`: **56** changed over 2176
🚨🚨 Comparison Details (first 20) 🚨🚨 - `CalendarView_Theming.png-dark` - `CalendarView_Theming.png` - `DoubleImageBrushInList.png-dark` - `DoubleImageBrushInList.png` - `ImageBrushStretch.png-dark` - `ImageBrushStretch.png` - `BorderImageBrushRelativeTransform.png` - `ImageWithLateSourceUniformToFill.png-dark` - `ImageWithLateSourceUniformToFill.png` - `ImageBrush_UniformToFill.png-dark` - `ImageBrush_UniformToFill.png` - `ImageIconPage.png-dark` - `ImageIconPage.png` - `ImageBrush_StreamSource.png-dark` - `ImageBrush_StreamSource.png` - `LargeImageList.png-dark` - `LargeImageList.png` - `BorderImageBrushRelativeTransform.png-dark` - `ImageBrushAlignmentXY.png-dark` - `ImageBrushAlignmentXY.png`
* `skia-windows-screenshots`: **10** changed over 2176
🚨🚨 Comparison Details (first 20) 🚨🚨 - `CalendarView_Theming.png-dark` - `Ellipse.png-dark` - `Ellipse.png` - `CalendarView_Theming.png` - `Image_Stretch_None_ScrollViewer.png-dark` - `Image_Stretch_None_ScrollViewer.png` - `MediaPlayer.png-dark` - `MediaPlayer.png` - `WinUIProgressRingPage.png-dark` - `WinUIProgressRingPage.png`
* `wasm`: **65** changed over 1046
🚨🚨 Comparison Details (first 20) 🚨🚨 - `SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewSelectedItems` - `SamplesApp.Windows_UI_Xaml_Controls.ListView.HorizontalListViewGrouped` - `SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewLegacy` - `SamplesApp.Windows_UI_Xaml_Controls.ListView.ListView_ItemContainerStyleSelector` - `UITests.Shared.Windows_UI_Xaml_Controls.TextBoxTests.TextBox_CharacterCasing` - `MUXControlsTestApp.NavigationViewCompactPaneLengthTestPage` - `UITests.Shared.Windows_UI_Xaml_Controls.TextBoxTests.TextBox_Disabled` - `MUXControlsTestApp.NavigationViewRS3Page` - `UITests.Windows_UI_Xaml_Controls.ImageTests.SvgImageSource_FromStream` - `UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_IsTabStop` - `UITests.Windows_UI_Xaml_Shapes.LineStretchModes` - `UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_3gp_Extension` - `UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Avi_Extension` - `UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Flv_Extension` - `UITests.Windows_UI_Input.PointersTests.ScrollHandled` - `MUXControlsTestApp.NavigationViewMenuItemStretchPage` - `MUXControlsTestApp.NavigationViewBlankPage1` - `SamplesApp.Samples.RoutedEvents.RoutedEventsPage` - `UITests.Microsoft_UI_Xaml_Controls.RatingControlTests.RatingControlPage` - `UITests.Microsoft_UI_Xaml_Controls.RefreshContainerTests.RefreshContainerHorizontalScroll`
* `wasm-automated-net7.0-UWP-Default-automated`: **27** changed over 1953
🚨🚨 Comparison Details (first 20) 🚨🚨 - `Automation_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_Name_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_Name` - `MinMaxTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage` - `MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension` - `MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension` - `MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal` - `MediaPlayerElement_Sources_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Sources` - `ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure` - `Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming` - `SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage` - `TextBlock_Uno_UI_Samples_Content_UITests_TextBlockControl_SimpleText_MaxLines_Multiple_Containers_Uno_UI_Samples_Content_UITests_TextBlockControl_SimpleText_MaxLines_Multiple_Containers` - `TextBlock_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlock_BrushColorChanging_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlock_BrushColorChanging` - `ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems` - `TextBlock_Simple_Contrained_Horizontal_Center_Wrap2_Uno_UI_Samples_Content_UITests_TextBlockControl_Simple_Contrained_Horizontal_Center_Wrap2` - `When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers` - `When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers` - `TextBlock_TextBlockMultilineInStarStackPanel_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlockMultilineInStarStackPanel` - `TextBlock_Textblocktimespancustomformat_Uno_UI_Samples_Content_UITests_TextBlockControl_Textblocktimespancustomformat` - `TextBlock_Progressing_TextBlock_with_margin_Uno_UI_Samples_Content_UITests_TextBlockControl_Progressing_TextBlock_with_margin` - `When_Theme_Changed_No_Crash_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming` - `TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features`
* `wasm-automated-net7.0-UWP-RuntimeTests-0`: **1** changed over 1
🚨🚨 Comparison Details (first 20) 🚨🚨 - `RunRuntimeTests_SamplesApp_Samples_UnitTests_UnitTestsPage`
* `wasm-automated-net7.0-UWP-RuntimeTests-1`: **0** changed over 1 * `wasm-automated-net7.0-UWP-RuntimeTests-2`: **0** changed over 1 * `wasm-automated-net7.0-WinUI-Benchmarks-automated`: **0** changed over 1 * `wasm-automated-net7.0-WinUI-RuntimeTests-0`: **0** changed over 1 * `wasm-automated-net7.0-WinUI-RuntimeTests-1`: **0** changed over 1 * `wasm-automated-net7.0-WinUI-RuntimeTests-2`: **0** changed over 1