Skip to content

[Windows] Fix CollectionView DisconnectHandler SelectionMode Crash#23726

Merged
PureWeen merged 2 commits into
mainfrom
foda/CVDisconnect
Jul 20, 2024
Merged

[Windows] Fix CollectionView DisconnectHandler SelectionMode Crash#23726
PureWeen merged 2 commits into
mainfrom
foda/CVDisconnect

Conversation

@Foda

@Foda Foda commented Jul 19, 2024

Copy link
Copy Markdown
Contributor

Description of Change

Fix a crash when the DisconnectHandler is invoked on a CollectionView when multiple items are selected by reordering the unsubscription of SelectionChanged and clearing the SelectionModeProperty.

The issue was caused because oldListViewBase.ClearValue(ListViewBase.SelectionModeProperty) fires an SelectionChanged event, which runs code that shouldn't be run in a handler disconnect (the handler will be null).

Issues Fixed

Fixes #23649

@Foda Foda added platform/windows area-controls-collectionview CollectionView, CarouselView, IndicatorView labels Jul 19, 2024
@Foda Foda requested a review from PureWeen July 19, 2024 19:23
@Foda Foda requested a review from a team as a code owner July 19, 2024 19:23
@Foda Foda requested a review from mattleibow July 19, 2024 19:23
@PureWeen

Copy link
Copy Markdown
Member

Test failure is on android and this PR only touches windows

@PureWeen PureWeen merged commit c8aa6f9 into main Jul 20, 2024
@PureWeen PureWeen deleted the foda/CVDisconnect branch July 20, 2024 16:46
pictos pushed a commit to pictos/maui that referenced this pull request Jul 22, 2024
[Windows] Fix CollectionView DisconnectHandler SelectionMode Crash (dotnet#23726)

* Reorder events to prevent disconnect issues

* Add test

---------

Co-authored-by: Mike Corsaro <mikecorsaro@microsoft.com>

Use UIView.Window instead of the global window (dotnet#23693)

[Windows] Subscribe pointer events only when needed (dotnet#23515)

Fix iOS log exports (dotnet#23334)

* Fix ios Device Logging

* - fix up device test logging a bit more

* Update ui-tests-steps.yml

* Update ui-tests-steps.yml

* Update ios.cake

* Update ui-tests-steps.yml

* Update maui-templates.yml

* Update maui-templates.yml

remove code from oldFragment

add new shiny DialogFragment

refactoring code to find and dismiss DialogFragment

code cleanup

delete ModalContainer to use only ModalFragment

handle animation and add a map between page and dialogFragment

We've back button enabled!

After dismissing several demons summoned using obscure Android APIs, I was able to deal with the BackButtonPressed event

add modal animations as anim.xml files

using cleanup

remowork PopModalPlatformAsync to work with dialogFragment

remove tag

final adjustments on DialogFragment

change the ShowNow for Show to fix the issue

Wait for animation to complete

change local functions order

fix build

create window hooks for android (like iOS)

clean up ModalFragment fields

change Dictionary to ConditionalWeakTable

clean up event animation

refactor on Null notation

remove comments

- adjust back button

- different back button

code style

remove unused prop.

fix DontPushModalPagesWhenWindowIsDeactivated DeviceTest

completes the task

return back the way how modalManager handles android modals

normilize animation duration

Co-authored-by: Shane Neuville <shane94@hotmail.com>

remove focusability code

change how fragments are looked-up

code style
@samhouts samhouts added the fixed-in-net9.0-nightly This may be available in a nightly release! label Aug 2, 2024
@samhouts samhouts added fixed-in-8.0.80 fixed-in-net9.0-nightly This may be available in a nightly release! and removed fixed-in-net9.0-nightly This may be available in a nightly release! labels Aug 8, 2024
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-controls-collectionview CollectionView, CarouselView, IndicatorView fixed-in-8.0.80 fixed-in-net9.0-nightly This may be available in a nightly release! platform/windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CollectionView DisconnectHandler SelectionMode=Multiple Windows exception

3 participants