Releases: ME-MarvinE/XCalendar
Releases · ME-MarvinE/XCalendar
4.3.1 - Hotfix
Core
- Fixed property
DayOfWeek
not working for days of week other than Monday #102
Full Changelog: 4.3.0...4.3.1
4.3.0 - Core Improvements
General
- Added 'NavigationView Properties' section to PlaygroundPage property panel in sample apps #92
- Changed MAUI sample app to use a flyout menu instead of a tab bar #94
Core
- Added 'TryAdd' and 'TrySubtract' methods to DateTimeExtensions #85 and #87
- Removed
NavigationTimeUnit
enum in favour of usingSystem.TimeSpan
for calendar navigation #90 - Removed properties
ForwardsNavigationAmount
andBackwardsNavigationAmount
from Calendar #84 - Moved method 'NavigateDateTime' in Calendar to DateTimeExtensions and renamed it to 'Navigate' #96
- Changed 'AddWeeks' method's 'value' parameter to be of type
double
instead ofint
in DateTimeExtensions #86 - Renamed method 'NavigateCalendar' to 'Navigate' in Calendar #97
- Fixed crash when Calendar tries to show the first ever or last ever week representable by the
DateTime
struct #88
Forms & MAUI
- Removed 'EnumToStringConverter' and allowed input and parameter of type 'object' to be passed to 'StringCharLimitConverter' #93
Full Changelog: 4.2.1...4.3.0
4.2.1 - Layout Fixes and .NET 7
General
- Added 'Animated Swipable Calendar' example #72
- Updated nuget package icons to be distinct from each other
- Increased Android garbage collection nursery size in sample apps #73
Forms & MAUI
- Fixed arrows not displaying correctly on some devices and other layout fixes #80
MAUI
- Updated MAUI to .NET 7 (7.0.4.9)
- Bumped CommunityToolkit.Maui from 1.3.0 to 3.0.0
4.2.0 - XCalendar.Maui Out of Pre-Release
There is a large performance issue on XCalendar.Maui compared to XCalendar.Forms despite largely sharing the same XAML and code-behind for controls, with both sharing the same logic residing in XCalendar.Core. Because of this I assume this is an issue with .NET MAUI's CollectionView but will continue to look for optimisations.
General
- Bumped nuget packages
- Fixed Multiple layout issues in the Maui sample app
Forms & MAUI
- Removed property 'NavigatedDate' from DaysView. #69
- Renamed CalendarView property 'NavigationTemplate' to 'NavigationViewTemplate'
Forms
- Replaced StackLayouts containing few children with Grids.
MAUI
- Bumped nuget package 'CommunityToolkit.Maui' to 1.3.0
- Removed redundant ContentView in 'DaysView' implementation. This should improve performace.
- Fixed NavigationView layout being left-aligned
4.1.0 - More Calendar Components
You can now create your own CalendarView by using the new controls 'NavgationView' and 'DaysView'.
General
- Added more properties (Mainly colours) to property panel in sample app
- Added colour dialog to sample app
- Added 'Customising A Day' example to sample app
- Removed custom implementation switch in sample app playground page
- Fixed not being able to scroll through property panel in MAUI sample app playground page
- Fixed issues with dialogs in sample app
- Fixed some inconsistencies in the wiki
Core
- Changed the Calendar to not change the
Days
property internally. This was causing unexpected behaviour with bindings. - Fixed default value of
BackwardsNavigationAmount
being 1 instead of -1 in Calendar
Forms & MAUI
- Added 'DaysView' control
- Added 'NavigationView' control
- Removed property
DayNameTextColor
from CalendarView - Removed border properties from 'DayView'. CalendarView's
DayTemplate
can be used to add a border instead. This should improve performance in cases where border properties were not being used. - Renamed 'CalendarDayView' to 'DayView'
- Replaced all occurrences of 'MonthView' with 'DaysView'
- Fixed custom controls'
x:Name
property not being unique (enough). This would sometimes cause incorrect references when using{x:Reference}
.
Forms
- Removed control 'FramedLabel'
MAUI
- Removed control 'BorderedLabel'
- Replaced all occurrences of
Frame
withBorder
- Replaced border strokeshape of
RoundRectangle
withEllipse
where necessary
4.0.0 - Generics and UI Decouple
A calendar can now be represented entirely in code without needing to reference a UI framework.
General
- Added more examples to sample app
Core
- Added interface 'ICalendar'
- Added class 'Calendar'
- Added
IsCurrentMonth
,IsToday
,IsSelected
, andIsInvalid
properties to ICalendarDay - Added event
DaysUpdating
to Calendar. This is invoked at the start of the 'UpdateDays' method. - Removed nullability of DateTime in ICalendarDay
- Removed class 'DefaultCalendarDayResolver'
- Removed interface 'ICalendarDayResolver'
- Removed property
UseCustomDayNamesOrder
from Calendar - Removed property
DayResolver
from Calendar
Forms & MAUI
- Changed CalendarDayView to not have default values and require command properties and
DateTime
,IsCurrentMonth
,IsSelected
,IsToday
, andIsInvalid
to be set manually. - Changed CalendarView to require setting the properties
ForwardsArrowCommand
and theBackwardsArrowCommand
manually - Moved Calendar functionality to XCalendar.Core (XCalendar.Core.Models.Calendar)
-
- Fixed properties
ForwardsArrowComandParameter
andBackwardsArrowCommandParameter
being of type 'ICommand' instead of 'object' in CalendarView
- Fixed properties
Forms
- Replaced use of XCT TouchEffect with TapGestureRecognizers
- Fixed Enums being in namespace 'XCalendar.Core.Enums' instead of 'XCalendar.Forms.Enums'
MAUI
- Removed RangeObservableCollection
- Removed SortableObservableCollection
3.1.0 - ICalendarDay and ICalendarDayResolver
You can now implement the ICalendarDay
interface and make a corresponding ICalendarDayResolver
in order to provide strongly typed references to your models from XAML!
General
- Added
DayResolver
property to CalendarView - Added searchbar to ExamplesPage in sample apps
- Renamed
DayRangeMinimumDate
toNavigationLowerBound
in CalendarView - Renamed
DayRangeMaximumDate
toNavigationUpperBound
in CalendarView - Removed
ClampNavigationToDayRange
from CalendarView.NavigationLowerBound
andNavigationUpperBound
can be used - Renamed
DayState.OutOfRange
toDayState.Invalid
- Removed method
InvalidateDays
in CalendarView - Optimised the updating of MonthView dates in CalendarView
- Fixed
CalendarDay.PropertyChanged
being invoked forDateTime
regardless of if the value changed or not instead
Core
- Added
ICalendarDay
- Added
ICalendarDayResolver
MAUI
- PlaygroundPage no longer crashes in the MAUI sample app on Windows. It was caused by a
GridItemsLayout
being used by the CalendarView. This is now temporarily replaced with aLinearItemsLayout
.
3.0.2
General
- Bump nuget packages
MAUI
- Update to MAUI GA (6.0.312)
3.0.1 - Hotfix
General
- Renamed method 'UpdateView' to 'EvaluateDayState' in CalendarDayView
- Fixed EvaluateDayState not updating the
DayState
in CalendarDayView
3.0.0 - QoL and MAUI
General
- Added nullability to
CalendarDay.DateTime
- Added property
DayState
to CalendarDayView - Added
IsDayState[State]
properties to CalendarDayView for eachDayState
(To help with xamarin/Xamarin.Forms#13571 and dotnet/maui#6849) - Added 'Examples' page to sample app
- Added 'Event Calendar' example to sample app
- Added 'Custom DatePicker Dialog' example to sample app
- Renamed 'MainPage' to 'PlaygroundPage' in sample app
- Added nuget package icon to source control
- Fixed CalendarView dates not updating with
StartOfWeekDayNamesOrder
on initialisation
Forms
- Separated project to 'XCalendar.Forms' and 'XCalendar.Core'
- Renamed project from 'XCalendar' to 'XCalendar.Forms'
MAUI
- Added pre-release for XCalendar.Maui
- The MAUI sample app does not work on Windows in this version. Remove everything from PlaygroundPage to make it work on Windows.