]> git.basschouten.com Git - openhab-addons.git/commitdiff
[icalendar] Adding ability to handle events without DTEND (#12482)
authorGaël L'hopital <gael@lhopital.org>
Sat, 19 Mar 2022 07:52:17 +0000 (08:52 +0100)
committerGitHub <noreply@github.com>
Sat, 19 Mar 2022 07:52:17 +0000 (08:52 +0100)
Signed-off-by: clinique <gael@lhopital.org>
bundles/org.openhab.binding.icalendar/src/main/java/org/openhab/binding/icalendar/internal/logic/BiweeklyPresentableCalendar.java

index 935932328bc14c40cd4daf386fd0d157e65c8aa2..02d64bbdf5e0b8cca860fa215a054bdddeb26ac3 100644 (file)
@@ -64,6 +64,7 @@ import biweekly.util.com.google.ical.compat.javautil.DateIterator;
  */
 @NonNullByDefault
 class BiweeklyPresentableCalendar extends AbstractPresentableCalendar {
+    private static final Duration ONE_DAY = Duration.ofDays(1).minusNanos(1);
     private final ICalendar usedCalendar;
 
     BiweeklyPresentableCalendar(InputStream streamed) throws IOException, CalendarException {
@@ -343,11 +344,14 @@ class BiweeklyPresentableCalendar extends AbstractPresentableCalendar {
             return Duration.ofMillis(eventDuration.toMillis());
         }
         final DateStart start = vEvent.getDateStart();
-        final DateEnd end = vEvent.getDateEnd();
-        if (start == null || end == null) {
+        if (start == null) {
             return null;
         }
-        return Duration.between(start.getValue().toInstant(), end.getValue().toInstant());
+        final DateEnd end = vEvent.getDateEnd();
+        if (end != null) {
+            return Duration.between(start.getValue().toInstant(), end.getValue().toInstant());
+        }
+        return start.getValue().hasTime() ? Duration.ZERO : ONE_DAY;
     }
 
     /**