Seems google does not return custom data during query
This commit is contained in:
parent
870d9cbbab
commit
41dfcd0e4f
1 changed files with 11 additions and 9 deletions
|
|
@ -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() + ")");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue