mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
add repeat limit to exported events if available
This commit is contained in:
@@ -35,7 +35,7 @@ class IcsExporter {
|
|||||||
event.endTS.let { out.writeLn("$DTEND:${Formatter.getExportedTime(it)}") }
|
event.endTS.let { out.writeLn("$DTEND:${Formatter.getExportedTime(it)}") }
|
||||||
}
|
}
|
||||||
|
|
||||||
fillRepeatInterval(event.repeatInterval, out)
|
fillRepeatInterval(event, out)
|
||||||
|
|
||||||
out.writeLn("$STATUS$CONFIRMED")
|
out.writeLn("$STATUS$CONFIRMED")
|
||||||
out.writeLn(END_EVENT)
|
out.writeLn(END_EVENT)
|
||||||
@@ -52,21 +52,27 @@ class IcsExporter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun fillRepeatInterval(repeatInterval: Int, out: BufferedWriter) {
|
private fun fillRepeatInterval(event: Event, out: BufferedWriter) {
|
||||||
|
val repeatInterval = event.repeatInterval
|
||||||
if (repeatInterval == 0)
|
if (repeatInterval == 0)
|
||||||
return
|
return
|
||||||
|
|
||||||
val freq = getFreq(repeatInterval)
|
val freq = getFreq(repeatInterval)
|
||||||
val interval = getInterval(repeatInterval)
|
val interval = getInterval(repeatInterval)
|
||||||
val rrule = "$RRULE=$FREQ=$freq;$INTERVAL=$interval"
|
val repeatLimit = getRepeatLimitString(event)
|
||||||
|
val rrule = "$RRULE$FREQ=$freq;$INTERVAL=$interval$repeatLimit"
|
||||||
out.writeLn(rrule)
|
out.writeLn(rrule)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getFreq(interval: Int) = when (interval) {
|
private fun getFreq(interval: Int): String {
|
||||||
DAY -> DAILY
|
return if (interval % YEAR == 0)
|
||||||
WEEK -> WEEKLY
|
YEARLY
|
||||||
MONTH -> MONTHLY
|
else if (interval % MONTH == 0)
|
||||||
else -> YEARLY
|
MONTHLY
|
||||||
|
else if (interval % WEEK == 0)
|
||||||
|
WEEKLY
|
||||||
|
else
|
||||||
|
DAILY
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getInterval(interval: Int): Int {
|
private fun getInterval(interval: Int): Int {
|
||||||
@@ -79,4 +85,11 @@ class IcsExporter {
|
|||||||
else
|
else
|
||||||
interval / DAY
|
interval / DAY
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getRepeatLimitString(event: Event): String {
|
||||||
|
return if (event.repeatLimit == 0)
|
||||||
|
""
|
||||||
|
else
|
||||||
|
";$UNTIL=${Formatter.getDayCodeFromTS(event.repeatLimit)}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user