Skip to content

Comments

[Android] Fix Picker IsOpen not reset when picker is dismissed#33332

Merged
rmarinho merged 6 commits intodotnet:inflight/currentfrom
devanathan-vaithiyanathan:fix-picker-dismiss-open
Jan 6, 2026
Merged

[Android] Fix Picker IsOpen not reset when picker is dismissed#33332
rmarinho merged 6 commits intodotnet:inflight/currentfrom
devanathan-vaithiyanathan:fix-picker-dismiss-open

Conversation

@devanathan-vaithiyanathan
Copy link
Contributor

Issue Details

When the Picker dialog is closed using the cancel button or tapping outside, the IsOpen property is not updated. Even though the Picker is no longer visible, IsOpen stays true, causing the Picker state to be incorrect.

Description of Change

Updated the Android Picker handler to reset VirtualView.IsOpen to false when the picker dialog is dismissed.

Issues Fixed

Fixes #33331

Tested the behavior in the following platforms.

  • Android
  • Windows
  • iOS
  • Mac
Before After
Android
Before.mov
Android
After.mov

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request fixes an Android-specific issue where the Picker's IsOpen property was not being reset to false when the picker dialog was dismissed via the cancel button or by tapping outside the dialog. The fix adds a single line to set VirtualView.IsOpen = false in the OnDialogDismiss event handler, bringing Android's behavior in line with iOS and Windows platforms which already handle this correctly.

Key Changes:

  • Added VirtualView.IsOpen = false in Android's PickerHandler when dialog is dismissed
  • Created UI test to verify the IsOpen property resets correctly after dismissing the picker
  • Created HostApp test page to demonstrate and test the fix

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
src/Core/src/Handlers/Picker/PickerHandler.Android.cs Added VirtualView.IsOpen = false in OnDialogDismiss method to reset IsOpen property when picker is dismissed
src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue33331.cs Added NUnit test to verify IsOpen property behavior with platform-specific dismiss actions (currently excludes Windows)
src/Controls/tests/TestCases.HostApp/Issues/Issue33331.cs Added test page with Picker, button to open programmatically, and label to display IsOpen state

@@ -0,0 +1,40 @@
# if TEST_FAILS_ON_WINDOWS // This is Android Specific issues
Copy link

Copilot AI Dec 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the UI Testing Guidelines, tests should run on all applicable platforms by default unless there is a specific technical limitation. This test is currently restricted to exclude Windows using the preprocessor directive, but based on the PR description indicating the fix was tested on Windows (and Windows also properly sets IsOpen = false in PickerHandler.Windows.cs), there doesn't appear to be a technical reason to exclude Windows.

The comment "This is Android Specific issues" is inaccurate since the IsOpen property behavior should be consistent across all platforms. Remove the TEST_FAILS_ON_WINDOWS directive and allow the test to run on all platforms.

Copilot generated this review using guidance from repository custom instructions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is a valid comment. If the test is indeed failing on Windows then, can you add a comment why

Comment on lines 27 to 32
#if ANDROID
App.Tap("Cancel");
#elif IOS || MACCATALYST
// On iOS, tap Done button
App.Tap("Done");
#endif
Copy link

Copilot AI Dec 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The platform-specific conditional compilation in this test is unnecessarily complex and goes against the UI testing guidelines which state tests should run on all platforms by default.

The test currently has Android-specific Cancel button tapping and iOS/MacCatalyst-specific Done button tapping, but Windows is excluded entirely. However, the behavior being tested (IsOpen property resetting when picker is dismissed) should work consistently across all platforms.

Consider refactoring this test to work across all platforms without platform-specific directives. Since the core assertion is checking that IsOpen returns to False after the picker is dismissed, you could use a more generic approach such as tapping outside the picker or using a platform-agnostic dismiss action that works across all platforms.

Copilot generated this review using guidance from repository custom instructions.
@@ -0,0 +1,40 @@
# if TEST_FAILS_ON_WINDOWS // This is Android Specific issues
Copy link

Copilot AI Dec 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a spacing inconsistency in this preprocessor directive. Line 1 has a space between '#' and 'if' (written as '# if'), while the closing directive on line 40 uses the standard '#endif' without a space.

Change line 1 to use the standard format without a space: '#if TEST_FAILS_ON_WINDOWS' to match the closing '#endif'.

Suggested change
# if TEST_FAILS_ON_WINDOWS // This is Android Specific issues
#if TEST_FAILS_ON_WINDOWS // This is Android Specific issues

Copilot uses AI. Check for mistakes.

App.Tap("OpenPickerButton");

#if ANDROID
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the comment here https://github.com/dotnet/maui/pull/33332/changes#r2655473347

Can we move this to an extention method so it's just generalized opening and closing pickers?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@PureWeen , Moved the logic into an extension method and enabled the test for all platforms.
FYI @kubaflo

@PureWeen
Copy link
Member

PureWeen commented Jan 2, 2026

/rebase

@github-actions github-actions bot force-pushed the fix-picker-dismiss-open branch from 230a36f to f4598cd Compare January 2, 2026 23:46
@PureWeen
Copy link
Member

PureWeen commented Jan 3, 2026

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@PureWeen
Copy link
Member

PureWeen commented Jan 5, 2026

PR Review: #33332 - [Android] Fix Picker IsOpen not reset when picker is dismissed

Date: 2026-01-05 | Issue: #33331 | PR: #33332

✅ Final Recommendation: APPROVE

Aspect Result
Phase 0 (Gate) ✅ Tests fail without fix, pass with fix
Root Cause Missing IsOpen = false in OnDialogDismiss
Fix Quality Minimal (+1 line), correct, consistent with iOS/Windows
Regressions None identified

📋 Issue Summary

On Android, when a Picker is dismissed by tapping outside the dialog or pressing the cancel button, the IsOpen property is not reset. Even though the Picker is no longer visible, IsOpen stays true, causing the Picker state to be incorrect.

Steps to Reproduce:

  1. Create a Picker and populate it with items
  2. Open the Picker programmatically by setting Picker.IsOpen = true
  3. Dismiss the Picker by tapping outside the dialog or press the cancel button
  4. Check the Picker state — IsOpen remains true instead of being reset to false

Platforms Affected: Android only

📁 Files Changed
File Type Changes
src/Core/src/Handlers/Picker/PickerHandler.Android.cs Fix +1 line
src/Controls/tests/TestCases.HostApp/Issues/Issue33331.cs Test (HostApp) +63 lines
src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue33331.cs Test (UI Test) +30 lines
src/TestUtils/src/UITest.Appium/HelperExtensions.cs Test Utils +28 lines
🔬 Phase 0: Gate - Test Verification

Status: ✅ PASSED

  • Tests PASS with fix
  • Fix files reverted to main
  • Tests FAIL without fix
  • Fix files restored

Result:

  • Tests WITHOUT fix: FAIL ✅ (expected - IsOpen stays true after dismiss)
  • Tests WITH fix: PASS ✅ (expected - IsOpen correctly resets to false)
🔍 Phase 1: Independent Analysis

Status: ✅ PASSED

Root Cause:
The Android PickerHandler.OnDialogDismiss method was missing VirtualView.IsOpen = false. When the dialog was dismissed (cancel button or tap outside), only IsFocused was set to false, leaving IsOpen as true.

Platform Comparison:

Platform Handler Sets IsOpen = false
iOS EditingDidEnd ✅ Yes
Windows OnMauiComboBoxDropDownClosed ✅ Yes
Android (before) OnDialogDismiss ❌ No
Android (after) OnDialogDismiss ✅ Yes

Alternative Approaches Considered:

Alternative Location Why NOT to use
Set in DismissDialog() Line 133-136 Called from MapIsOpen when already false - would cause redundant/incorrect sets
Set in Cancel button callback Line 175 Only handles Cancel, not tap-outside
Use SetOnDismissListener API Alternative to event Functionally equivalent, no advantage

Conclusion: The PR's approach (OnDialogDismiss) is the only correct location - it's the single exit point for ALL dismiss scenarios, matching the iOS and Windows patterns.

⚖️ Phase 2: Compare Approaches

Status: ✅ PASSED

Approach Test Result Lines Changed Complexity Recommendation
PR's fix ✅ PASS +1 line Low ✅ Recommended
My approach Same +1 line Low Same fix

The PR's fix is identical to what I would have done:

  • Single line addition: VirtualView.IsOpen = false;
  • Placed in OnDialogDismiss - the only dismiss handler
  • Consistent with iOS and Windows behavior
🧪 Phase 3: Regression Testing

Status: ✅ PASSED

Edge Cases Verified:

  • User selects an item (not cancel) → _dialog.Dismiss() triggers OnDialogDismiss
  • iOS/Windows behavior consistency → Both platforms set IsOpen = false in their dismiss handlers ✅

