]> git.basschouten.com Git - openhab-addons.git/commitdiff
[icalendar] Use cache folder to store calendar file (#9911)
authorChristoph Weitkamp <github@christophweitkamp.de>
Sun, 24 Jan 2021 20:07:43 +0000 (21:07 +0100)
committerGitHub <noreply@github.com>
Sun, 24 Jan 2021 20:07:43 +0000 (12:07 -0800)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
bundles/org.openhab.binding.icalendar/src/main/java/org/openhab/binding/icalendar/internal/handler/ICalendarHandler.java

index 916017b0e30ff08b8ce463ec509d25768ef5615d..632a818f3a5e5c3786780e1f095af4e174652e04 100644 (file)
@@ -85,8 +85,14 @@ public class ICalendarHandler extends BaseBridgeHandler implements CalendarUpdat
             TimeZoneProvider tzProvider) {
         super(bridge);
         this.httpClient = httpClient;
-        calendarFile = new File(OpenHAB.getUserDataFolder() + File.separator
-                + getThing().getUID().getAsString().replaceAll("[<>:\"/\\\\|?*]", "_") + ".ical");
+        final File cacheFolder = new File(new File(OpenHAB.getUserDataFolder(), "cache"),
+                "org.openhab.binding.icalendar");
+        if (!cacheFolder.exists()) {
+            logger.debug("Creating cache folder '{}'", cacheFolder.getAbsolutePath());
+            cacheFolder.mkdirs();
+        }
+        calendarFile = new File(cacheFolder,
+                getThing().getUID().getAsString().replaceAll("[<>:\"/\\\\|?*]", "_") + ".ical");
         eventPublisherCallback = eventPublisher;
         updateStatesLastCalledTime = Instant.now();
         this.tzProvider = tzProvider;