(2021-02-14)
- Changed: The
jsr310
module now uses core library desugaring, which allows it to be used starting at API 21 instead of API 26.
(2021-02-06)
- Changed: The
emoji
module now initializes automatically on start-up. CallingweekView.enableEmojiProcessing()
is no longer necessary. - Fixed: WeekView no longer crashes when accessing
firstVisibleDate
andlastVisibleDate
before the initial render. - Fixed: WeekView now calls
adapter.onRangeChanged()
reliably again on API 25 and below.
Thanks for contributing, RemiNV!
(2020-12-30)
- Changed:
firstVisibleHour
now returns the first partially visible hour as anInt
and 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 typeT
directly to WeekView’s adapter by callingadapter.submitList(List<T>)
. Then, implementonCreateEntity()
in your adapter to create aWeekViewEntity
from 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.z
and 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
IllegalArgumentException
ifgoToHour()
is called with an hour outside the accepted time range. Instead, it coerces the provided argument into the range ofminHour
andmaxHour
. - 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
SpannableString
for 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
DateFormatter
andTimeFormatter
to format date and time labels.DateTimeInterpreter
has 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
singleLineHeader
attributes 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
arrangeAllDayEventsVertically
tofalse
. - 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
ConcurrentModificationException
when 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
minHour
is 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
minDate
andmaxDate
.
(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
arrangeAllDayEventsVertically
tofalse
.
(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
minDate
andmaxDate
.
(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
SpannableString
for 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
DateFormatter
andTimeFormatter
to format date and time labels.DateTimeInterpreter
has 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
singleLineHeader
attributes 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
ConcurrentModificationException
when 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
minHour
is set.
Thanks for contributing, FeFelten!
(2020-05-10)
- Fixed: WeekView would crash if restoring the state before
firstVisibleDate
was 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 ifminHour
was set. - Changed:
goToHour(hour)
now throws anIllegalArgumentException
ifhour
is outside of the time range constructed byminHour
andmaxHour
.
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
EmojiCompat
is 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,
WeekView
now 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
WeekView
is 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
WeekViewEvent
viaWeekViewEvent.Builder
, you can pass in resource IDs for the title and location. - New: When declaring the style of a
WeekViewEvent
viaWeekViewEvent.Style.Builder
, you can pass in resource IDs for color and dimension properties. - New: You can use custom fonts with
WeekView
by settingfontFamily
,typeface
, andtextStyle
in the XML layout file. - New: You can set the text in event chips to adapt to the chip’s height by setting
isAdaptiveEventTextSize = true
orapp:adaptiveEventTextSize="true"
. - Changed:
WeekView
now uses AndroidX instead of the old Support Library. - Changed:
WeekView
is now a 100% Kotlin project. - Changed:
WeekViewLoader
is removed; use any of the newEventsLoader
s 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
Canvas
operations 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
WeekView
in 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
OnEventLongClickListener
andOnEmptyViewLongClickListener
were called no longer occurs.
Thanks to everyone who contributed to this release and reported issues!
(2019-05-10)
- Changed: The
columnGap
attribute is now applied to all days currently visible. Previously, it was not applied to the last day. - Fixed: Calling
goToDate()
no longer scrollsWeekView
to the wrong date.
Thanks to everyone who reported issues!
(2019-05-06)
- New: You can now use
WeekViewEvent.Builder
to build aWeekViewEvent
. - New: The styling of a
WeekViewEvent
is 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:
WeekView
now 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
minHour
andmaxHour
in 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
WeekView
is first displayed by settingshowCurrentTimeFirst
totrue
. - New: You can opt to use a multi-line date header by setting
singleLineHeader
tofalse
. - Fix: The attribute
showNowLine
is 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
showFirstDayOfWeekFirst
is 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
onMonthChange
was 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
horizontalScrollingEnabled
to 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
EventClickListener
to return the class that is provided inonMonthChange(startDate, endDate)
instead of aWeekViewEvent
(2018-09-19)
- Introduce attribute
singleDayHorizontalMargin
to specify the start and end margin for events in the single-day view
(2018-09-08)
- Introduce
WeekViewDisplayable
interface
- See: original repository