All Dismiss Paths Covered:

  1. User selects item_dialog.Dismiss()OnDialogDismiss
  2. User taps Cancel → Dialog dismisses → OnDialogDismiss
  3. User taps outsideSetCanceledOnTouchOutside(true)OnDialogDismiss

Potential Regressions: None identified - fix only adds behavior, doesn't change existing behavior.

💬 PR Discussion Summary
  • PR Status: Open (Changes Requested → Addressed)
  • Author: Community contribution from Syncfusion partner

Reviewer Feedback (All Addressed):

  • ✅ PureWeen: Requested extension method for generalized picker open/close → Done
  • ✅ kubaflo: Asked for clarification on Windows test exclusion → Fixed, test now runs on all platforms
  • ✅ Copilot: Suggested removing TEST_FAILS_ON_WINDOWS directive → Done

Justification for Approval:

  1. Tests are valid - Proven to fail without fix, pass with fix
  2. Fix is minimal - Single line addition
  3. Fix is correct - Placed in the only dismiss handler
  4. Consistent - Matches iOS and Windows behavior
  5. No regressions - All dismiss paths covered
  6. Reviewer feedback addressed - Extension method created, test enabled for all platforms

@PureWeen PureWeen changed the base branch from main to inflight/current January 5, 2026 21:03
@rmarinho rmarinho merged commit 1919423 into dotnet:inflight/current Jan 6, 2026
24 checks passed
PureWeen pushed a commit that referenced this pull request Jan 9, 2026
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->
### Issue Details
When the Picker dialog is closed using the cancel button or tapping
outside, the IsOpen property is not updated. Even though the Picker is
no longer visible, IsOpen stays true, causing the Picker state to be
incorrect.

### Description of Change
Updated the Android Picker handler to reset VirtualView.IsOpen to false
when the picker dialog is dismissed.

<!-- Enter description of the fix in this section -->

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #33331 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [x] Android
- [x] Windows
- [x] iOS
- [x] Mac

| Before  | After  |
|---------|--------|
| **Android**<br> <video
src="https://github.com/user-attachments/assets/5dc18c5f-a2d2-48cd-95eb-d150b210c4ce"
width="300" height="600"> | **Android**<br> <video
src="https://github.com/user-attachments/assets/c30f015d-5d2b-46cc-9bc1-d07ba9ed485c"
width="300" height="600"> |
@kubaflo kubaflo added the s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) label Jan 10, 2026
PureWeen pushed a commit that referenced this pull request Jan 13, 2026
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->
### Issue Details
When the Picker dialog is closed using the cancel button or tapping
outside, the IsOpen property is not updated. Even though the Picker is
no longer visible, IsOpen stays true, causing the Picker state to be
incorrect.

### Description of Change
Updated the Android Picker handler to reset VirtualView.IsOpen to false
when the picker dialog is dismissed.

<!-- Enter description of the fix in this section -->

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #33331 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [x] Android
- [x] Windows
- [x] iOS
- [x] Mac

| Before  | After  |
|---------|--------|
| **Android**<br> <video
src="https://github.com/user-attachments/assets/5dc18c5f-a2d2-48cd-95eb-d150b210c4ce"
width="300" height="600"> | **Android**<br> <video
src="https://github.com/user-attachments/assets/c30f015d-5d2b-46cc-9bc1-d07ba9ed485c"
width="300" height="600"> |
github-actions bot pushed a commit that referenced this pull request Jan 16, 2026
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->
### Issue Details
When the Picker dialog is closed using the cancel button or tapping
outside, the IsOpen property is not updated. Even though the Picker is
no longer visible, IsOpen stays true, causing the Picker state to be
incorrect.

### Description of Change
Updated the Android Picker handler to reset VirtualView.IsOpen to false
when the picker dialog is dismissed.

<!-- Enter description of the fix in this section -->

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #33331 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [x] Android
- [x] Windows
- [x] iOS
- [x] Mac

| Before  | After  |
|---------|--------|
| **Android**<br> <video
src="https://github.com/user-attachments/assets/5dc18c5f-a2d2-48cd-95eb-d150b210c4ce"
width="300" height="600"> | **Android**<br> <video
src="https://github.com/user-attachments/assets/c30f015d-5d2b-46cc-9bc1-d07ba9ed485c"
width="300" height="600"> |
github-actions bot pushed a commit that referenced this pull request Jan 20, 2026
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->
### Issue Details
When the Picker dialog is closed using the cancel button or tapping
outside, the IsOpen property is not updated. Even though the Picker is
no longer visible, IsOpen stays true, causing the Picker state to be
incorrect.

