(2021-02-14)
- Changed: The
jsr310module now uses core library desugaring, which allows it to be used starting at API 21 instead of API 26.
(2021-02-06)
- Changed: The
emojimodule now initializes automatically on start-up. CallingweekView.enableEmojiProcessing()is no longer necessary. - Fixed: WeekView no longer crashes when accessing
firstVisibleDateandlastVisibleDatebefore the initial render. - Fixed: WeekView now calls
adapter.onRangeChanged()reliably again on API 25 and below.
Thanks for contributing, RemiNV!
(2020-12-30)
- Changed:
firstVisibleHournow returns the first partially visible hour as anIntand takes into accountminHour. To retrieve the first fully visible hour, you can usefirstFullyVisibleHour. - Fixed: WeekView now only calls
onRangeChanged()when a scroll has finished. Previously, it would call it for every date that it scrolled past. - Fixed: WeekView now correctly preserves the first visible date when switching the number of visible days.
- Fixed: WeekView now scrolls correctly when used in the Fragment of a ViewPager.
Thanks to everyone who reported issues!
(2020-11-25)
This release fixes a build issue introduced in the last version.
(2020-11-19)
- New: WeekView can now display blocked times. To enable this,
WeekViewEvent<T>was replaced by the sealed classWeekViewEntity, which can be of typeEvent<T>orBlockedTime. Refer to the wiki to get started. - Changed:
WeekViewDisplayable<T>is now deprecated. Now, submit elements of typeTdirectly to WeekView’s adapter by callingadapter.submitList(List<T>). Then, implementonCreateEntity()in your adapter to create aWeekViewEntityfrom your object. - Changed: The methods for scrolling to specific dates and times have been streamlined. You should now use
scrollToDate(date: Calendar),scrollToTime(hour: Int, minute: Int), andscrollToDateTime(dateTime: Calendar). - Changed: WeekView no longer supports emojis by default. To add emoji support, you must add a dependency to
com.github.thellmund.Android-Week-View:emoji:x.y.zand callweekView.enableEmojiProcessing()before submitting events. - Fixed: WeekView no longer forgets to call
onEmptyViewLongClick()if an empty area in the calendar was long-clicked.
(2020-11-10)
- Fixed: WeekView no longer ignores
goToCurrentTime()if it’s already scrolled to the current date, but not the current time.
Thanks for reporting this, FeFelten!
(2020-11-10)
- Changed: WeekView no longer throws an
IllegalArgumentExceptionifgoToHour()is called with an hour outside the accepted time range. Instead, it coerces the provided argument into the range ofminHourandmaxHour. - Fixed: WeekView no longer renders very short events incorrectly.
- Fixed: WeekView no longer scrolls to the wrong time when calling
goToCurrentTime().
(2020-11-03)
- Fixed: WeekView no longer handles events incorrectly if their time zone is different from the device’s time zone.
- Fixed: WeekView no longer renders the bottom border of multi-day events incorrectly.
(2020-10-20)
This release contains new functionality and includes breaking changes. To get started, take a look at the wiki.
- New: WeekView now works in right-to-left mode.
- New: You can now use
SpannableStringfor event titles and locations to provide custom styling. - New: You can now choose to show the current week number in the header.
- New: You can now elevate the header by providing a header row bottom shadow.
- New: You can now set the text color for weekend date labels via
weekendTextColor. - Changed: WeekView now relies on
WeekView.Adapter<T>for submitting events and providing callbacks. As a consequence, all listeners used for click and scroll callbacks have been removed. - Changed: WeekView now uses
DateFormatterandTimeFormatterto format date and time labels.DateTimeInterpreterhas been deprecated and will be removed soon. - Changed: WeekView now scrolls more naturally. In the process, multiple scrolling-related attributes have been deprecated.
- Changed: WeekView now automatically handles newline characters in date labels. As a consequence, the
singleLineHeaderattributes has been removed. - Changed: WeekView now animates changes to the header height.
- Changed: WeekView now shows all-day events in a vertical arrangement by default. To arrange them horizontally, set
arrangeAllDayEventsVerticallytofalse. - Changed: WeekView no longer uses a generic. As a consequence, you no longer need to use
findViewById<WeekView<T>>. - Changed: WeekView no longer replaces events of months that have already been cached when using a paginated approach. To force-refresh the cache, call
refresh()on an implementation ofWeekView.PagingAdapter. - Fixed: WeekView no longer crashes with a
ConcurrentModificationExceptionwhen submitting new events in quick succession. - Fixed: WeekView no longer renders borders of multi-day events incorrectly.
- Fixed: WeekView no longer draws the day background incorrectly when
minHouris set. - Fixed: WeekView no longer keeps outdated events around if an empty list of events was submitted through
WeekView.SimpleAdapter. - Fixed: WeekView no longer uses incorrect dates for
minDateandmaxDate.
(2020-10-02)
- New: WeekView now works in right-to-left mode.
(2020-10-01)
- New: Changes of the header height are now animated.
- New: All-day events are now arranged vertically by default. To arrange them horizontally, set
arrangeAllDayEventsVerticallytofalse.
(2020-09-30)
- New: You can now set the text color for weekend date labels via
weekendTextColor. - Fixed: WeekView no longer keeps outdated events around if an empty list of events was submitted through
WeekView.SimpleAdapter. - Fixed: WeekView no longer uses incorrect dates for
minDateandmaxDate.
(2020-09-29)
This beta release contains new functionality and includes breaking changes. To get started, take a look at the wiki.
- New: You can now use
SpannableStringfor event titles and locations to provide custom styling. - New: You can now choose to show the current week number in the header.
- New: You can now elevate the header by providing a header row bottom shadow.
- Changed: WeekView now relies on
WeekView.Adapter<T>for submitting events and providing callbacks. As a consequence, all listeners used for click and scroll callbacks have been removed. - Changed: WeekView now uses
DateFormatterandTimeFormatterto format date and time labels.DateTimeInterpreterhas been deprecated and will be removed soon. - Changed: WeekView now scrolls more naturally. In the process, multiple scrolling-related attributes have been deprecated.
- Changed: WeekView now automatically handles newline characters in date labels. As a consequence, the
singleLineHeaderattributes has been removed. - Changed: WeekView no longer uses a generic. As a consequence, you no longer need to use
findViewById<WeekView<T>>. - Changed: WeekView no longer replaces events of months that have already been cached when using a paginated approach. To force-refresh the cache, call
refresh()on an implementation ofWeekView.PagingAdapter. - Fixed: WeekView no longer crashes with a
ConcurrentModificationExceptionwhen submitting new events in quick succession. - Fixed: WeekView no longer renders borders of multi-day events incorrectly.
- Fixed: WeekView no longer draws the day background incorrectly when
minHouris set.
Thanks for contributing, FeFelten!
(2020-05-10)
- Fixed: WeekView would crash if restoring the state before
firstVisibleDatewas initialized.
Thanks for fixing this, shuirna!
(2020-02-09)
- Fixed: WeekView would crash on submitting new events when the previous submit was an empty list of events.
Thanks for reporting the issue, michaelbukachi!
(2020-02-06)
- Fixed:
goToHour(hour)scrolled to the wrong time ifminHourwas set. - Changed:
goToHour(hour)now throws anIllegalArgumentExceptionifhouris outside of the time range constructed byminHourandmaxHour.
Thanks for reporting the issue, Mkryglikov!
(2020-01-30)
- Fixed: Clicks on event chips weren't recognized after zooming in some cases.
Thanks for reporting these issues, Mkryglikov!
(2020-01-19)
- Fixed: Dynamically setting the time column background via
setTimeColumnBackgroundColor()didn't work. - Fixed: When
showFirstDayOfWeekFirst, WeekView would sometimes show the incorrect week.
Thanks for reporting these issues, Huakas!
(2020-01-13)
- Fixed: WeekView no longer crashes when
EmojiCompatis not used in the application.
Thanks for reporting this, Huakas!
(2019-12-09)
- New: Emojis in event titles and locations are now displayed correctly.
- New: When TalkBack is turned on,
WeekViewnow provides accessibility support for interacting with events.
(2019-11-01)
- Fixed: Event chips no longer disappear when scrolling in some cases.
- Fixed: Multi-day all-day events are no longer cut off after the first day.
Thanks for reporting issues, MohammadB72 and verzhbitski!
(2019-09-29)
This release includes many new features and breaking changes.
- New: Providing events to
WeekViewis now easier. Check out the wiki to find out more. - New: You can use JodaTime, JSR-310, and ThreeTenABP with
WeekView. Check out the wiki to find out more. - New: When building a
WeekViewEventviaWeekViewEvent.Builder, you can pass in resource IDs for the title and location. - New: When declaring the style of a
WeekViewEventviaWeekViewEvent.Style.Builder, you can pass in resource IDs for color and dimension properties. - New: You can use custom fonts with
WeekViewby settingfontFamily,typeface, andtextStylein the XML layout file. - New: You can set the text in event chips to adapt to the chip’s height by setting
isAdaptiveEventTextSize = trueorapp:adaptiveEventTextSize="true". - Changed:
WeekViewnow uses AndroidX instead of the old Support Library. - Changed:
WeekViewis now a 100% Kotlin project. - Changed:
WeekViewLoaderis removed; use any of the newEventsLoaders instead. - Changed: The naming of various listeners and setter methods is more unified. Check out the wiki to find out more.
- Changed: Use more extensive caching and reduce redundant
Canvasoperations for better performance. - Changed: The “now line” is now drawn over the entire width of a day.
- Changed: Event chips use anti-aliasing for smoother corner radiuses.
- Changed: The event location is displayed underneath the event title if there is enough space.
- Fixed: Live preview of
WeekViewin Android Studio is working again. - Fixed: Text is no longer being drawn outside of a too-small event chip.
- Fixed: Event clicks are no longer ignored or attributed to the wrong event.
- Fixed: A situation where both
OnEventLongClickListenerandOnEmptyViewLongClickListenerwere called no longer occurs.
Thanks to everyone who contributed to this release and reported issues!
(2019-05-10)
- Changed: The
columnGapattribute is now applied to all days currently visible. Previously, it was not applied to the last day. - Fixed: Calling
goToDate()no longer scrollsWeekViewto the wrong date.
Thanks to everyone who reported issues!
(2019-05-06)
- New: You can now use
WeekViewEvent.Builderto build aWeekViewEvent. - New: The styling of a
WeekViewEventis now done viaWeekViewEvent.Style, which you can construct viaWeekViewEvent.Style.Builder. You can use it to set the background color, text color, border width, border color and text strike-through of the event. - New:
WeekViewnow restores the currently displayed date on configuration changes. - Fixed: Calls to
setHeaderRowTextColor()andsetHeaderRowTextSize()are no longer ignored. - Fixed: Calling
notifyDataSetChanged()results inonMonthChange()being called again. - Fixed: On the day of a time change, 3 AM is no longer being shown twice in the time column.
- Fixed:
onMonthChange()is no longer called unnecessarily.
Thanks to everyone who reported issues!
(2019-03-17)
- New: You can now define the time range to be displayed for each day by setting
minHourandmaxHourin your layout XML, or by callingweekView.setMinHour()andweekView.setMaxHour()in your code. - New: You can now add the option to automatically scroll to the current time when
WeekViewis first displayed by settingshowCurrentTimeFirsttotrue. - New: You can opt to use a multi-line date header by setting
singleLineHeadertofalse. - Fix: The attribute
showNowLineis no longer ignored.
Thanks to Bwaim and Mauker1 for contributing to this release!
(2019-02-15)
- This release fixes a JitPack build error, which caused an exception when adding this library to a project.
(2019-02-15)
- New: Better interoperability with Kotlin by adding nullability information and lambda methods to WeekView
- New: You can limit the date range of the calendar via
weekView.setMinDate(date)andweekView.setMaxDate(date). - New: You can customize the interval of hours displayed in the time column.
- New: You can choose to display the hour separators in the time column.
- New: You can set a custom text color for individual events, via
weekViewEvent.setTextColor(int textColor). - New: The text size of all-day events can now be set via
allDayEventTextSize. The height of all-day event chips will adapt accordingly. In the same breath, this release deprecatesallDayEventHeight. - Improved: Events that span multiple days no longer show a corner radius at the end of a day if they continue on the next day, or at the beginning of a day if they began on the previous day.
- Improved: The paddings in the header have been tweaked to be more consistent.
- Fixed: Events after the change to daylight saving time were displayed on the wrong date.
- Fixed: Changing the number of days no longer scrolls the calendar back to the current date.
- Fixed: When
showFirstDayOfWeekFirstis set, WeekView now displays the correct day, depending on your setting offirstDayOfWeek. - Fixed: While scrolling, the header would sometimes shrink even if all-day events were visible. This is no longer the case.
Thanks Bwaim and cs8898 for contributing to this release!
(2018-12-01)
- Fix bug where
onMonthChangewas called with the wrong month (thanks for submitting the issue, tylermarien!)
(2018-11-25)
- Fix issue where a day’s events weren’t displayed until the user finished scrolling
- Fix bug where events longer than one day weren’t drawn (thanks for the fix, Menthuss!)
(2018-11-14)
- Fix bugs related to day and hour separators (thanks SapuSeven!)
(2018-11-13)
- Update naming of methods and view attributes. While this unfortunately is another breaking change, the updated naming should be more future-prove.
- Add a customizable bottom line below the header (off by default).
- Add a customizable vertical line between the time column and the events area (off by default).
- Add option
horizontalScrollingEnabledto completely disable horizontal scrolling. This is helpful for static calendar views that always show a particular time span. - Save number of visible days on orientation change, so that it doesn’t go back to the initial value after a device rotation.
(2018-11-04)
- Refactor the project for improved understandability (contributions welcome!)
- Change
EventClickListenerto return the class that is provided inonMonthChange(startDate, endDate)instead of aWeekViewEvent
(2018-09-19)
- Introduce attribute
singleDayHorizontalMarginto specify the start and end margin for events in the single-day view
(2018-09-08)
- Introduce
WeekViewDisplayableinterface
- See: original repository