mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-19 21:20:43 +01:00
couple more repetition fixes
This commit is contained in:
parent
63d39f05e6
commit
8f9c27c344
@ -100,8 +100,7 @@ class RepeatLimitTypePickerDialog(val activity: Activity, var repeatLimit: Int,
|
|||||||
} else {
|
} else {
|
||||||
repeatLimit = repeatLimitDateTime.seconds()
|
repeatLimit = repeatLimitDateTime.seconds()
|
||||||
}
|
}
|
||||||
|
callback(repeatLimit)
|
||||||
view.dialog_radio_view.check(R.id.repeat_type_till_date)
|
dialog.dismiss()
|
||||||
updateRepeatLimitText()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -387,7 +387,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
events.forEach {
|
events.forEach {
|
||||||
startTimes.put(it.id, it.startTS)
|
startTimes.put(it.id, it.startTS)
|
||||||
if (it.repeatLimit >= 0) {
|
if (it.repeatLimit >= 0) {
|
||||||
newEvents.addAll(getEventsRepeatingTillDate(fromTS, toTS, startTimes, getRunningEvents, it))
|
newEvents.addAll(getEventsRepeatingTillDateOrForever(fromTS, toTS, startTimes, getRunningEvents, it))
|
||||||
} else {
|
} else {
|
||||||
newEvents.addAll(getEventsRepeatingXTimes(fromTS, toTS, startTimes, it))
|
newEvents.addAll(getEventsRepeatingXTimes(fromTS, toTS, startTimes, it))
|
||||||
}
|
}
|
||||||
@ -396,10 +396,10 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
return newEvents
|
return newEvents
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getEventsRepeatingTillDate(fromTS: Int, toTS: Int, startTimes: SparseIntArray, getRunningEvents: Boolean, event: Event): ArrayList<Event> {
|
private fun getEventsRepeatingTillDateOrForever(fromTS: Int, toTS: Int, startTimes: SparseIntArray, getRunningEvents: Boolean, event: Event): ArrayList<Event> {
|
||||||
val events = ArrayList<Event>()
|
val events = ArrayList<Event>()
|
||||||
while (event.startTS < toTS && (event.repeatLimit == 0 || event.repeatLimit >= event.startTS)) {
|
while (event.startTS <= toTS && (event.repeatLimit == 0 || event.repeatLimit >= event.startTS)) {
|
||||||
if (event.startTS >= fromTS) {
|
if (event.startTS <= toTS && event.endTS >= fromTS) {
|
||||||
if (event.repeatInterval % WEEK == 0) {
|
if (event.repeatInterval % WEEK == 0) {
|
||||||
if (event.startTS.isTsOnProperDay(event)) {
|
if (event.startTS.isTsOnProperDay(event)) {
|
||||||
if (isOnProperWeek(event, startTimes)) {
|
if (isOnProperWeek(event, startTimes)) {
|
||||||
@ -419,7 +419,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
|
|
||||||
private fun getEventsRepeatingXTimes(fromTS: Int, toTS: Int, startTimes: SparseIntArray, event: Event): ArrayList<Event> {
|
private fun getEventsRepeatingXTimes(fromTS: Int, toTS: Int, startTimes: SparseIntArray, event: Event): ArrayList<Event> {
|
||||||
val events = ArrayList<Event>()
|
val events = ArrayList<Event>()
|
||||||
while (event.repeatLimit < 0 && event.endTS < toTS) {
|
while (event.repeatLimit < 0 && event.startTS <= toTS) {
|
||||||
if (event.repeatInterval != 0 && event.repeatInterval % WEEK == 0) {
|
if (event.repeatInterval != 0 && event.repeatInterval % WEEK == 0) {
|
||||||
if (event.startTS.isTsOnProperDay(event)) {
|
if (event.startTS.isTsOnProperDay(event)) {
|
||||||
if (isOnProperWeek(event, startTimes)) {
|
if (isOnProperWeek(event, startTimes)) {
|
||||||
@ -429,14 +429,13 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
event.repeatLimit++
|
event.repeatLimit++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
event.addIntervalTime()
|
|
||||||
} else {
|
} else {
|
||||||
if (event.startTS >= fromTS && event.startTS < toTS) {
|
if (event.startTS <= toTS && event.endTS >= fromTS) {
|
||||||
events.add(event.copy())
|
events.add(event.copy())
|
||||||
}
|
}
|
||||||
event.addIntervalTime()
|
|
||||||
event.repeatLimit++
|
event.repeatLimit++
|
||||||
}
|
}
|
||||||
|
event.addIntervalTime()
|
||||||
}
|
}
|
||||||
return events
|
return events
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user