Fixed issue in device type config operation

- Device type config operation throws invalid device identifieres exception when changing configurations without having active devices
merge-requests/6/head
Charitha Goonetilleke 6 years ago
parent 750dcc71c6
commit 211391fb02

@ -24,6 +24,7 @@ import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants; import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.InvalidDeviceException; import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
@ -124,18 +125,20 @@ public class DeviceTypeConfigurationServiceImpl implements DeviceTypeConfigurati
} else if (AndroidConstants.TenantConfigProperties.NOTIFIER_FREQUENCY.equals(entry.getName())) { } else if (AndroidConstants.TenantConfigProperties.NOTIFIER_FREQUENCY.equals(entry.getName())) {
List<Device> deviceList = AndroidAPIUtils. List<Device> deviceList = AndroidAPIUtils.
getDeviceManagementService(). getDeviceManagementService().
getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID, false);
List<DeviceIdentifier> deviceIdList = new ArrayList<>(); List<DeviceIdentifier> deviceIdList = new ArrayList<>();
for (Device device : deviceList) { for (Device device : deviceList) {
if (EnrolmentInfo.Status.REMOVED != device.getEnrolmentInfo().getStatus()) {
deviceIdList.add(new DeviceIdentifier(device.getDeviceIdentifier(), device.getType())); deviceIdList.add(new DeviceIdentifier(device.getDeviceIdentifier(), device.getType()));
} }
}
if (!deviceIdList.isEmpty()) {
if (entry.getValue() != null) { if (entry.getValue() != null) {
NotifierFrequency notifierFrequency = new NotifierFrequency(); NotifierFrequency notifierFrequency = new NotifierFrequency();
notifierFrequency.setValue(Integer.parseInt(entry.getValue().toString())); notifierFrequency.setValue(Integer.parseInt(entry.getValue().toString()));
ProfileOperation operation = new ProfileOperation(); ProfileOperation operation = new ProfileOperation();
operation.setCode(AndroidConstants.OperationCodes.NOTIFIER_FREQUENCY); operation.setCode(AndroidConstants.OperationCodes.NOTIFIER_FREQUENCY);
operation.setPayLoad(notifierFrequency.toJSON()); operation.setPayLoad(notifierFrequency.toJSON());
operation.setType(Operation.Type.CONFIG);
operation.setEnabled(true); operation.setEnabled(true);
AndroidAPIUtils.getDeviceManagementService().addOperation( AndroidAPIUtils.getDeviceManagementService().addOperation(
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID, DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID,
@ -146,6 +149,7 @@ public class DeviceTypeConfigurationServiceImpl implements DeviceTypeConfigurati
} }
} }
} }
}
if (licenseEntry != null) { if (licenseEntry != null) {
configs.remove(licenseEntry); configs.remove(licenseEntry);

@ -25,6 +25,7 @@ import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants; import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
import org.wso2.carbon.device.mgt.common.InvalidDeviceException; import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration; import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
@ -125,18 +126,20 @@ public class DeviceTypeConfigurationServiceImpl implements DeviceTypeConfigurati
} else if (AndroidConstants.TenantConfigProperties.NOTIFIER_FREQUENCY.equals(entry.getName())) { } else if (AndroidConstants.TenantConfigProperties.NOTIFIER_FREQUENCY.equals(entry.getName())) {
List<Device> deviceList = AndroidAPIUtils. List<Device> deviceList = AndroidAPIUtils.
getDeviceManagementService(). getDeviceManagementService().
getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID); getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID, false);
List<DeviceIdentifier> deviceIdList = new ArrayList<>(); List<DeviceIdentifier> deviceIdList = new ArrayList<>();
for (Device device : deviceList) { for (Device device : deviceList) {
if (EnrolmentInfo.Status.REMOVED != device.getEnrolmentInfo().getStatus()) {
deviceIdList.add(new DeviceIdentifier(device.getDeviceIdentifier(), device.getType())); deviceIdList.add(new DeviceIdentifier(device.getDeviceIdentifier(), device.getType()));
} }
}
if (!deviceIdList.isEmpty()) {
if (entry.getValue() != null) { if (entry.getValue() != null) {
NotifierFrequency notifierFrequency = new NotifierFrequency(); NotifierFrequency notifierFrequency = new NotifierFrequency();
notifierFrequency.setValue(Integer.parseInt(entry.getValue().toString())); notifierFrequency.setValue(Integer.parseInt(entry.getValue().toString()));
ProfileOperation operation = new ProfileOperation(); ProfileOperation operation = new ProfileOperation();
operation.setCode(AndroidConstants.OperationCodes.NOTIFIER_FREQUENCY); operation.setCode(AndroidConstants.OperationCodes.NOTIFIER_FREQUENCY);
operation.setPayLoad(notifierFrequency.toJSON()); operation.setPayLoad(notifierFrequency.toJSON());
operation.setType(Operation.Type.CONFIG);
operation.setEnabled(true); operation.setEnabled(true);
AndroidAPIUtils.getDeviceManagementService().addOperation( AndroidAPIUtils.getDeviceManagementService().addOperation(
DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID, DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_ANDROID,
@ -147,6 +150,7 @@ public class DeviceTypeConfigurationServiceImpl implements DeviceTypeConfigurati
} }
} }
} }
}
if (licenseEntry != null) { if (licenseEntry != null) {
configs.remove(licenseEntry); configs.remove(licenseEntry);

Loading…
Cancel
Save