- New: Changed
java.util.Calendar
in favor ofjava.time.LocalDate
. - New: Api naming for setting the arrows drawable:
setLeftArrow
andsetRightArrow
- Fix: Range selection ordering & Issues
- Fix: Timezone Issues
- Fix: Now the Month is indexed from 1 to 12 (previously 0-11 due to
java.util
api) - Fix: RTL Support
- Fix: Remove Restored XML Parameters
- Code Style Reformat
- Replaced arrows pngs with vectors
- New: A new xml parameter for choosing selection mode
app:mcv_selectionMode="single"
with the possible values being none, single, multiple and range. Default mode is still single. - Fix: Issue with weekdays not being shown after rotation changes.
- New: Added api for setting long click listener for cells using
void setOnDateLongClickListener(OnDateLongClickListener longClickListener)
. - New: Show and Hide WeekDays row in xml and Programmatically.
- New: Added api for setting content description formatter
void setDayFormatterContentDescription(DayFormatter formatter)
. - New: Apply custom fonts through text appearance styling.
- Fix: Talkback improvements.
- Fix: Range mode selection issues.
- Update: Dependency has now been migrated to Jitpack. Refer to the installation section to install the latest using gradle.
- Update: Gradle has been updated to the latest.
- New: Added set click listener method for title
- New: Added
setSaveCurrentPosition
builder method to use the current position when switching mode - Fix: Fixed title update when only year changed
- Fix: Fixed decorator rendering with custom tile dimensions on API Level 21
- Fix: Added missing
dynamicHeightEnabled
save inonSaveInstanceState()
- Fix: If we used
match_parent
for the MaterialCalendarView but the size available is not enough, the view was truncated
- New: match_parent is now supported by tileSize, tileWidth and tileHeight
- New: api for title animation orientation horizontal/vertical
setTitleAnimationOrientation
- Fix: Issue with custom arrow mask being overwritten when set in xml
- Fix: Issue when clicking date outside of current year would trigger the wrong goToNext or goToPrevious method
- Fix: WeekDayFormatter would overwritten first day of the week
- New: Add select range functionality. Use
setSelectionMode(MaterialCalendarView.SELECTION_MODE_RANGE)
andsetOnRangeSelectedListener
- Breaking Change:
setFirstDayOfWeek
,setMin/MaxDate
, andsetCalendarDisplayMode
are moved to aState
object. Callmcv.state().edit()
to edit them and commit the changes withcommit
. See CUSTOMIZATION_BUILDER for usage details. - Change: Updated documentation regarding 1.3.0 additions
- Fix: Current month and title pager updates correctly if minDate is set after the current month
- Fix: Week number difference calculation correctly accounts for DST offsets. Thanks Igor Levaja!
- Fix: Date formatter uses L instead of M for month (standalone instead of context sensitive)
- New: MCV
goToNext
andgoToPrevious
API to programmatically trigger paging - New: Allow users to click on dates outside of current month with
setAllowClickDaysOutsideCurrentMonth
- New: Set tile width/height separately rather than single tile size
- New: Attributes: mcv_tileWidth, mcv_tileHeight, mcv_calendarMode
- Change:
CalendarMode.WEEK
officially marked@Experimental
, use with caution - Change:
getTileSize
is deprecated, usegetTileWidth
andgetTileHeight
.setTileSize
still works as a convenience method to set width and height at the same time. - Fix: Issue with arrow not enabled when setting maxDate
- Fix: Issue with number of pages not calculated correctly with maxDate causing last page to be unreachable
- Fix: TalkBack content descriptions for pager view, forward/back arrows, and ability to set them manually
- Fix: Crash while in Week mode when
CalendarPagerAdapter#getItemPosition
is called - Fix: Calendar Mode is retained on restore instance state
- Fix: Min/Max date range is retained on restore instance state
- Issue: Week mode - Restore instance state shows the previous week of the one that was saved
- Issue: Week mode - Some combinations of first day of week, min/max date can cause the last week not to be pagable
- Fix: Scrolling for nested view pagers
- Fix: Crash on switching Calendar modes with no days selected
- Fix: Disable paging also disables arrows
- Fix: Allow paging from the entire width of the view
- New: Dynamic Height, the calendar can now resize its height based on the currently visible month
- New: Add single week calendar mode
- New: Ability to disable month swiping with
setPagingEnabled()
- Fix #149: save selected dates as a typed List instead of an array.
- Change: Some performance optimizations
- Fix #143:
flag implementation for
showOtherDates
was a little weird and ambiguous. Clarified and added documentation.
- New: Added ability to select multiple dates or disable selection completely
- Change:
OnDateChangedListener
has becomeOnDateSelectedListener
with different functionality - Change:
showOtherDates
is now a integer flag for finer control over which days are shown - Change:
CalendarDay.toString()
no longer adds one to the month
- Fix: Setting the topbar to invisible didn't correctly resize the view
- Change: Made
DayViewFacade
non final for unit test mocking
- Change: The view now responds better to layout parameters.
The functionality is similar to how
adjustViewBounds
works with ImageView, where the view will try and take up as much space as necessary, but we base it on tile size instead of an aspect ratio. The exception being that if atileSize
is set, that will override everything and set the view to that size. - Fix: Use more efficient method for indexing months
- Fix: Being in certain timezones only showed the last week of the month
- Fix: Decorating with a custom selection drawable now works correctly
- Change: Now detect the first day of the week based off of Locale
- New: You can now change the current month without animating using
setCurrentDate(day, false)
- Fix: Null pointer when trying to remove decorators when none have been added
- Fix: Improve Javadoc
- Fix: Hidding top bar will no longer distort the calendar
- Change: top bar visibility, first day of the week, and tile size are now saved during rotation
- New: DayViewDecorators now support disabling individual days
- New: You can set custom masks for arrows
- New: You can now set the top bar (arrows and title) as no visible
- Change: There are several factory methods on
CalendarDay
which should be used in place of the now deprecated constructors - Bugfix: You can now clear the selected date. Either by passing null or calling
clearSelection()
- New: You can now supply a custom
DayFormatter
to format day labels.
- Change: Revamp DayViewDecorators to be more efficent. See README for differences.
- New: Added ability to change the first day of the month
- New: Added month change listener
- New: Added DayViewDecorator and DayViewFacade to allow for day decorating
- Change: Namespaced library resources. Everything is now prefixed with
mcv_
- New: Widget resizing is now possible by setting the tileSize
- Change: XML layouts are no longer used
- Change: Default tile size is now an integer resource
- New: Customize labels for weekdays and months
- Bugfix: Full fix issue that was supposed to be fixed in 0.2.2
- Bugfix: Text didn't center on RTL apps, default the text alignment to center
- Bugfix: Using
Date
for setting anything in the library wasn't getting set correctly - New: Added
Date
variants for min and max setters
- Start of ChangeLog