Fixed a bug where null device are returned on sync request

This commit is contained in:
Ziver Koc 2021-10-10 02:40:18 +02:00
parent b6a0e39ac3
commit 370fecaa8a

View file

@ -108,10 +108,8 @@ public class SmartHomeImpl extends SmartHomeApp implements OAuth2TokenRegistrati
logger.log(Level.WARNING, "Unable to retrieve devices.", e);
}
res.payload.agentUserId = userAgent;
res.payload.devices = new SyncResponse.Payload.Device[deviceList.size()];
for (int i = 0; i < res.payload.devices.length; i++) {
HalAbstractDevice device = deviceList.get(i);
ArrayList<SyncResponse.Payload.Device> responseDeviceList = new ArrayList<>(deviceList.size());
for (HalAbstractDevice device : deviceList) {
DeviceType type = DeviceType.getType(device);
DeviceTrait[] traits = DeviceTraitFactory.getTraits(device);
@ -156,9 +154,13 @@ public class SmartHomeImpl extends SmartHomeApp implements OAuth2TokenRegistrati
customDataJson.put("id", device.getId());
deviceBuilder.setCustomData(customDataJson);
res.payload.devices[i] = deviceBuilder.build();
responseDeviceList.add(deviceBuilder.build());
}
res.payload.agentUserId = userAgent;
res.payload.devices = responseDeviceList.toArray(
new SyncResponse.Payload.Device[responseDeviceList.size()]);
return res;
}