### Description of Change
Updated the Android Picker handler to reset VirtualView.IsOpen to false
when the picker dialog is dismissed.

<!-- Enter description of the fix in this section -->

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #33331 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [x] Android
- [x] Windows
- [x] iOS
- [x] Mac

| Before  | After  |
|---------|--------|
| **Android**<br> <video
src="https://github.com/user-attachments/assets/5dc18c5f-a2d2-48cd-95eb-d150b210c4ce"
width="300" height="600"> | **Android**<br> <video
src="https://github.com/user-attachments/assets/c30f015d-5d2b-46cc-9bc1-d07ba9ed485c"
width="300" height="600"> |
github-actions bot pushed a commit that referenced this pull request Jan 21, 2026
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->
### Issue Details
When the Picker dialog is closed using the cancel button or tapping
outside, the IsOpen property is not updated. Even though the Picker is
no longer visible, IsOpen stays true, causing the Picker state to be
incorrect.

### Description of Change
Updated the Android Picker handler to reset VirtualView.IsOpen to false
when the picker dialog is dismissed.

<!-- Enter description of the fix in this section -->

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #33331 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [x] Android
- [x] Windows
- [x] iOS
- [x] Mac

| Before  | After  |
|---------|--------|
| **Android**<br> <video
src="https://github.com/user-attachments/assets/5dc18c5f-a2d2-48cd-95eb-d150b210c4ce"
width="300" height="600"> | **Android**<br> <video
src="https://github.com/user-attachments/assets/c30f015d-5d2b-46cc-9bc1-d07ba9ed485c"
width="300" height="600"> |
github-actions bot pushed a commit that referenced this pull request Jan 23, 2026
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->
### Issue Details
When the Picker dialog is closed using the cancel button or tapping
outside, the IsOpen property is not updated. Even though the Picker is
no longer visible, IsOpen stays true, causing the Picker state to be
incorrect.

### Description of Change
Updated the Android Picker handler to reset VirtualView.IsOpen to false
when the picker dialog is dismissed.

<!-- Enter description of the fix in this section -->

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #33331 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [x] Android
- [x] Windows
- [x] iOS
- [x] Mac

| Before  | After  |
|---------|--------|
| **Android**<br> <video
src="https://github.com/user-attachments/assets/5dc18c5f-a2d2-48cd-95eb-d150b210c4ce"
width="300" height="600"> | **Android**<br> <video
src="https://github.com/user-attachments/assets/c30f015d-5d2b-46cc-9bc1-d07ba9ed485c"
width="300" height="600"> |
PureWeen pushed a commit that referenced this pull request Jan 23, 2026
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->
### Issue Details
When the Picker dialog is closed using the cancel button or tapping
outside, the IsOpen property is not updated. Even though the Picker is
no longer visible, IsOpen stays true, causing the Picker state to be
incorrect.

### Description of Change
Updated the Android Picker handler to reset VirtualView.IsOpen to false
when the picker dialog is dismissed.

<!-- Enter description of the fix in this section -->

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #33331 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [x] Android
- [x] Windows
- [x] iOS
- [x] Mac

| Before  | After  |
|---------|--------|
| **Android**<br> <video
src="https://github.com/user-attachments/assets/5dc18c5f-a2d2-48cd-95eb-d150b210c4ce"
width="300" height="600"> | **Android**<br> <video
src="https://github.com/user-attachments/assets/c30f015d-5d2b-46cc-9bc1-d07ba9ed485c"
width="300" height="600"> |
PureWeen added a commit that referenced this pull request Jan 25, 2026
## What's Coming

.NET MAUI inflight/candidate introduces significant improvements across
all platforms with focus on quality, performance, and developer
experience. This release includes 16 commits with various improvements,
bug fixes, and enhancements.


## Checkbox
- [Android] Implement material3 support for CheckBox by
@HarishwaranVijayakumar in #33339
  <details>
  <summary>🔧 Fixes</summary>

