Skip to content

Latest commit

 

History

History
206 lines (174 loc) · 9.42 KB

CHANGELOG.md

File metadata and controls

206 lines (174 loc) · 9.42 KB

v2.1.8

  • Updated dependencies.
  • Updated translations.

v2.1.7

  • Added Ukrainian translation, thanks to @Serhii_Ka.

v2.1.6

  • Fixed layout issue in 2.1.5.

v2.1.5

  • Add Arabic translation, thanks to @afmbsr.
  • Fix untranslated string in French translation.
  • Mostly a test release for new publishing script.
  • There's a major layout issue in this version! Please use 2.1.6.

v2.1.4

  • Updated kotlin to 1.4.21.
  • Fixed layout issues with constrained width.
  • Fixed missing left and right margin in recurrence picker dialog for API <= 16.
  • Fixed dropdown widgets not wrapping width to content (introduced in 2.0.2).
  • Fixed some issues with weekly recurrence with no days set (aka on same day as start date).
    • Recurrence.toString() now returns "on same day as start date" for this case.
    • RRuleFormatter correctly formats this case which otherwise resulted in invalid RRule.
  • Fix untranslated string in French translation.

v2.1.3

  • Introduced rpListDialogMaxWidth and rpPickerDialogMaxWidth attributes to limit the maximum size of dialogs on screen. Previously dialogs used at least 65% width in portrait and 100% in landscape which resulted in very wide dialogs on large screens. Maximum widths are set to 500dp for both by default.
  • Recurrence.toString() now returns the same output in release builds.
  • Day of week buttons in picker dialog are now bigger on larger screens.
  • Fixed RecurrenceFormatter not adding days of the week for a weekly recurrence recurring on multiple days of which one is the same as start date's.
  • Fixed end date dialog layout on larger screens.
  • Increased Kotlin version to 1.4.0.

v2.1.2

  • Added support for changing time zone in RecurrenceFinder and RRuleFormatter.
  • RecurrenceFinder now returns an empty list instead of an exception when trying to find 0 events.
  • Better Recurrence.Builder syntax when used from Java.
  • Changed date pattern for RRule to date only yyyyMMdd instead of date and time yyyyMMddT000000.
  • Fixed recurrence builder allowing creation of non-equal recurrences of period NONE, leading to equality issues. All recurrences built with NONE period now return the same Recurrence.DOES_NOT_REPEAT instance.
  • Fixed RRuleFormatter not thread-safe due to use of static date format for formatting and parsing.

v2.1.1

  • RecurrencePickerFragment now handles back press by itself.

