Show & hide all-day events at the right time.
This commit is contained in:
parent
b081b9adbb
commit
260e36b305
@ -99,7 +99,7 @@ object SettingsStringHelper {
|
|||||||
TimeUnit.MILLISECONDS.toHours(difference) < 1 && Preferences.widgetUpdateFrequency == Constants.WidgetUpdateFrequency.HIGH.rawValue && TimeUnit.MILLISECONDS.toMinutes(difference) > 5 -> {
|
TimeUnit.MILLISECONDS.toHours(difference) < 1 && Preferences.widgetUpdateFrequency == Constants.WidgetUpdateFrequency.HIGH.rawValue && TimeUnit.MILLISECONDS.toMinutes(difference) > 5 -> {
|
||||||
return DateUtils.getRelativeTimeSpanString(start, start - 1000 * 60 * (TimeUnit.MILLISECONDS.toMinutes(difference) - 1 - (TimeUnit.MILLISECONDS.toMinutes(difference) - 1) % 5), DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE).toString()
|
return DateUtils.getRelativeTimeSpanString(start, start - 1000 * 60 * (TimeUnit.MILLISECONDS.toMinutes(difference) - 1 - (TimeUnit.MILLISECONDS.toMinutes(difference) - 1) % 5), DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE).toString()
|
||||||
}
|
}
|
||||||
TimeUnit.MILLISECONDS.toHours(difference) < 1 && Preferences.widgetUpdateFrequency == Constants.WidgetUpdateFrequency.DEFAULT.rawValue && TimeUnit.MILLISECONDS.toMinutes(difference) > 5 -> {
|
TimeUnit.MILLISECONDS.toHours(difference) < 1 && Preferences.widgetUpdateFrequency == Constants.WidgetUpdateFrequency.DEFAULT.rawValue && TimeUnit.MILLISECONDS.toMinutes(difference) > 15 -> {
|
||||||
return DateUtils.getRelativeTimeSpanString(start, start - 1000 * 60 * (TimeUnit.MILLISECONDS.toMinutes(difference) - 1 - (TimeUnit.MILLISECONDS.toMinutes(difference) - 1) % 15), DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE).toString()
|
return DateUtils.getRelativeTimeSpanString(start, start - 1000 * 60 * (TimeUnit.MILLISECONDS.toMinutes(difference) - 1 - (TimeUnit.MILLISECONDS.toMinutes(difference) - 1) % 15), DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE).toString()
|
||||||
}
|
}
|
||||||
TimeUnit.MILLISECONDS.toHours(difference) < 1 && Preferences.widgetUpdateFrequency == Constants.WidgetUpdateFrequency.LOW.rawValue -> {
|
TimeUnit.MILLISECONDS.toHours(difference) < 1 && Preferences.widgetUpdateFrequency == Constants.WidgetUpdateFrequency.LOW.rawValue -> {
|
||||||
|
@ -88,15 +88,17 @@ class UpdateCalendarService : Service() {
|
|||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
val provider = CalendarProvider(this@UpdateCalendarService)
|
val provider = CalendarProvider(this@UpdateCalendarService)
|
||||||
val data = provider.getInstances(begin.timeInMillis, limit.timeInMillis)
|
val data = provider.getInstances(
|
||||||
|
begin.timeInMillis + begin.timeZone.getOffset(begin.timeInMillis).coerceAtMost(0),
|
||||||
|
limit.timeInMillis + limit.timeZone.getOffset(limit.timeInMillis).coerceAtLeast(0)
|
||||||
|
)
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
val instances = data.list
|
val instances = data.list
|
||||||
for (instance in instances) {
|
for (instance in instances) {
|
||||||
try {
|
try {
|
||||||
val e = provider.getEvent(instance.eventId)
|
val e = provider.getEvent(instance.eventId)
|
||||||
if (e != null && !e.deleted && instance.begin <= limit.timeInMillis && now.timeInMillis < instance.end && !CalendarHelper.getFilteredCalendarIdList()
|
if (e == null || e.deleted || CalendarHelper.getFilteredCalendarIdList().contains(e.calendarId))
|
||||||
.contains(e.calendarId)
|
continue
|
||||||
) {
|
|
||||||
if (e.allDay) {
|
if (e.allDay) {
|
||||||
val start = Calendar.getInstance()
|
val start = Calendar.getInstance()
|
||||||
start.timeInMillis = instance.begin
|
start.timeInMillis = instance.begin
|
||||||
@ -107,7 +109,10 @@ class UpdateCalendarService : Service() {
|
|||||||
instance.end =
|
instance.end =
|
||||||
end.timeInMillis - end.timeZone.getOffset(end.timeInMillis)
|
end.timeInMillis - end.timeZone.getOffset(end.timeInMillis)
|
||||||
}
|
}
|
||||||
|
if (instance.begin <= limit.timeInMillis && now.timeInMillis < instance.end) {
|
||||||
|
/* Following check may result in "fake" all-day events with
|
||||||
|
* non-UTC start/end time, and therefore cannot be found by
|
||||||
|
* Calendar when tapped to open details.
|
||||||
// Check all day events
|
// Check all day events
|
||||||
val startDate = Calendar.getInstance()
|
val startDate = Calendar.getInstance()
|
||||||
startDate.timeInMillis = instance.begin
|
startDate.timeInMillis = instance.begin
|
||||||
@ -124,6 +129,7 @@ class UpdateCalendarService : Service() {
|
|||||||
&& endDate.get(Calendar.MINUTE) == 0
|
&& endDate.get(Calendar.MINUTE) == 0
|
||||||
&& endDate.get(Calendar.HOUR_OF_DAY) == 0
|
&& endDate.get(Calendar.HOUR_OF_DAY) == 0
|
||||||
)
|
)
|
||||||
|
*/
|
||||||
|
|
||||||
eventList.add(
|
eventList.add(
|
||||||
Event(
|
Event(
|
||||||
@ -133,7 +139,7 @@ class UpdateCalendarService : Service() {
|
|||||||
startDate = instance.begin,
|
startDate = instance.begin,
|
||||||
endDate = instance.end,
|
endDate = instance.end,
|
||||||
calendarID = e.calendarId.toInt(),
|
calendarID = e.calendarId.toInt(),
|
||||||
allDay = isAllDay,
|
allDay = e.allDay,
|
||||||
address = e.eventLocation ?: "",
|
address = e.eventLocation ?: "",
|
||||||
selfAttendeeStatus = e.selfAttendeeStatus.toInt(),
|
selfAttendeeStatus = e.selfAttendeeStatus.toInt(),
|
||||||
availability = e.availability
|
availability = e.availability
|
||||||
|
Loading…
x
Reference in New Issue
Block a user