From fb0818f963d5e3edb74cd228d65d4ad3c7960dff Mon Sep 17 00:00:00 2001
From: Menaka Madushanka
Date: Wed, 16 Dec 2015 18:36:13 +0530
Subject: [PATCH] Android Sense device view changes and agent download
---
.../service/impl/AndroidSenseService.java | 87 ++----------------
.../impl/AndroidSenseManagerService.java | 6 +-
.../{androidsene.apk => androidsense.apk} | Bin
.../public/js/download.js | 12 +--
.../type-view.hbs | 81 +++++++---------
5 files changed, 48 insertions(+), 138 deletions(-)
rename features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/agent/{androidsene.apk => androidsense.apk} (100%)
diff --git a/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java b/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java
index 3ce546c3da..3699154040 100644
--- a/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java
+++ b/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java
@@ -40,12 +40,14 @@ import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager;
import org.wso2.carbon.device.mgt.iot.sensormgt.SensorRecord;
import org.wso2.carbon.device.mgt.iot.util.ZipArchive;
import org.wso2.carbon.device.mgt.iot.util.ZipUtil;
+import org.wso2.carbon.utils.CarbonUtils;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import java.io.File;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.Date;
@@ -220,93 +222,24 @@ public class AndroidSenseService {
@Path("manager/device/{sketch_type}/download")
@GET
@Produces("application/octet-stream")
- public Response downloadSketch(@QueryParam("owner") String owner,
- @QueryParam("deviceName") String customDeviceName,
- @PathParam("sketch_type") String sketchType) {
+ public Response downloadSketch(@PathParam("sketch_type") String sketchType) {
//TODO:: null check customDeviceName at UI level
try {
- ZipArchive zipFile = createDownloadFile(owner, customDeviceName, sketchType);
- Response.ResponseBuilder rb = Response.ok(zipFile.getZipFile());
+
+ String sep = File.separator;
+ String sketchFolder = "repository" + sep + "resources" + sep + "sketches" + sep + "android_sense" + sep;
+ String archivesPath = CarbonUtils.getCarbonHome() + sep + sketchFolder;
+
+ Response.ResponseBuilder rb = Response.ok(new File(archivesPath+sep+"androidsense.apk"));
rb.header("Content-Disposition",
- "attachment; filename=\"" + zipFile.getFileName() + "\"");
+ "attachment; filename=\"" + "androidsense.apk" + "\"");
return rb.build();
} catch (IllegalArgumentException ex) {
return Response.status(400).entity(ex.getMessage()).build();//bad request
- } catch (DeviceManagementException ex) {
- return Response.status(500).entity(ex.getMessage()).build();
- } catch (AccessTokenException ex) {
- return Response.status(500).entity(ex.getMessage()).build();
- } catch (DeviceControllerException ex) {
- return Response.status(500).entity(ex.getMessage()).build();
- }
-
- }
-
- private ZipArchive createDownloadFile(String owner, String customDeviceName, String sketchType)
- throws DeviceManagementException, AccessTokenException, DeviceControllerException {
- if (owner == null) {
- throw new IllegalArgumentException("Error on createDownloadFile() Owner is null!");
- }
-
- //create new device id
- String deviceId = shortUUID();
-
- TokenClient accessTokenClient = new TokenClient(AndroidSenseConstants.DEVICE_TYPE);
- AccessTokenInfo accessTokenInfo = accessTokenClient.getAccessToken(owner, deviceId);
-
- //create token
- String accessToken = accessTokenInfo.getAccess_token();
- String refreshToken = accessTokenInfo.getRefresh_token();
- //adding registering data
-
- XmppAccount newXmppAccount = new XmppAccount();
- newXmppAccount.setAccountName(owner + "_" + deviceId);
- newXmppAccount.setUsername(deviceId);
- newXmppAccount.setPassword(accessToken);
- newXmppAccount.setEmail(deviceId + "@wso2.com");
-
- XmppServerClient xmppServerClient = new XmppServerClient();
- xmppServerClient.initControlQueue();
- boolean status;
-
- if (XmppConfig.getInstance().isEnabled()) {
- status = xmppServerClient.createXMPPAccount(newXmppAccount);
- if (!status) {
- String msg =
- "XMPP Account was not created for device - " + deviceId + " of owner - " +
- owner +
- ".XMPP might have been disabled in org.wso2.carbon.device.mgt.iot" +
- ".common.config.server.configs";
- log.warn(msg);
- throw new DeviceManagementException(msg);
- }
- }
-
- //Register the device with CDMF
- String deviceName = customDeviceName + "_" + deviceId;
- status = register(deviceId, owner);
-
- if (!status) {
- String msg = "Error occurred while registering the device with " + "id: " + deviceId
- + " owner:" + owner;
- throw new DeviceManagementException(msg);
}
-
- ZipUtil ziputil = new ZipUtil();
- ZipArchive zipFile = ziputil.downloadSketch(owner, SUPER_TENANT, sketchType, deviceId, deviceName,
- accessToken, refreshToken);
- zipFile.setDeviceId(deviceId);
- return zipFile;
- }
-
- private static String shortUUID() {
- UUID uuid = UUID.randomUUID();
- long l = ByteBuffer.wrap(uuid.toString().getBytes(StandardCharsets.UTF_8)).getLong();
- return Long.toString(l, Character.MAX_RADIX);
}
-
/* Service to push all the sensor data collected by the Android
Called by the Android device */
@Path("controller/sensordata")
diff --git a/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/plugin/impl/AndroidSenseManagerService.java b/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/plugin/impl/AndroidSenseManagerService.java
index 765ddd2ee2..8ed1eb2bac 100644
--- a/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/plugin/impl/AndroidSenseManagerService.java
+++ b/components/device-mgt-iot-androidsense/org.wso2.carbon.device.mgt.iot.androidsense/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/plugin/impl/AndroidSenseManagerService.java
@@ -19,17 +19,17 @@ public class AndroidSenseManagerService implements DeviceManagementService {
return AndroidSenseConstants.DEVICE_TYPE;
}
- @Override
+// @Override
public String getProviderTenantDomain() {
return "carbon.super";
}
- @Override
+// @Override
public boolean isSharedWithAllTenants() {
return true;
}
- @Override
+// @Override
public String[] getSharedTenantsDomain() {
return new String[0];
}
diff --git a/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/agent/androidsene.apk b/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/agent/androidsense.apk
similarity index 100%
rename from features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/agent/androidsene.apk
rename to features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/agent/androidsense.apk
diff --git a/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/public/js/download.js b/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/public/js/download.js
index ec7a6f642a..decb8e9e53 100644
--- a/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/public/js/download.js
+++ b/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/public/js/download.js
@@ -132,20 +132,10 @@ function attachEvents() {
});
}
+//Device owner removed.
function downloadAgent() {
$('#downloadForm').submit();
- var deviceName;
- $('.new-device-name').each(function () {
- if (this.value != "") {
- deviceName = this.value;
- }
- });
- if (deviceName && deviceName.length >= 4) {
- setTimeout(function () {
- hidePopup();
- }, 1000);
- }
}
function doAction(data) {
diff --git a/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs b/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs
index 1de91dcc59..efa5faaff7 100644
--- a/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs
+++ b/features/device-mgt-iot-androidsense-feature/org.wso2.carbon.device.mgt.iot.androidsense.feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android_sense.type-view/type-view.hbs
@@ -2,7 +2,7 @@
Android Sense
Connect your Android device
- to the WSO2 device cloud.
+ to the WSO2 device cloud.
@@ -17,43 +17,11 @@
Android device
-
-
-
Download
-
-
-
-
-
-
Name your device and download the agent from following link.
-
-
-
-
-
-
+
+
+ Enroll Device
+
@@ -195,23 +163,30 @@
-
+
-
- Scan QR code to start enrollment
-
-
- Please scan the QR code using your mobile device to retrieve enrollment URL.
-
-
+
Scan QR code to start enrollment
+
Please scan the QR code using your mobile device to retrieve enrollment URL.
@@ -264,6 +239,18 @@
{{#zone "bottomJs"}}
{{js "/js/download.js"}}
+
{{js "/js/jquery.validate.js"}}
{{/zone}}
-