- [Implement Material3 Support for
CheckBox](#33338)
  </details>

## CollectionView
- [Android] Fixed EmptyView doesn’t display when CollectionView is
placed inside a VerticalStackLayout by @NanthiniMahalingam in
#33134
  <details>
  <summary>🔧 Fixes</summary>

- [CollectionView does not show an EmptyView template with an empty
collection](#32932)
  </details>

## Essentials
- [Windows]Fix NullReferenceException in OpenReadAsync for FileResult
created with full path by @devanathan-vaithiyanathan in
#28238
  <details>
  <summary>🔧 Fixes</summary>

- [[Windows] FileResult(string fullPath) not initialized
properly](#26858)
  </details>

## Image
- Fix Glide IllegalArgumentException in MauiCustomTarget.clear() for
destroyed activities by @jfversluis via @Copilot in
#29780
  <details>
  <summary>🔧 Fixes</summary>

- [java.lang.IllegalArgumentException: You cannot start a load for a
destroyed activity - glide](#29699)
  </details>

## Label
- [Android] Fix for Label WordWrap width issue causing HorizontalOptions
misalignment by @praveenkumarkarunanithi in
#33281
  <details>
  <summary>🔧 Fixes</summary>

- [[Android] Unexpected Line Breaks in Android, Label with WordWrap Mode
Due to Trailing Space.](#31782)
- [Label not sized correctly on
Android](#27614)
  </details>

- Fix to Improve Flyout Accessibility by Adjusting UITableViewController
Labels by @SuthiYuvaraj in #31619
  <details>
  <summary>🔧 Fixes</summary>

- [Navigation section present under hamburger are programmatically
define as table :A11y_.NET maui_User can get all the insights of
Dashboard_Devtools](#30894)
  </details>

## Mediapicker
- [Regression][iOS] Fix MediaPicker PickPhotosAsync getting file name in
contentType property by @devanathan-vaithiyanathan in
#33390
  <details>
  <summary>🔧 Fixes</summary>

- [[iOS] MediaPicker PickPhotosAsync getting file name in contentType
property](#33348)
  </details>

## Navigation
- Fix handler not disconnected when removing non visible pages using
RemovePage() by @Vignesh-SF3580 in
#32289
  <details>
  <summary>🔧 Fixes</summary>

- [NavigationPage.Navigation.RemovePage() fails to disconnect handlers
when removing pages, unlike
ContentPage.Navigation.RemovePage()](#32239)
  </details>

## Picker
- [Android] Fix Picker IsOpen not reset when picker is dismissed by
@devanathan-vaithiyanathan in #33332
  <details>
  <summary>🔧 Fixes</summary>

- [[Android] Picker IsOpen not reset when picker is
dismissed](#33331)
  </details>

## Shell
- [iOS & Catalyst ] Fixed IsEnabled property should work on Tabs by
@SubhikshaSf4851 in #33369
  <details>
  <summary>🔧 Fixes</summary>

- [[Catalyst] TabBarBackgroundColor, TabBarUnselectedColor, and
IsEnabled Not Working as Expected in
Shell](#33158)
  </details>

- [iOS,Windows] Fix navigation bar colors not resetting when switching
ShellContent by @Vignesh-SF3580 in
#33228
  <details>
  <summary>🔧 Fixes</summary>

- [[iOS, Windows] Shell Navigation bar colors are not updated correctly
when switching
ShellContent](#33227)
  </details>

- [iOS] Fixed Shell navigation on search handler suggestion selection by
@SubhikshaSf4851 in #33406
  <details>
  <summary>🔧 Fixes</summary>

- [[iOS] Clicking on search suggestions fails to navigate to detail page
correctly](#33356)
  </details>

## Templates
- Fix VoiceOver doesnot announces the State of the ComboBox by
@SuthiYuvaraj in #32286

## Xaml
- [XSG][BindingSourceGen] Add support for CommunityToolkit.Mvvm
ObservablePropertyAttribute by @simonrozsival via @Copilot in
#33028
  <details>
  <summary>🔧 Fixes</summary>

- [[XSG] Add heuristic to support bindable properties generated by other
source generators](#32597)
  </details>


<details>
<summary>📦 Other (2)</summary>

- [XSG] Improve diagnostic reporting during binding compilation by
@simonrozsival via @Copilot in #32905
- [Testing] Fixed Test case failure in PR 33574 - [01/19/2026] Candidate
- 1 by @TamilarasanSF4853 in #33602

</details>
**Full Changelog**:
main...inflight/candidate
@github-actions github-actions bot locked and limited conversation to collaborators Feb 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-controls-picker Picker community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration platform/android s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Android] Picker IsOpen not reset when picker is dismissed

5 participants