private void checkAndCreateServices() {
logger.debug("Check and create missing UPnP services");
+ boolean isOnline = false;
+
for (Device<?, ?, ?> device : upnpService.getRegistry().getDevices()) {
- createService((RemoteDevice) device);
+ if (createService((RemoteDevice) device) == true) {
+ isOnline = true;
+ }
+ }
+
+ if (isOnline == true) {
+ logger.debug("Device was online");
+ putOnline();
+ } else {
+ logger.debug("Device was NOT online");
+ putOffline();
}
checkCreateManualConnection();
}
- private synchronized void createService(RemoteDevice device) {
+ private synchronized boolean createService(RemoteDevice device) {
if (configuration.hostName != null
&& configuration.hostName.equals(device.getIdentity().getDescriptorURL().getHost())) {
String modelName = device.getDetails().getModelDetails().getModelName();
logger.debug("Service rediscovered, clearing caches: {}, {} ({})", modelName, type, udn);
existingService.clearCache();
}
- putOnline();
+ return true;
}
+ return false;
}
private @Nullable SamsungTvService findServiceInstance(String serviceName) {