Seems google does not return custom data during query

This commit is contained in:
Ziver Koc 2021-08-29 22:00:10 +02:00
parent 870d9cbbab
commit 41dfcd0e4f

View file

@ -124,10 +124,10 @@ public class SmartHomeImpl extends SmartHomeApp implements TokenRegistrationList
// Set custom data // Set custom data
JSONObject customDataJson = new JSONObject(); /*JSONObject customDataJson = new JSONObject();
customDataJson.put("type", device.getClass().getSimpleName()); customDataJson.put("type", device.getClass().getSimpleName());
customDataJson.put("id", device.getId()); customDataJson.put("id", device.getId());
deviceBuilder.setCustomData(customDataJson); deviceBuilder.setCustomData(customDataJson);*/
res.payload.devices[i] = deviceBuilder.build(); res.payload.devices[i] = deviceBuilder.build();
} }
@ -179,18 +179,20 @@ public class SmartHomeImpl extends SmartHomeApp implements TokenRegistrationList
for (QueryRequest.Inputs.Payload.Device deviceRequest : ((QueryRequest.Inputs) input).payload.devices) { for (QueryRequest.Inputs.Payload.Device deviceRequest : ((QueryRequest.Inputs) input).payload.devices) {
try { try {
logger.fine("Received query request for: type=" + deviceRequest.getCustomData().get("type") + ", id=" + deviceRequest.getCustomData().get("id")); logger.fine("Received query request for: type=" + deviceRequest.getId());
if (!deviceRequest.getCustomData().containsKey("type") && !deviceRequest.getCustomData().containsKey("id")) String[] deviceIdArray = deviceRequest.getId().split("-");
throw new IllegalArgumentException("Device Type and ID was no supplied: " + deviceRequest.getId()); if (deviceIdArray.length != 2)
throw new IllegalArgumentException("Invalid device ID: " + deviceRequest.getId());
String deviceType = (String) deviceRequest.getCustomData().get("type"); String deviceTypeStr = deviceIdArray[0];
long deviceId = Long.parseLong((String) deviceRequest.getCustomData().get("id")); long deviceId = Long.parseLong(deviceIdArray[1]); // Get the number in the id "Sensor-<number>"
HalAbstractDevice device = null; HalAbstractDevice device;
switch (deviceType) { switch (deviceTypeStr) {
case "Sensor": device = Sensor.getSensor(db, deviceId); break; case "Sensor": device = Sensor.getSensor(db, deviceId); break;
case "Event": device = Event.getEvent(db, deviceId); break; case "Event": device = Event.getEvent(db, deviceId); break;
default: throw new IllegalArgumentException("Unknown device type: " + deviceTypeStr);
} }
logger.fine("Generating response for sensor: " + device.getName() + " (Id: " + device.getId() + ")"); logger.fine("Generating response for sensor: " + device.getName() + " (Id: " + device.getId() + ")");