v2.1.0

  • Backported to API 14.
  • Fixed day of week toggle buttons color on API < 23 (but they don't have shadow anymore).
  • Fixed end date not being set at start of the day (time 00:00:00.000).
  • Fixed end date selection not working on API 21.
  • Fixed end date picker not keeping all state on configuration change. For example if year selection was active, date picker is reset to day selection on configuration change.
  • Fixed end date picker initially showing year 1964 or 2100 on API < 21.

v2.0.3

  • Fixed weekly recurrence missing events on the first week on OEM Samsung devices.

v2.0.2

  • Fixed rare crashes happening in RecurrencePickerSettings unparcelization due to Android bug on API >= 28.

v2.0.1

  • Fixed RecurrencePickerSettings not being unparceled completely.
  • Updated versions of dependencies.

v2.0.0

  • The library was completely rewritten in Kotlin with MVP architecture.
  • Recurrence:
    • Now immutable, can be constructed with Recurrence.Builder in Java or constructor-like syntax in Kotlin.
    • startDate field was removed since it's a property of the event, not the recurrence. isDefault field was also removed. The information set in these fields is now set in byDay and byMonthDay.
    • daySetting was replaced with more standard byDay and byMonthDay fields.
    • period and endType are now enums.
  • RecurrenceFinder:
    • Replaces Recurrence.find methods.
    • Since recurrences don't have a start date anymore, the methods of this class take a startDate parameter.
    • Start date/base date is now included in the returned list of events by default. includeStart can be set to false to prevent this.
    • Fixed yearly recurrence on Feb 29 happening every year on Feb 28.
  • RRuleFormat:
    • Now supports rule parsing.
    • Start date and isDefault no longer included to follow standard.
    • Backward-compatible with v1 RRule format.
    • This is now the recommended way of serializing recurrence objects.
  • RecurrenceSerializer:
    • Replaces Recurrence(byte[]) and Recurrence.toByteArray().
    • Backward-compatible with v1 binary format.
    • Deprecated in favor of RRule serialization.
  • UI:
    • UI was completely changed to follow material design guidelines. Google's material components and themes are used.
    • Dark theme supported out of the box.
    • UI Classes:
      • RecurrenceListDialog: used to select a recurrence from a list of presets.
      • RecurrencePickerDialog: used to create a custom recurrence.
      • RecurrencePickerFragment: same as the dialog but as a fullscreen fragment.
    • RecurrencePickerView was removed, use fragment instead.
    • Navigation must now be done manually which is more flexible. For example:
      • Parent fragment opens RecurrenceListDialog.
      • User clicks on the "Custom..." item which sends the onRecurrenceListCustomClicked callback to parent fragment.
      • Parent fragment decides to show the RecurrencePickerFragment on callback.

v1.6.0

  • Added Recurrence.findRecurrencesBetween to find recurrences between two dates.
  • Added parent fragment as a callback target for the dialog.
  • Fixed date not being set in "until date" date picker dialog.

v1.5.2

  • Fixed German translation.

v1.5.1

  • Fixed default date formats not being set in dialog.

v1.5.0

  • Migrated to AndroidX.
  • Added 5 translations thanks to bezysoftware.

v1.4.5

  • Added 10 translations: Albanian, Czech, German, Italian, Lithuanian, Norwegian, Polish, Russian, Slovak and Turkish.
  • Added strings for AboutLibraries.

v1.4.4

  • Removed 4 strings for faster translation.

v1.4.3

  • Changed "Every 1 day/month/..." formatting to "Every day/month/...".
  • Removed the "Repeats" part of the formatted recurrence.
  • Fixed bug where changing start date of dialog didn't update the text of custom defaults in option list.

v1.4.2

  • Fixed French translation.
  • Fixed bug where days of the week of weekly recurrence were not checked.
  • Target API changed to 28.
  • Better Recurrence toString() method.

v1.4.1

  • Fixed library dependencies not being added to the project

v1.4.0

  • Backported to API 19, re-added AppCompat dependencies

v1.3.1

  • Setting start date on the same day or after end date, or setting end date on the same day as start date will make recurrence become "Does not repeat".
  • Fixed bug where setting end by count to less than 1 didn't change end type to never.
  • Fixed bug where end date could be set on the same day as start date in RecurrencePickerView

v1.3.0

  • Refactored code and created unit tests.
  • Added the RRuleFormat class to convert a Recurrence object to a RFC 5545 recurrence rule string. However, it is still not possible to create a recurrence from a string rule and this feature isn't planned because the recurrence picker only supports a thin subset of what RRule supports.
  • Removed END_BY_DATE_OR_COUNT in recurrence object, which RFC 5545 doesn't support, plus, it wasn't used.
  • Moved formatting methods from Recurrence to new RecurrenceFormat class.
  • Changed isRepeatedOnDayOfWeek to isRepeatedOnDaysOfWeek, accepting multiple days.
  • Added day of week constants for setting weekly day setting, instead of using 1 << Calendar.SUNDAY.

v1.2.6

  • Callbacks can now be made to fragments
  • Changed default dialog buttons style to fit material style

v1.2.4 & 1.2.5

  • Removed AppCompat dependencies
  • Made all RecurrencePickerView.DEFAULT_* constants package-private
  • Prefixed all attributes and strings with rp to avoid mixing them with the user's own attributes
  • Added copyright license header to source files
  • Made some resources private (strings, drawables, colors, layouts)

v1.2.3

  • Fixed Recurrence.isOnSameDay returning wrong result
  • Changed target build API to 27
  • Change license (again) to Apache 2.0
  • Added IntDef annotations for recurrence periods, end types and monthly settings

v1.2.2

  • Made end date picker dialog be restored on configuration change.

v1.2.1

  • Made recurrence object byte array length public
  • Removed RecurrencePickerDialog.newInstance(), it was useless
  • Renamed dialog callbacks to be less general ex. onCancelled becomes onRecurrencePickerCancelled

v1.2.0

  • Setting to change default recurrences in list
  • Renamed some layout files, attributes and styles to follow conventions

v1.1.0

  • Styling attributes for strings: spinner items, option list and days of week
  • Setting to change enabled periods and end types
  • Setting to disable default recurrences list and recurrence creator separatedly
  • Method to serialize recurrence object to byte array and constructor to get it back
  • Changed license from LGPLv3.0 to MIT
  • Added French translation

v1.0.0 (first release)

  • Recurrence picker view and dialog
  • Same recurrence options as all the other pickers
  • Default recurrences list and custom recurrence creator
  • Utilities for formatting and finding recurrences
  • Styling attributes for views
  • Settings
    • Show done and cancel buttons
    • Skip default recurrences list
    • Maximum frequency, end date and end count
    • Default end date and end count