Skip to content

Conversation

@MuniappanSubramanian
Copy link
Collaborator

@MuniappanSubramanian MuniappanSubramanian commented Nov 21, 2025

Description of Change

Release 1.0.8 updates are added

**Unit Test: **
image

**Output: **

Screen.Recording.2025-11-21.181858.mp4
Screen.Recording.2025-11-21.182319.mp4

@PaulAndersonS PaulAndersonS reopened this Nov 24, 2025
@syncfusion syncfusion deleted a comment from Copilot AI Nov 24, 2025
@PaulAndersonS PaulAndersonS marked this pull request as draft November 24, 2025 14:09
@PaulAndersonS PaulAndersonS marked this pull request as ready for review November 24, 2025 14:09
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 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 TranslateTo to TranslateToAsync for .NET 10
  • Replacing ViewCell template handling with direct View casting for .NET 10
  • Updating iOS/MacCatalyst from IgnoreSafeArea to SafeAreaEdges property
  • 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


💡 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)
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
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)
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
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)
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
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)
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
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;
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +447 to +455
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;
}
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +365 to +372
if (text.Length > 2)
{
dayString = GetMillisecondText(value);
}
else
{
dayString = GetMinuteOrSecondText(value);
}
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +2098 to +2105
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);
}
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +376 to 383
if (templateView is ViewCell viewCell)
{
return viewCell.View;
}
else
{
return (View)templateView;
}
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
Comment on lines +120 to 127
if (content is ViewCell)
{
view = cell.View;
view = ((ViewCell)content).View;
}
else
{
view = (View)content;
}
Copy link

Copilot AI Nov 24, 2025

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.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants