Skip to content

Conversation

@AravindSubramaniyan
Copy link
Collaborator

@AravindSubramaniyan AravindSubramaniyan commented Dec 2, 2025

Feature description

UG Documentation for the Special Date Predicate On Demand on SfCalendar

Purpose/benefits of the feature

The feature allows applications to fetch special-day metadata asynchronously and explicitly trigger re-evaluation of SpecialDayPredicate so that visual indicators update only after new data is available.

Use cases

The feature is an additive enhancement to SfCalendar that introduces an explicit refresh pipeline for re-computing date decorations based on SpecialDayPredicate.
It integrates with existing rendering and theming and does not alter the visual tree or default predicate behavior.

What problem it solves?

This enhancement extends the existing SfCalendar by introducing an explicit refresh mechanism that re-invokes the SpecialDayPredicate across currently realized calendar cells after data fetch completion.

Analysis and design

Provided a public API (e.g., RefreshSpecialDayPredicate()) on SfCalendar to request re-evaluation of SpecialDayPredicate for the visible date range. The API schedules a safe UI-thread invalidation and re-computation of decorators without changing the visual tree.The API is idempotent: multiple invocations without data changes should not cause flicker or redundant work.

Solution description

• RefreshSpecialDayPredicate() sets a refresh, schedules layout on the UI thread, and recomputes cell decorators using current SpecialDayPredicate. Visual tree unchanged; only predicate invocation timing and invalidation pipeline updated.• Prevents evaluation during active layout pass to avoid re-entrancy.

Output screenshots




Added:

  • void SfCalendar.RefreshSpecialDayPredicate(): Requests re-evaluation of SpecialDayPredicate for visible dates.

MR CheckList

  • Have you ensured in iOS, Android, WinUI, and macOS(if supported)?
  • If there is any API change, did you get approval from PLO through JIRA Tasks?
  • Is there any existing behavior change of other features due to this code change?
  • Have you enabled the necessary settings in your project, if you have created any new project?
  • Have you suppressed any warning or binding errors?
  • Did you add a sample in the testbed for your feature?
  • Did you record this case in the unit test or UI test?
  • Whether the new APIs and its comments are added as per standard?
  • Does it contain code that reflects any internal framework API?
  • Have you included license for your control(If it is stable)?
  • Did you ensure the cases mentioned in this link?
  • Did you test the memory leak with your feature?
  • Did you ensure the performance? Check this link to know more about performance optimization and how to automate?
  • Does it need localization? If so, did you ensure the cases mentioned in this link?
  • Does it follow the design system guidelines and support light and dark themes?
  • Did you ensure the new control / feature met accessibility requirements?
  • Did you ensure RTL?
  • If you added any interaction related code, have you used touch and gesture APIs from core project?
  • If you use a third-party package, did you get approval to use it? If not, please get approval before merging.

@AravindSubramaniyan AravindSubramaniyan changed the title 996026 - UG Documentation for the Special Date Predicate On Demand on… 996026 - UG Documentation for the Special Date Predicate On Demand on SfCalendar Dec 2, 2025
@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: 996026-SpecialDateOnDemand

@AravindSubramaniyan AravindSubramaniyan changed the title 996026 - UG Documentation for the Special Date Predicate On Demand on SfCalendar wip:996026 - UG Documentation for the Special Date Predicate On Demand on SfCalendar Dec 2, 2025
@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: 996026-SpecialDateOnDemand
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INQUEUE 🕒
Build Location: 996026-SpecialDateOnDemand

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: 996026-SpecialDateOnDemand

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: 996026-SpecialDateOnDemand
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: 996026-SpecialDateOnDemand

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: 996026-SpecialDateOnDemand
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

>**NOTE**
* The Background color and text style will be applied based on the following order: selectableDayPredicate dates, special dates, disable dates, today date, weekend dates, trailingLeading dates, and normal dates.

* **UpdateSpecialDayPredicate** - The UpdateSpecialDayPredicate feature allows the `SfCalendar` to dynamically update special dates after new data is fetched. You can explicitly trigger a refresh to re-invoke the [SpecialDayPredicate](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Calendar.CalendarMonthView.html#Syncfusion_Maui_Calendar_CalendarMonthView_SpecialDayPredicate), ensuring that visual indicators such as icons, text styles, and backgrounds reflect the latest metadata only after the update. The new [UpdateSpecialDayPredicate]https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Calendar.CalendarMonthView.html#Syncfusion_Maui_Calendar_UpdateSpecialDayPredicate) provides a direct way to force this re-evaluation, guaranteeing that special-day indicators display the most recent data after a refresh.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The UpdateSpecialDayPredicate feature allows the SfCalendar to dynamically update special dates after new data is fetched. You can explicitly trigger a refresh to re invoke the https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Calendar.CalendarMonthView.html#Syncfusion_Maui_Calendar_CalendarMonthView_SpecialDayPredicate, ensuring that visual indicators such as icons, text styles, and backgrounds reflect the latest metadata only after the update. The new https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Calendar.CalendarMonthView.html#Syncfusion_Maui_Calendar_UpdateSpecialDayPredicate method provides a direct way to force this reevaluation, guaranteeing that specialday indicators display the most recent data after a refresh.

@AravindSubramaniyan use this

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ok Sir Removed the unwanted ifen sir

@AravindSubramaniyan AravindSubramaniyan changed the title wip:996026 - UG Documentation for the Special Date Predicate On Demand on SfCalendar 996026 - UG Documentation for the Special Date Predicate On Demand on SfCalendar Dec 9, 2025
@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: 996026-SpecialDateOnDemand

@SyncfusionBuild
Copy link
Contributor

CI Status: FAILURE ❌
Source Compilation: SUCCESS ✅
Failure Reason: CI Failure with violation
Build Location: 996026-SpecialDateOnDemand
Technical Error(s): 0
Spelling Error(s): 1
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@SyncfusionBuild
Copy link
Contributor

Build Status: INPROGRESS 🔃
Build Location: 996026-SpecialDateOnDemand

@SyncfusionBuild
Copy link
Contributor

CI Status: SUCCESS ✅
Source Compilation: SUCCESS ✅
Build Location: 996026-SpecialDateOnDemand
Technical Error(s): 0
Spelling Error(s): 0
Image Alt Text Error(s): 0
Image Size Error(s): 0
Image Name Error(s): 0
Front matter Error(s): 0
File Path Error(s): 0
CodeSnippet File Path Missing Error(s): 0
Toc Anchor Tags Validation Error(s): 0
MD Tag Validation Error(s): 0

@MuniappanSubramanian MuniappanSubramanian merged commit 4149f1e into development Dec 9, 2025
1 check passed
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