]> git.basschouten.com Git - openhab-addons.git/commitdiff
[homekit] Simplify start level handling (#13914)
authorKai Kreuzer <kai@openhab.org>
Sun, 11 Dec 2022 16:09:31 +0000 (17:09 +0100)
committerGitHub <noreply@github.com>
Sun, 11 Dec 2022 16:09:31 +0000 (17:09 +0100)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/HomekitImpl.java

index 468c1c9b9434aaf6006da0d6a1a9916c2aa16f91..7e4da4a9ac1fe30dd3ae596fc85651132469664f 100644 (file)
@@ -107,7 +107,8 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
         this.metadataRegistry = metadataRegistry;
         this.readyService = readyService;
         networkAddressService.addNetworkAddressChangeListener(this);
-        readyService.registerTracker(this, new ReadyMarkerFilter().withType(StartLevelService.STARTLEVEL_MARKER_TYPE));
+        readyService.registerTracker(this, new ReadyMarkerFilter().withType(StartLevelService.STARTLEVEL_MARKER_TYPE)
+                .withIdentifier(Integer.toString(StartLevelService.STARTLEVEL_STATES)));
     }
 
     private HomekitSettings processConfig(Map<String, Object> properties) {
@@ -152,8 +153,9 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
         try {
             HomekitSettings oldSettings = settings;
             settings = processConfig(config);
-            if ((oldSettings == null) || (settings == null))
+            if ((oldSettings == null) || (settings == null)) {
                 return;
+            }
             if (!oldSettings.name.equals(settings.name) || !oldSettings.pin.equals(settings.pin)
                     || !oldSettings.setupId.equals(settings.setupId)
                     || (oldSettings.networkInterface != null
@@ -177,32 +179,16 @@ public class HomekitImpl implements Homekit, NetworkAddressChangeListener, Ready
 
     @Override
     public synchronized void onReadyMarkerAdded(ReadyMarker readyMarker) {
-        int newLevel = Integer.parseInt(readyMarker.getIdentifier());
-        currentStartLevel = newLevel;
-
-        if (newLevel >= StartLevelService.STARTLEVEL_STATES) {
-            try {
-                startHomekitServer();
-            } catch (IOException | InvalidAlgorithmParameterException e) {
-                logger.warn("could not initialize HomeKit bridge: {}", e.getMessage());
-            }
+        try {
+            startHomekitServer();
+        } catch (IOException | InvalidAlgorithmParameterException e) {
+            logger.warn("could not initialize HomeKit bridge: {}", e.getMessage());
         }
     }
 
     @Override
-    @SuppressWarnings("PMD.EmptyWhileStmt")
     public synchronized void onReadyMarkerRemoved(ReadyMarker readyMarker) {
-        int newLevel = Integer.parseInt(readyMarker.getIdentifier());
-
-        if (currentStartLevel > newLevel) {
-            while (newLevel-- > 0 && !readyService
-                    .isReady(new ReadyMarker(StartLevelService.STARTLEVEL_MARKER_TYPE, Integer.toString(newLevel)))) {
-            }
-            currentStartLevel = newLevel;
-            if (currentStartLevel < StartLevelService.STARTLEVEL_STATES) {
-                stopHomekitServer();
-            }
-        }
+        stopHomekitServer();
     }
 
     private HomekitRoot startBridge(HomekitServer homekitServer, HomekitAuthInfoImpl authInfo,