add handling for yearly event rule exporting

This commit is contained in:
tibbi
2018-05-10 20:58:11 +02:00
parent 3ca94c9635
commit 0779d6fd96

View File

@@ -104,8 +104,9 @@ class Parser {
val freq = getFreq(repeatInterval) val freq = getFreq(repeatInterval)
val interval = getInterval(repeatInterval) val interval = getInterval(repeatInterval)
val repeatLimit = getRepeatLimitString(event) val repeatLimit = getRepeatLimitString(event)
val byMonth = getByMonth(event)
val byDay = getByDay(event) val byDay = getByDay(event)
return "$FREQ=$freq;$INTERVAL=$interval$repeatLimit$byDay" return "$FREQ=$freq;$INTERVAL=$interval$repeatLimit$byMonth$byDay"
} }
private fun getFreq(interval: Int) = when { private fun getFreq(interval: Int) = when {
@@ -128,12 +129,20 @@ class Parser {
else -> ";$UNTIL=${Formatter.getDayCodeFromTS(event.repeatLimit)}" else -> ";$UNTIL=${Formatter.getDayCodeFromTS(event.repeatLimit)}"
} }
private fun getByMonth(event: Event) = when {
event.repeatInterval.isXYearlyRepetition() -> {
val start = Formatter.getDateTimeFromTS(event.startTS)
";$BYMONTH=${start.monthOfYear}"
}
else -> ""
}
private fun getByDay(event: Event) = when { private fun getByDay(event: Event) = when {
event.repeatInterval.isXWeeklyRepetition() -> { event.repeatInterval.isXWeeklyRepetition() -> {
val days = getByDayString(event.repeatRule) val days = getByDayString(event.repeatRule)
";$BYDAY=$days" ";$BYDAY=$days"
} }
event.repeatInterval.isXMonthlyRepetition() -> when (event.repeatRule) { event.repeatInterval.isXMonthlyRepetition() || event.repeatInterval.isXYearlyRepetition() -> when (event.repeatRule) {
REPEAT_LAST_DAY -> ";$BYMONTHDAY=-1" REPEAT_LAST_DAY -> ";$BYMONTHDAY=-1"
REPEAT_ORDER_WEEKDAY_USE_LAST, REPEAT_ORDER_WEEKDAY -> { REPEAT_ORDER_WEEKDAY_USE_LAST, REPEAT_ORDER_WEEKDAY -> {
val start = Formatter.getDateTimeFromTS(event.startTS) val start = Formatter.getDateTimeFromTS(event.startTS)