-
Notifications
You must be signed in to change notification settings - Fork 109
Release 1.0.8 updates added #290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this 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 PR upgrades the Syncfusion.Maui.Toolkit from .NET 8/9 to .NET 9/10, introducing necessary API compatibility changes and test updates for the 1.0.8 release. The changes primarily focus on:
- Upgrading target frameworks from net8.0/net9.0 to net9.0/net10.0 across all projects
- Adapting to .NET 10 API changes including animation methods, template handling, and platform-specific APIs
- Updating test assertions to reflect new expected behaviors
- Adding conditional compilation for .NET 10 specific code paths
Key changes include:
- Migration from
TranslateTotoTranslateToAsyncfor .NET 10 - Replacing
ViewCelltemplate handling with directViewcasting for .NET 10 - Updating iOS/MacCatalyst from
IgnoreSafeAreatoSafeAreaEdgesproperty - Adding millisecond support to time picker components
- Fixing week number calculation logic in calendar components
Reviewed changes
Copilot reviewed 127 out of 138 changed files in this pull request and generated 25 comments.
Show a summary per file
| File | Description |
|---|---|
| MultiTargeting.targets | Updated to reference net10.0 instead of net8.0 for iOS, Android, and MacCatalyst platforms |
| Syncfusion.Maui.Toolkit.csproj | Updated target frameworks, version numbers, and enabled IsAotCompatible; removed net8.0 targets |
| Test projects | Upgraded to net10.0 and updated test assertions for changed behaviors |
| TabView components | Replaced Children property with GetVisualChildren() for compatibility; removed OnHandlerChanged cleanup |
| Picker components | Added millisecond column support and updated to close picker on OK/Cancel button clicks |
| Popup components | Added NET10_0 specific handling for Android screen dimensions and Shell page compatibility |
| Animation calls | Wrapped TranslateTo calls with NET10_0 conditional to use TranslateToAsync |
| Template handling | Added NET10_0 conditionals to handle ViewCell removal from DataTemplate |
| iOS platform code | Added version checks for ShouldChangeCharactersInRanges API and InterfaceOrientation deprecation |
| Calendar helpers | Fixed week number calculation to use correct algorithm instead of culture-specific |
| Various files | Added ITextElement using alias to resolve ambiguity |
Comments suppressed due to low confidence (1)
maui/src/Calendar/Helper/CalendarViewHelper.cs:410
- This foreach loop implicitly filters its target sequence - consider filtering the sequence explicitly using '.Where(...)'.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Items = PopulateLabelItemsCollection() | ||
| }; | ||
| if ((tabView.Children.FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) | ||
| if (((tabView as IVisualTreeElement)?.GetVisualChildren().FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Local scope variable 'tabBar' shadows SfTabViewUnitTests.tabBar.
| Items = PopulateLabelItemsCollection() | ||
| }; | ||
| if ((tabView.Children.FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) | ||
| if (((tabView as IVisualTreeElement)?.GetVisualChildren().FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Local scope variable 'tabBar' shadows SfTabViewUnitTests.tabBar.
| IndicatorPlacement = expected | ||
| }; | ||
| if ((tabView.Children.FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) | ||
| if (((tabView as IVisualTreeElement)?.GetVisualChildren().FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Local scope variable 'tabBar' shadows SfTabViewUnitTests.tabBar.
| IndicatorCornerRadius = new CornerRadius(6) | ||
| }; | ||
| if ((tabView.Children.FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) | ||
| if (((tabView as IVisualTreeElement)?.GetVisualChildren().FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() is SfTabBar tabBar) |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Local scope variable 'tabBar' shadows SfTabViewUnitTests.tabBar.
| HeaderHorizontalTextAlignment = expected | ||
| }; | ||
| SfTabBar? tabBar = (tabView.Children.FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() as SfTabBar; | ||
| SfTabBar? tabBar = ((tabView as IVisualTreeElement)?.GetVisualChildren().FirstOrDefault() as SfGrid)?.Children.FirstOrDefault() as SfTabBar; |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Local scope variable 'tabBar' shadows SfTabViewUnitTests.tabBar.
| if (weekNumber < 1) | ||
| { | ||
| //// If the week number is equals 0, it means that the given date belongs to the preceding (week-based) year. | ||
| return GetWeeksInYear(date.Year - 1); | ||
| } | ||
| else | ||
| { | ||
| return weekNumber; | ||
| } |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both branches of this 'if' statement return - consider using '?' to express intent better.
| if (text.Length > 2) | ||
| { | ||
| dayString = GetMillisecondText(value); | ||
| } | ||
| else | ||
| { | ||
| dayString = GetMinuteOrSecondText(value); | ||
| } |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both branches of this 'if' statement write to the same variable - consider using '?' to express intent better.
| if (this.Mode == PickerMode.Default) | ||
| { | ||
| _millisecondColumn.SelectedItem = this.SelectedDate != null ? PickerHelper.GetSelectedItemDefaultValue(_millisecondColumn) : null; | ||
| } | ||
| else | ||
| { | ||
| _millisecondColumn.SelectedItem = this.SelectedDate == null && _internalSelectedDateTime == null ? null : PickerHelper.GetSelectedItemDefaultValue(_millisecondColumn); | ||
| } |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both branches of this 'if' statement write to the same variable - consider using '?' to express intent better.
| if (templateView is ViewCell viewCell) | ||
| { | ||
| return viewCell.View; | ||
| } | ||
| else | ||
| { | ||
| return (View)templateView; | ||
| } |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both branches of this 'if' statement return - consider using '?' to express intent better.
| if (content is ViewCell) | ||
| { | ||
| view = cell.View; | ||
| view = ((ViewCell)content).View; | ||
| } | ||
| else | ||
| { | ||
| view = (View)content; | ||
| } |
Copilot
AI
Nov 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both branches of this 'if' statement write to the same variable - consider using '?' to express intent better.
…o release1.0.8_updates
Description of Change
Release 1.0.8 updates are added
**Unit Test: **

**Output: **
Screen.Recording.2025-11-21.181858.mp4
Screen.Recording.2025-11-21.182319.mp4