From 0cb946db672843e89f6d67eb7c14d7607044a5da Mon Sep 17 00:00:00 2001 From: Jihun Ha Date: Mon, 18 Jul 2016 21:53:07 +0900 Subject: [PATCH] [Update] change Api desgin and modify function & data structure naming issue. - Add comments for doxygen - Initailize step logic change chage the logic for user can select target device. createRemoteEnrollee() -> createRemoteEnrollee(OC::OCResource* ) initRemoteEnrollee() -> deleted - callback function signature change setXXX(), startXXX(Callback) -> startXXX( setdata, Callback) - modify function's name requsetPropertyData -> getConfiguration startSecurityProvisioning -> configureSecurity startDataProvisioning -> provisionDeviceProperties startCloudProvisioning -> provisionCloudProperties - modify datastructure's name propertyData -> EnrolleeConf NetworkInfo -> WiFiConfig DeviceProvInfo -> DeviceProp CloudInfo -> CloudProp Change-Id: I084cbb821ba26b303aaebbcab96da2fc52fe8429 Signed-off-by: Heewon Park Signed-off-by: Jihun Ha Reviewed-on: https://gerrit.iotivity.org/gerrit/9407 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- service/easy-setup/mediator/richsdk/SConscript | 4 +- .../{CloudProvInfo.java => CloudProp.java} | 4 +- ...ack.java => CloudPropProvisioningCallback.java} | 6 +- ...tatus.java => CloudPropProvisioningStatus.java} | 4 +- .../service/easysetup/mediator/DeviceConfig.java | 9 +- .../{DataProvInfo.java => DeviceProp.java} | 4 +- ...ck.java => DevicePropProvisioningCallback.java} | 6 +- ...atus.java => DevicePropProvisioningStatus.java} | 11 +- .../service/easysetup/mediator/EasySetup.java | 47 ++- .../{PropertyData.java => EnrolleeConf.java} | 12 +- ...Callback.java => GetConfigurationCallback.java} | 6 +- ...ningStatus.java => GetConfigurationStatus.java} | 19 +- .../service/easysetup/mediator/RemoteEnrollee.java | 60 ++-- .../mediator/SecurityProvisioningCallback.java | 2 +- .../mediator/{NetworkInfo.java => WiFiConfig.java} | 6 +- .../easysetup/mediator/enums/ESDataProvState.java | 53 ---- ... => JniCloudPropProvisioningStatusListener.cpp} | 40 +-- ....h => JniCloudPropProvisioningStatusListener.h} | 16 +- ...=> JniDevicePropProvisioningStatusListener.cpp} | 42 ++- ...h => JniDevicePropProvisioningStatusListener.h} | 14 +- .../mediator/richsdk/android/jni/JniEasySetup.cpp | 40 ++- .../mediator/richsdk/android/jni/JniEasySetup.h | 3 +- .../mediator/richsdk/android/jni/JniEsUtils.cpp | 12 +- .../mediator/richsdk/android/jni/JniEsUtils.h | 4 +- ...r.cpp => JniGetConfigurationStatusListener.cpp} | 81 +++-- ...tener.h => JniGetConfigurationStatusListener.h} | 14 +- .../mediator/richsdk/android/jni/JniJvm.cpp | 80 ++--- .../mediator/richsdk/android/jni/JniJvm.h | 20 +- .../richsdk/android/jni/JniRemoteEnrollee.cpp | 177 ++++------- .../richsdk/android/jni/JniRemoteEnrollee.h | 61 ++-- .../mediator/richsdk/inc/CloudResource.h | 8 +- .../easy-setup/mediator/richsdk/inc/ESRichCommon.h | 71 ++--- .../easy-setup/mediator/richsdk/inc/EasySetup.h | 21 +- .../mediator/richsdk/inc/EnrolleeResource.h | 50 +-- .../mediator/richsdk/inc/EnrolleeSecurity.h | 8 +- .../mediator/richsdk/inc/RemoteEnrollee.h | 87 +++--- .../mediator/richsdk/src/CloudResource.cpp | 36 +-- .../easy-setup/mediator/richsdk/src/EasySetup.cpp | 4 +- .../mediator/richsdk/src/EnrolleeResource.cpp | 135 ++++---- .../mediator/richsdk/src/EnrolleeSecurity.cpp | 12 +- .../mediator/richsdk/src/RemoteEnrollee.cpp | 195 ++++-------- .../service/easysetup/EasysetupActivity.java | 341 ++++++++++++--------- .../app/src/main/res/layout/easysetup_main.xml | 38 +-- 43 files changed, 835 insertions(+), 1028 deletions(-) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{CloudProvInfo.java => CloudProp.java} (94%) mode change 100755 => 100644 rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{CloudProvisioningCallback.java => CloudPropProvisioningCallback.java} (80%) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{CloudProvisioningStatus.java => CloudPropProvisioningStatus.java} (93%) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{DataProvInfo.java => DeviceProp.java} (94%) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{RequestPropertyDataCallback.java => DevicePropProvisioningCallback.java} (79%) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{RequestPropertyDataStatus.java => DevicePropProvisioningStatus.java} (79%) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{PropertyData.java => EnrolleeConf.java} (84%) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{DataProvisioningCallback.java => GetConfigurationCallback.java} (82%) rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{DataProvisioningStatus.java => GetConfigurationStatus.java} (69%) mode change 100644 => 100755 service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RemoteEnrollee.java rename service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/{NetworkInfo.java => WiFiConfig.java} (88%) delete mode 100644 service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/enums/ESDataProvState.java rename service/easy-setup/mediator/richsdk/android/jni/{JniCloudProvisioningStatusListener.cpp => JniCloudPropProvisioningStatusListener.cpp} (64%) rename service/easy-setup/mediator/richsdk/android/jni/{JniCloudProvisioningStatusListener.h => JniCloudPropProvisioningStatusListener.h} (73%) rename service/easy-setup/mediator/richsdk/android/jni/{JniDataProvisioningStatusListener.cpp => JniDevicePropProvisioningStatusListener.cpp} (61%) mode change 100644 => 100755 rename service/easy-setup/mediator/richsdk/android/jni/{JniRequestPropertyDataStatusListener.h => JniDevicePropProvisioningStatusListener.h} (71%) rename service/easy-setup/mediator/richsdk/android/jni/{JniRequestPropertyDataStatusListener.cpp => JniGetConfigurationStatusListener.cpp} (57%) rename service/easy-setup/mediator/richsdk/android/jni/{JniDataProvisioningStatusListener.h => JniGetConfigurationStatusListener.h} (75%) mode change 100644 => 100755 service/easy-setup/mediator/richsdk/inc/EasySetup.h diff --git a/service/easy-setup/mediator/richsdk/SConscript b/service/easy-setup/mediator/richsdk/SConscript index f3600cf..3986cef 100644 --- a/service/easy-setup/mediator/richsdk/SConscript +++ b/service/easy-setup/mediator/richsdk/SConscript @@ -135,8 +135,8 @@ print "Files path is %s" % env.get('es_src') ###################################################################### # Build RichSDK Mediator Sample App ################################################ ###################### -if target_os in ['linux']: - SConscript('../../sampleapp/mediator/linux/richsdk_sample/SConscript') +#if target_os in ['linux']: +# SConscript('../../sampleapp/mediator/linux/richsdk_sample/SConscript') ###################################################################### #Build UnitTestcases for Mediator[RichSDK] diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvInfo.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProp.java old mode 100755 new mode 100644 similarity index 94% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvInfo.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProp.java index ebe7a97..88a3862 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvInfo.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProp.java @@ -24,13 +24,13 @@ package org.iotivity.service.easysetup.mediator; * This class contains on cloud provisioning information. * It implements ProvisioningInfo interface and provide configuration object specific to cloud registration */ -public class CloudProvInfo { +public class CloudProp { private final String mAuthCode; private final String mAuthProvider; private final String mCiServer; - public CloudProvInfo(String authCode, String authProvider, String ciServer) { + public CloudProp(String authCode, String authProvider, String ciServer) { mAuthCode = authCode; mAuthProvider = authProvider; mCiServer = ciServer; diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvisioningCallback.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudPropProvisioningCallback.java similarity index 80% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvisioningCallback.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudPropProvisioningCallback.java index 7e7aeb5..ab77429 100755 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvisioningCallback.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudPropProvisioningCallback.java @@ -20,9 +20,9 @@ package org.iotivity.service.easysetup.mediator; -import org.iotivity.service.easysetup.mediator.CloudProvisioningStatus; +import org.iotivity.service.easysetup.mediator.CloudPropProvisioningStatus; -public abstract class CloudProvisioningCallback { - public abstract void onProgress(CloudProvisioningStatus status); +public abstract class CloudPropProvisioningCallback { + public abstract void onProgress(CloudPropProvisioningStatus status); } diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvisioningStatus.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudPropProvisioningStatus.java similarity index 93% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvisioningStatus.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudPropProvisioningStatus.java index 3193903..f78643f 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudProvisioningStatus.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/CloudPropProvisioningStatus.java @@ -27,12 +27,12 @@ import org.iotivity.service.easysetup.mediator.enums.ESResult; * This interface facilitates Application to get progress & result of Cloud provisioning * process in easy setup */ -public class CloudProvisioningStatus +public class CloudPropProvisioningStatus { private ESResult m_result; private ESCloudProvState m_esCloudState; - public CloudProvisioningStatus(int result, int state) + public CloudPropProvisioningStatus(int result, int state) { m_result = ESResult.fromInt(result); m_esCloudState = ESCloudProvState.fromInt(state); diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DeviceConfig.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DeviceConfig.java index 8bf6e5e..fdf8500 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DeviceConfig.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DeviceConfig.java @@ -22,24 +22,17 @@ package org.iotivity.service.easysetup.mediator; public class DeviceConfig { - private final String mId; private final String mName; private final String mLanguage; private final String mCountry; - public DeviceConfig(String id, String name, String language, String country) + public DeviceConfig(String name, String language, String country) { - mId = id; mName = name; mLanguage = language; mCountry = country; } - public String getId() - { - return mId; - } - public String getName() { return mName; diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvInfo.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DeviceProp.java similarity index 94% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvInfo.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DeviceProp.java index cd0dfeb..dfcde44 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvInfo.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DeviceProp.java @@ -27,7 +27,7 @@ import org.iotivity.service.easysetup.mediator.enums.WIFI_ENCTYPE; * This class contains on data provisioning information. * It implements ProvisioningInfo interface and provide configuration object specific to data registration */ -public class DataProvInfo { +public class DeviceProp { private final String mSsid; private final String mPwd; @@ -36,7 +36,7 @@ public class DataProvInfo { private final String mLanguage; private final String mCountry; - public DataProvInfo(String ssid, String pwd, WIFI_AUTHTYPE authType, WIFI_ENCTYPE encType, + public DeviceProp(String ssid, String pwd, WIFI_AUTHTYPE authType, WIFI_ENCTYPE encType, String language, String country) { mSsid = ssid; diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RequestPropertyDataCallback.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DevicePropProvisioningCallback.java similarity index 79% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RequestPropertyDataCallback.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DevicePropProvisioningCallback.java index a1e76fe..2d8145a 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RequestPropertyDataCallback.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DevicePropProvisioningCallback.java @@ -20,8 +20,8 @@ package org.iotivity.service.easysetup.mediator; -import org.iotivity.service.easysetup.mediator.RequestPropertyDataCallback; +import org.iotivity.service.easysetup.mediator.DevicePropProvisioningStatus; -public abstract class RequestPropertyDataCallback { - public abstract void onProgress(RequestPropertyDataStatus status); +public abstract class DevicePropProvisioningCallback { + public abstract void onProgress(DevicePropProvisioningStatus status); } diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RequestPropertyDataStatus.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DevicePropProvisioningStatus.java similarity index 79% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RequestPropertyDataStatus.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DevicePropProvisioningStatus.java index 5965e1c..1ed97e9 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RequestPropertyDataStatus.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DevicePropProvisioningStatus.java @@ -22,24 +22,17 @@ package org.iotivity.service.easysetup.mediator; import org.iotivity.service.easysetup.mediator.enums.ESResult; -public class RequestPropertyDataStatus +public class DevicePropProvisioningStatus { private ESResult m_result; - private PropertyData m_propertyData; - public RequestPropertyDataStatus(int result, PropertyData data) + public DevicePropProvisioningStatus(int result) { m_result = ESResult.fromInt(result); - m_propertyData = data; } public ESResult getESResult() { return m_result; } - - public PropertyData getPropertyData() - { - return m_propertyData; - } }; diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/EasySetup.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/EasySetup.java index 2e47b0e..cd0702b 100755 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/EasySetup.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/EasySetup.java @@ -2,7 +2,7 @@ * *************************************************************** * * Copyright 2017 Samsung Electronics All Rights Reserved. - * + * * * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,8 +25,13 @@ package org.iotivity.service.easysetup.mediator; import android.content.Context; import android.util.Log; -import java.io.IOException; +import org.iotivity.base.OcConnectivityType; +import org.iotivity.base.OcResource; +import org.iotivity.base.OcPlatform; + import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; /** * @@ -39,7 +44,7 @@ import java.util.ArrayList; public class EasySetup { private static final String TAG = EasySetup.class.getName(); - + public static final String PROV_RESOURCE_TYPE = "ocf.wk.prov"; private static EasySetup sInstance; private static Context mContext; @@ -49,8 +54,8 @@ public class EasySetup { protected RemoteEnrollee mRemoteEnrollee; //function to call the native nativeCreateRemoteEnrollee - private native RemoteEnrollee nativeCreateRemoteEnrollee(); - + private native RemoteEnrollee nativeCreateRemoteEnrollee(String Host, String Uri, String devID, + Boolean isObservable, int conType); static { // Load Easy Setup JNI interface System.loadLibrary("ESMediatorRich"); @@ -76,10 +81,38 @@ public class EasySetup { /** * API to create a new RemoteEnrollee instance */ - public synchronized RemoteEnrollee createRemoteEnrollee() + public synchronized RemoteEnrollee createRemoteEnrollee(OcResource enrolleeResource) { // native call - mRemoteEnrollee = nativeCreateRemoteEnrollee(); + String Host = enrolleeResource.getHost(); + String HostInIPv6; + int pos1 = Host.indexOf("%"); // it indicates the address is IPv6. + if(pos1 >= 0) { + int pos2 = Host.indexOf("]"); + HostInIPv6 = Host.substring(0, pos1) + Host.substring(pos2, Host.length()); + Host = HostInIPv6; + Log.d(TAG,"Host address of the resource(truncated): " + HostInIPv6); + } + + String Uri = enrolleeResource.getUri(); + String devID = enrolleeResource.getServerId(); + Boolean isObservable = enrolleeResource.isObservable(); + EnumSet ConType = enrolleeResource.getConnectivityTypeSet(); + int conType = 0; + for (OcConnectivityType type : ConType) + { + conType |= type.getValue(); + } + List resourceTypes = enrolleeResource.getResourceTypes(); + List resourceInterfaces = enrolleeResource.getResourceInterfaces(); + + if(!resourceTypes.contains(PROV_RESOURCE_TYPE) + || !resourceInterfaces.contains(OcPlatform.BATCH_INTERFACE)) + { + Log.e(TAG, "Validation check for OcResource is failed."); + return null; + } + mRemoteEnrollee = nativeCreateRemoteEnrollee(Host, Uri, devID, isObservable, conType); mRemoteEnrolleeList.add(mRemoteEnrollee); return mRemoteEnrollee; } diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/PropertyData.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/EnrolleeConf.java similarity index 84% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/PropertyData.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/EnrolleeConf.java index a235621..f692b62 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/PropertyData.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/EnrolleeConf.java @@ -25,16 +25,16 @@ import org.iotivity.service.easysetup.mediator.enums.WIFI_MODE; import java.util.ArrayList; -public class PropertyData +public class EnrolleeConf { private final DeviceConfig mDevConf; - private final NetworkInfo mNetInfo; + private final WiFiConfig mWiFiConf; private final boolean mCloudable; - public PropertyData(DeviceConfig devConf, NetworkInfo netInfo, boolean cloudable) + public EnrolleeConf(DeviceConfig devConf, WiFiConfig wifiConf, boolean cloudable) { mDevConf = devConf; - mNetInfo = netInfo; + mWiFiConf = wifiConf; mCloudable = cloudable; } @@ -43,9 +43,9 @@ public class PropertyData return mDevConf; } - public NetworkInfo getNetworkInfo() + public WiFiConfig getWiFiConfig() { - return mNetInfo; + return mWiFiConf; } public boolean isCloudable() diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvisioningCallback.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/GetConfigurationCallback.java similarity index 82% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvisioningCallback.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/GetConfigurationCallback.java index aa219cc..3b75adc 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvisioningCallback.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/GetConfigurationCallback.java @@ -20,8 +20,8 @@ package org.iotivity.service.easysetup.mediator; -import org.iotivity.service.easysetup.mediator.DataProvisioningCallback; +import org.iotivity.service.easysetup.mediator.GetConfigurationCallback; -public abstract class DataProvisioningCallback { - public abstract void onProgress(DataProvisioningStatus status); +public abstract class GetConfigurationCallback { + public abstract void onProgress(GetConfigurationStatus status); } diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvisioningStatus.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/GetConfigurationStatus.java similarity index 69% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvisioningStatus.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/GetConfigurationStatus.java index 3271e13..39b89eb 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/DataProvisioningStatus.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/GetConfigurationStatus.java @@ -20,27 +20,26 @@ package org.iotivity.service.easysetup.mediator; -import org.iotivity.service.easysetup.mediator.enums.ESDataProvState; import org.iotivity.service.easysetup.mediator.enums.ESResult; -public class DataProvisioningStatus +public class GetConfigurationStatus { - private ESResult m_result; - private ESDataProvState m_state; + private ESResult mResult; + private EnrolleeConf mEnrolleeConf; - public DataProvisioningStatus(int result, int state) + public GetConfigurationStatus(int result, EnrolleeConf conf) { - m_result = ESResult.fromInt(result); - m_state = ESDataProvState.fromInt(state); + mResult = ESResult.fromInt(result); + mEnrolleeConf = conf; } public ESResult getESResult() { - return m_result; + return mResult; } - public ESDataProvState getESDataProvState() + public EnrolleeConf getEnrolleeConf() { - return m_state; + return mEnrolleeConf; } }; diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RemoteEnrollee.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RemoteEnrollee.java old mode 100644 new mode 100755 index ae15c68..a0fc205 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RemoteEnrollee.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/RemoteEnrollee.java @@ -30,76 +30,58 @@ public class RemoteEnrollee{ public static final String TAG = RemoteEnrollee.class.getName(); private long m_nativeHandle; - private native void nativeInitRemoteEnrollee(); - private native void nativeRequestPropertyData(RequestPropertyDataCallback callback); - private native void nativeStartSecurityProvision(SecurityProvisioningCallback callback); - private native void nativeSetDataProvInfo(String ssid, String pwd, int authType, int encType, - String language, String country); - private native void nativeStartDataProvision(DataProvisioningCallback callback); - private native void nativeSetCloudProvInfo(String authCode, String autoProvider, - String ciServer); - private native void nativeStartCloudProvisioning(CloudProvisioningCallback callback); + private native void nativeGetConfiguration(GetConfigurationCallback callback); + private native void nativeConfigureSecurity(SecurityProvisioningCallback callback); + private native void nativeProvisionDeviceProperties(String ssid, String pwd, int authType, int encType, + String language, String country, DevicePropProvisioningCallback callback); + private native void nativeProvisionCloudProperties(String authCode, String autoProvider, + String ciServer, CloudPropProvisioningCallback callback); /* constructor will be invoked from the native layer */ private RemoteEnrollee(long nativeHandle){ this.m_nativeHandle = nativeHandle; } - /* native setCloudProvInfo */ - public void initRemoteEnrollee() throws ESException - { - nativeInitRemoteEnrollee(); - } - - public void requestPropertyData(RequestPropertyDataCallback callback) throws ESException + public void getConfiguration(GetConfigurationCallback callback) throws ESException { if(callback != null) { - nativeRequestPropertyData(callback); + nativeGetConfiguration(callback); return; } - Log.d(TAG, "RequestPropertyDataCallback is null "); + Log.d(TAG, "GetConfigurationCallback is null "); } - public void startSecurityProvisioning(SecurityProvisioningCallback callback) throws ESException + public void configureSecurity(SecurityProvisioningCallback callback) throws ESException { if(callback != null) { - nativeStartSecurityProvision(callback); + nativeConfigureSecurity(callback); return; } Log.d(TAG, "SecurityProvisioningCallback is null "); } - public void setDataProvInfo(DataProvInfo dataInfo) throws ESException - { - nativeSetDataProvInfo(dataInfo.getSsid(), dataInfo.getPwd(), - dataInfo.getAuthType().getValue(), dataInfo.getEncType().getValue(), - dataInfo.getLanguage(), dataInfo.getCountry()); - } - - public void startDataProvisioning(DataProvisioningCallback callback) throws ESException + public void provisionDeviceProperties(DeviceProp deviceProp, DevicePropProvisioningCallback callback) throws ESException { if(callback != null) { - nativeStartDataProvision(callback); + nativeProvisionDeviceProperties(deviceProp.getSsid(), deviceProp.getPwd(), + deviceProp.getAuthType().getValue(), deviceProp.getEncType().getValue(), + deviceProp.getLanguage(), deviceProp.getCountry(), callback); return; } - Log.d(TAG, "DataProvisioningCallback is null "); - } - - public void setCloudProvInfo(CloudProvInfo cloudInfo) throws ESException{ - nativeSetCloudProvInfo(cloudInfo.getAuthCode(), cloudInfo.getAuthProvider(), - cloudInfo.getCiServer()); + Log.d(TAG, "DevicePropProvisioningCallback is null "); } - /* native startCloudProvisioning */ - public void startCloudProvisioning(CloudProvisioningCallback callback) throws ESException{ + /* native provisionCloudProperties */ + public void provisionCloudProperties(CloudProp cloudProp , CloudPropProvisioningCallback callback) throws ESException{ if(callback != null) { - nativeStartCloudProvisioning(callback); + nativeProvisionCloudProperties(cloudProp.getAuthCode(), cloudProp.getAuthProvider(), + cloudProp.getCiServer(), callback); return; } - Log.d(TAG, "CloudProvisioningCallback is null "); + Log.d(TAG, "CloudPropProvisioningCallback is null "); } } diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/SecurityProvisioningCallback.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/SecurityProvisioningCallback.java index c02bee6..4c6f284 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/SecurityProvisioningCallback.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/SecurityProvisioningCallback.java @@ -20,7 +20,7 @@ package org.iotivity.service.easysetup.mediator; -import org.iotivity.service.easysetup.mediator.SecurityProvisioningCallback; +import org.iotivity.service.easysetup.mediator.SecurityProvisioningStatus; public abstract class SecurityProvisioningCallback { public abstract void onProgress(SecurityProvisioningStatus status); diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/NetworkInfo.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/WiFiConfig.java similarity index 88% rename from service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/NetworkInfo.java rename to service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/WiFiConfig.java index 4352b93..26cd459 100644 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/NetworkInfo.java +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/WiFiConfig.java @@ -27,13 +27,13 @@ import org.iotivity.service.easysetup.mediator.enums.WIFI_MODE; import java.util.ArrayList; -public class NetworkInfo +public class WiFiConfig { - public static final String TAG = NetworkInfo.class.getName(); + public static final String TAG = WiFiConfig.class.getName(); private final ArrayList mWifiModeTypes; private final WIFI_FREQ mWifiFreq; - public NetworkInfo(ArrayList types, int wifiFreq) + public WiFiConfig(ArrayList types, int wifiFreq) { mWifiModeTypes = convertWifiModeTypes(types); mWifiFreq = WIFI_FREQ.fromInt(wifiFreq); diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/enums/ESDataProvState.java b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/enums/ESDataProvState.java deleted file mode 100644 index 7378c1a..0000000 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/java/org/iotivity/service/easysetup/mediator/enums/ESDataProvState.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * *************************************************************** - * - * Copyright 2016 Samsung Electronics All Rights Reserved. - * - * - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * **************************************************************** - */ - -package org.iotivity.service.easysetup.mediator.enums; - -public enum ESDataProvState -{ - ES_PROVISIONING_ERROR(-1), - ES_NEED_PROVISIONING(0), - ES_PROVISIONED_ALREADY(1), - ES_PROVISIONING_SUCCESS(2); - - private int value; - - private ESDataProvState(int value) - { - this.value = value; - } - - public int getValue() - { - return value; - } - - public static ESDataProvState fromInt(int i) - { - for (ESDataProvState b : ESDataProvState.values()) - { - if (b.getValue() == i) - return b; - } - return null; - } -} diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniCloudProvisioningStatusListener.cpp b/service/easy-setup/mediator/richsdk/android/jni/JniCloudPropProvisioningStatusListener.cpp similarity index 64% rename from service/easy-setup/mediator/richsdk/android/jni/JniCloudProvisioningStatusListener.cpp rename to service/easy-setup/mediator/richsdk/android/jni/JniCloudPropProvisioningStatusListener.cpp index 3162b55..525c726 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniCloudProvisioningStatusListener.cpp +++ b/service/easy-setup/mediator/richsdk/android/jni/JniCloudPropProvisioningStatusListener.cpp @@ -17,21 +17,21 @@ * ******************************************************************/ -#include "JniCloudProvisioningStatusListener.h" +#include "JniCloudPropProvisioningStatusListener.h" #include "JniRemoteEnrollee.h" using namespace OIC::Service; -JniCloudProvisioningStatusListener::JniCloudProvisioningStatusListener(JNIEnv *env, jobject jListener, +JniCloudPropProvisioningStatusListener::JniCloudPropProvisioningStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *owner) : m_ownerResource(owner) { m_jwListener = env->NewWeakGlobalRef(jListener); } -JniCloudProvisioningStatusListener::~JniCloudProvisioningStatusListener() +JniCloudPropProvisioningStatusListener::~JniCloudPropProvisioningStatusListener() { - LOGI("~JniCloudProvisioningStatusListener()"); + LOGI("~JniCloudPropProvisioningStatusListener()"); if (m_jwListener) { jint ret; @@ -42,11 +42,11 @@ JniCloudProvisioningStatusListener::~JniCloudProvisioningStatusListener() } } -void JniCloudProvisioningStatusListener::onCloudProvisioningStatus(std::shared_ptr - cloudProvisioningStatus) +void JniCloudPropProvisioningStatusListener::onCloudPropProvisioningStatus(std::shared_ptr + cloudPropProvisioningStatus) { - LOGI("JniCloudProvisioningStatusListener::onCloudProvisioningStatus enter"); + LOGI("JniCloudPropProvisioningStatusListener::onCloudPropProvisioningStatus enter"); jint ret; JNIEnv *env = GetESJNIEnv(ret); @@ -69,7 +69,7 @@ void JniCloudProvisioningStatusListener::onCloudProvisioningStatus(std::shared_p jmethodID midL = env->GetMethodID(clsL, "onProgress", "(Lorg/iotivity/service/easysetup/mediator/" - "CloudProvisioningStatus;" + "CloudPropProvisioningStatus;" ")V"); if (!midL) { @@ -78,24 +78,24 @@ void JniCloudProvisioningStatusListener::onCloudProvisioningStatus(std::shared_p return; } - ESResult esResult = cloudProvisioningStatus->getESResult(); - ESCloudProvState cloudProvisionState = cloudProvisioningStatus->getESCloudState(); + ESResult esResult = cloudPropProvisioningStatus->getESResult(); + ESCloudProvState cloudProvisionState = cloudPropProvisioningStatus->getESCloudState(); //create the java object - jobject jCloudProvisioningStatus = NULL; - jCloudProvisioningStatus = env->NewObject(g_cls_CloudProvisioningStatus, - g_mid_CloudProvisioningStatus_ctor, + jobject jCloudPropProvisioningStatus = NULL; + jCloudPropProvisioningStatus = env->NewObject(g_cls_CloudPropProvisioningStatus, + g_mid_CloudPropProvisioningStatus_ctor, (jint)esResult, (jint)cloudProvisionState); - LOGI("JniCloudProvisioningStatus::onCloudProvisioningStatus - %d, %d", esResult, cloudProvisionState); - if (!jCloudProvisioningStatus) + LOGI("JniCloudPropProvisioningStatus::onCloudPropProvisioningStatus - %d, %d", esResult, cloudProvisionState); + if (!jCloudPropProvisioningStatus) { - LOGE("JniCloudProvisioningStatus::onCloudProvisioningStatus Unable to create the java object"); + LOGE("JniCloudPropProvisioningStatus::onCloudPropProvisioningStatus Unable to create the java object"); return ; } - env->CallVoidMethod(jListener, midL, jCloudProvisioningStatus); + env->CallVoidMethod(jListener, midL, jCloudPropProvisioningStatus); bool needRemoveListener = false; @@ -117,17 +117,17 @@ void JniCloudProvisioningStatusListener::onCloudProvisioningStatus(std::shared_p if (JNI_EDETACHED == ret) g_jvm->DetachCurrentThread(); } -void JniCloudProvisioningStatusListener::checkExAndRemoveListener(JNIEnv *env) +void JniCloudPropProvisioningStatusListener::checkExAndRemoveListener(JNIEnv *env) { if (env->ExceptionCheck()) { jthrowable ex = env->ExceptionOccurred(); env->ExceptionClear(); - m_ownerResource->removeStatusListener(env, m_jwListener); + m_ownerResource->removeStatusListener(env, m_jwListener); env->Throw((jthrowable)ex); } else { - m_ownerResource->removeStatusListener(env, m_jwListener); + m_ownerResource->removeStatusListener(env, m_jwListener); } } diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniCloudProvisioningStatusListener.h b/service/easy-setup/mediator/richsdk/android/jni/JniCloudPropProvisioningStatusListener.h similarity index 73% rename from service/easy-setup/mediator/richsdk/android/jni/JniCloudProvisioningStatusListener.h rename to service/easy-setup/mediator/richsdk/android/jni/JniCloudPropProvisioningStatusListener.h index 5fafc71..a5f9fbf 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniCloudProvisioningStatusListener.h +++ b/service/easy-setup/mediator/richsdk/android/jni/JniCloudPropProvisioningStatusListener.h @@ -21,8 +21,8 @@ * @brief This file contains JNI Provisioing status Listener class */ -#ifndef __JNI_ES_CLOUD_PROVISIONING_STATUS_LISTENER_H_ -#define __JNI_ES_CLOUD_PROVISIONING_STATUS_LISTENER_H_ +#ifndef __JNI_ES_CLOUD_PROP_PROVISIONING_STATUS_LISTENER_H_ +#define __JNI_ES_CLOUD_PROP_PROVISIONING_STATUS_LISTENER_H_ #include @@ -36,27 +36,27 @@ class JniRemoteEnrollee; using namespace OIC::Service; /** - * @class JniCloudProvisioningStatusListener + * @class JniCloudPropProvisioningStatusListener * @brief This class provides functions for handling the cloud provisioning status callback between the Java and native layer * */ -class JniCloudProvisioningStatusListener +class JniCloudPropProvisioningStatusListener { public: /** * @brief constructor */ - JniCloudProvisioningStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *resource); + JniCloudPropProvisioningStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *resource); /** * @brief destructor */ - ~JniCloudProvisioningStatusListener(); + ~JniCloudPropProvisioningStatusListener(); /** * @brief callback function that will be passed to Native layer */ - void onCloudProvisioningStatus (std::shared_ptr cloudProvisioningStatus); + void onCloudPropProvisioningStatus (std::shared_ptr cloudPropProvisioningStatus); private: jweak m_jwListener; @@ -64,5 +64,5 @@ class JniCloudProvisioningStatusListener void checkExAndRemoveListener(JNIEnv *env); }; -#endif //__JNI_ES_PROVISIONING_STATUS_LISTENER_H_ +#endif //__JNI_ES_CLOUD_PROP_PROVISIONING_STATUS_LISTENER_H_ diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniDataProvisioningStatusListener.cpp b/service/easy-setup/mediator/richsdk/android/jni/JniDevicePropProvisioningStatusListener.cpp old mode 100644 new mode 100755 similarity index 61% rename from service/easy-setup/mediator/richsdk/android/jni/JniDataProvisioningStatusListener.cpp rename to service/easy-setup/mediator/richsdk/android/jni/JniDevicePropProvisioningStatusListener.cpp index f201e53..3b9c6bc --- a/service/easy-setup/mediator/richsdk/android/jni/JniDataProvisioningStatusListener.cpp +++ b/service/easy-setup/mediator/richsdk/android/jni/JniDevicePropProvisioningStatusListener.cpp @@ -18,21 +18,21 @@ * ******************************************************************/ -#include "JniDataProvisioningStatusListener.h" +#include "JniDevicePropProvisioningStatusListener.h" #include "JniRemoteEnrollee.h" using namespace OIC::Service; -JniDataProvisioningStatusListener::JniDataProvisioningStatusListener(JNIEnv *env, jobject jListener, +JniDevicePropProvisioningStatusListener::JniDevicePropProvisioningStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *owner) : m_ownerResource(owner) { m_jwListener = env->NewWeakGlobalRef(jListener); } -JniDataProvisioningStatusListener::~JniDataProvisioningStatusListener() +JniDevicePropProvisioningStatusListener::~JniDevicePropProvisioningStatusListener() { - LOGI("~JniDataProvisioningStatusListener()"); + LOGI("~JniDevicePropProvisioningStatusListener()"); if (m_jwListener) { jint ret; @@ -43,11 +43,11 @@ JniDataProvisioningStatusListener::~JniDataProvisioningStatusListener() } } -void JniDataProvisioningStatusListener::dataProvisionStatusCallback (std::shared_ptr - dataProvStatusCb) +void JniDevicePropProvisioningStatusListener::onDevicePropProvisioningStatusCallback (std::shared_ptr + devicePropProvStatusCb) { - LOGI("JniDataProvisioningStatusListener::provisioiningStatusCallback enter"); + LOGI("JniDevicePropProvisioningStatusListener::onDevicePropProvisioningStatusCallback enter"); jint ret; JNIEnv *env = GetESJNIEnv(ret); @@ -70,7 +70,7 @@ void JniDataProvisioningStatusListener::dataProvisionStatusCallback (std::shared //TODO: jmethodID midL = env->GetMethodID(clsL, "onProgress", "(Lorg/iotivity/service/easysetup/mediator/" - "DataProvisioningStatus;" + "DevicePropProvisioningStatus;" ")V"); if (!midL) @@ -80,23 +80,21 @@ void JniDataProvisioningStatusListener::dataProvisionStatusCallback (std::shared return; } - int nativeESResult = convertNativeDataProvResultToInt(dataProvStatusCb->getESResult()); - int nativeESDataProvState = convertNativeDataProvStateToInt(dataProvStatusCb->getESDataProvState()); + int nativeESResult = convertNativeDeviceProvResultToInt(devicePropProvStatusCb->getESResult()); - jobject jDataProvisioningStatus = NULL; - jDataProvisioningStatus = env->NewObject(g_cls_DataProvisioningStatus, - g_mid_DataProvisioningStatus_ctor, - (jint)nativeESResult, - (jint)nativeESDataProvState); + jobject jDevicePropProvisioningStatus = NULL; + jDevicePropProvisioningStatus = env->NewObject(g_cls_DevicePropProvisioningStatus, + g_mid_DevicePropProvisioningStatus_ctor, + (jint)nativeESResult); - LOGI("JniDataProvisioningStatus::onDataProvisioningStatus - %d, %d", nativeESResult, nativeESDataProvState); - if (!jDataProvisioningStatus) + LOGI("JniDevicePropProvisioningStatus::onDevicePropProvisioningStatus - %d", nativeESResult); + if (!jDevicePropProvisioningStatus) { - LOGE("JniDataProvisioningStatus::onDataProvisioningStatus Unable to create the java object"); + LOGE("JniDevicePropProvisioningStatus::onDevicePropProvisioningStatus Unable to create the java object"); return ; } - env->CallVoidMethod(jListener, midL, jDataProvisioningStatus); + env->CallVoidMethod(jListener, midL, jDevicePropProvisioningStatus); if (env->ExceptionCheck()) { @@ -109,17 +107,17 @@ void JniDataProvisioningStatusListener::dataProvisionStatusCallback (std::shared if (JNI_EDETACHED == ret) g_jvm->DetachCurrentThread(); } -void JniDataProvisioningStatusListener::checkExAndRemoveListener(JNIEnv *env) +void JniDevicePropProvisioningStatusListener::checkExAndRemoveListener(JNIEnv *env) { if (env->ExceptionCheck()) { jthrowable ex = env->ExceptionOccurred(); env->ExceptionClear(); - m_ownerResource->removeStatusListener(env, m_jwListener); + m_ownerResource->removeStatusListener(env, m_jwListener); env->Throw((jthrowable)ex); } else { - m_ownerResource->removeStatusListener(env, m_jwListener); + m_ownerResource->removeStatusListener(env, m_jwListener); } } diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniRequestPropertyDataStatusListener.h b/service/easy-setup/mediator/richsdk/android/jni/JniDevicePropProvisioningStatusListener.h similarity index 71% rename from service/easy-setup/mediator/richsdk/android/jni/JniRequestPropertyDataStatusListener.h rename to service/easy-setup/mediator/richsdk/android/jni/JniDevicePropProvisioningStatusListener.h index 97acf72..dde3389 100644 --- a/service/easy-setup/mediator/richsdk/android/jni/JniRequestPropertyDataStatusListener.h +++ b/service/easy-setup/mediator/richsdk/android/jni/JniDevicePropProvisioningStatusListener.h @@ -18,8 +18,8 @@ * ******************************************************************/ -#ifndef __JNI_ES_REQUEST_PROPERTY_DATA_STATUS_LISTENER_H_ -#define __JNI_ES_REQUEST_PROPERTY_DATA_STATUS_LISTENER_H_ +#ifndef __JNI_ES_DEVICE_PROP_PROVISIONING_STATUS_LISTENER_H_ +#define __JNI_ES_DEVICE_PROP_PROVISIONING_STATUS_LISTENER_H_ #include @@ -32,23 +32,23 @@ class JniRemoteEnrollee; using namespace OIC::Service; -class JniRequestPropertyDataStatusListener +class JniDevicePropProvisioningStatusListener { public: /** * @brief constructor */ - JniRequestPropertyDataStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *resource); + JniDevicePropProvisioningStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *resource); /** * @brief destructor */ - ~JniRequestPropertyDataStatusListener(); + ~JniDevicePropProvisioningStatusListener(); /** * @brief callback function that will be passed to Native layer */ - void requestPropertyDataStatusCallback (std::shared_ptr requestPropertyDataStatus); + void onDevicePropProvisioningStatusCallback (std::shared_ptr devicePropProvisioningStatus); private: jweak m_jwListener; @@ -56,4 +56,4 @@ class JniRequestPropertyDataStatusListener void checkExAndRemoveListener(JNIEnv *env); }; -#endif //__JNI_ES_REQUEST_PROPERTY_DATA_STATUS_LISTENER_H_ +#endif //__JNI_ES_DEVICE_PROP_PROVISIONING_STATUS_LISTENER_H_ diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.cpp b/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.cpp index 4c4b4d8..99588fd 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.cpp +++ b/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.cpp @@ -17,9 +17,17 @@ * limitations under the License. * ******************************************************************/ +#include +#include + +#include "OCPlatform.h" +#include "OCResource.h" +#include "octypes.h" +#include "ESRichCommon.h" #include "JniEasySetup.h" +using namespace OC; using namespace OIC::Service; #ifdef __cplusplus @@ -27,17 +35,42 @@ extern "C" { #endif JNIEXPORT jobject JNICALL Java_org_iotivity_service_easysetup_mediator_EasySetup_nativeCreateRemoteEnrollee -(JNIEnv *env, jobject interfaceClass) +(JNIEnv *env, jobject thiz , jstring jhost, jstring juri, jstring jdID, jboolean jisObservable, jint jconType) { - LOGI("JniEasySetup::nativeCreateRemoteEnrollee enter"); std::shared_ptr nativeRemoteEnrollee; + std::shared_ptr< OC::OCResource > resource; jobject jRemoteEnrollee; + std::string host; + std::string uri; + std::string devID; + + host = env->GetStringUTFChars(jhost, NULL); + uri = env->GetStringUTFChars(juri, NULL); + devID = env->GetStringUTFChars(jdID, NULL); + bool isObservable = jisObservable; + OCConnectivityType conType = static_cast(jconType); + std::vector resourceTypes = {OC_RSRVD_ES_RES_TYPE_PROV}; + std::vector interfaces = {OC_RSRVD_INTERFACE_BATCH}; + + LOGI("host : %s", host.c_str()); + LOGI("uri : %s", uri.c_str()); + try + { + resource = OC::OCPlatform::constructResourceObject(host, + uri, conType, isObservable, resourceTypes, interfaces); + } + catch(ResourceInitException e) + { + LOGI("constructResourceObject error : %s", e.what()); + return NULL; + } try { - nativeRemoteEnrollee = EasySetup::getInstance()->createRemoteEnrollee(); + nativeRemoteEnrollee = EasySetup::getInstance()->createRemoteEnrollee(resource); + nativeRemoteEnrollee->setDevID(devID); //create the java object jRemoteEnrollee = env->NewObject(g_cls_RemoteEnrollee, g_mid_RemoteEnrollee_ctor); if (!jRemoteEnrollee) @@ -45,7 +78,6 @@ Java_org_iotivity_service_easysetup_mediator_EasySetup_nativeCreateRemoteEnrolle LOGE("JniEasySetup::nativeCreateRemoteEnrollee Unable to create the java object"); return NULL; } - JniRemoteEnrollee *jniRemoteEnrollee = new JniRemoteEnrollee(nativeRemoteEnrollee); ESSetHandle(env, jRemoteEnrollee, jniRemoteEnrollee); } diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.h b/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.h index 99fbc80..aa50e10 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.h +++ b/service/easy-setup/mediator/richsdk/android/jni/JniEasySetup.h @@ -51,7 +51,8 @@ extern "C" { */ JNIEXPORT jobject JNICALL Java_org_iotivity_service_easysetup_mediator_EasySetup_nativeCreateRemoteEnrollee -(JNIEnv *env, jobject interfaceClass); +(JNIEnv *env, jobject thiz, jstring host, jstring uri, jstring jdID, jboolean isObservable, jint conType); + #ifdef __cplusplus } diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.cpp b/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.cpp index 852314f..6664361 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.cpp +++ b/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.cpp @@ -111,22 +111,22 @@ int convertNativeWifiModeToInt(WIFI_MODE wifiMode) } } -int convertNativeDataProvStateToInt(ESDataProvState nativeState) +int convertNativeDeviceProvStateToInt(ESDeviceProvState nativeState) { switch (nativeState) { - case ESDataProvState::ES_PROVISIONING_ERROR: + case ESDeviceProvState::ES_PROVISIONING_ERROR: return -1; - case ESDataProvState::ES_NEED_PROVISIONING: + case ESDeviceProvState::ES_NEED_PROVISIONING: return 0; - case ESDataProvState::ES_PROVISIONED_ALREADY: + case ESDeviceProvState::ES_PROVISIONED_ALREADY: return 1; - case ESDataProvState::ES_PROVISIONING_SUCCESS: + case ESDeviceProvState::ES_PROVISIONING_SUCCESS: return 2; } } -int convertNativeDataProvResultToInt(ESResult nativeResult) +int convertNativeDeviceProvResultToInt(ESResult nativeResult) { switch (nativeResult) { diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.h b/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.h index 526b04e..f356aaa 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.h +++ b/service/easy-setup/mediator/richsdk/android/jni/JniEsUtils.h @@ -51,6 +51,6 @@ WIFI_AUTHTYPE getWifiAuthTypeFromInt(int authType); WIFI_ENCTYPE getWifiEncTypeFromInt(int encType); int convertNativeWifiFreqToInt(WIFI_FREQ wifiFreq); int convertNativeWifiModeToInt(WIFI_MODE wifiMode); -int convertNativeDataProvStateToInt(ESDataProvState nativeState); -int convertNativeDataProvResultToInt(ESResult nativeResult); +int convertNativeDeviceProvStateToInt(ESDeviceProvState nativeState); +int convertNativeDeviceProvResultToInt(ESResult nativeResult); #endif //__JNI_ES_UTILS_H_ diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniRequestPropertyDataStatusListener.cpp b/service/easy-setup/mediator/richsdk/android/jni/JniGetConfigurationStatusListener.cpp similarity index 57% rename from service/easy-setup/mediator/richsdk/android/jni/JniRequestPropertyDataStatusListener.cpp rename to service/easy-setup/mediator/richsdk/android/jni/JniGetConfigurationStatusListener.cpp index 37b80ad..ce13435 100644 --- a/service/easy-setup/mediator/richsdk/android/jni/JniRequestPropertyDataStatusListener.cpp +++ b/service/easy-setup/mediator/richsdk/android/jni/JniGetConfigurationStatusListener.cpp @@ -18,21 +18,21 @@ * ******************************************************************/ -#include "JniRequestPropertyDataStatusListener.h" +#include "JniGetConfigurationStatusListener.h" #include "JniRemoteEnrollee.h" using namespace OIC::Service; -JniRequestPropertyDataStatusListener::JniRequestPropertyDataStatusListener(JNIEnv *env, jobject jListener, +JniGetConfigurationStatusListener::JniGetConfigurationStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *owner) : m_ownerResource(owner) { m_jwListener = env->NewWeakGlobalRef(jListener); } -JniRequestPropertyDataStatusListener::~JniRequestPropertyDataStatusListener() +JniGetConfigurationStatusListener::~JniGetConfigurationStatusListener() { - LOGI("~JniRequestPropertyDataStatusListener()"); + LOGI("~JniGetConfigurationStatusListener()"); if (m_jwListener) { jint ret; @@ -43,10 +43,10 @@ JniRequestPropertyDataStatusListener::~JniRequestPropertyDataStatusListener() } } -void JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback ( - std::shared_ptr requestPropertyDataStatusCb) +void JniGetConfigurationStatusListener::getConfigurationStatusCallback ( + std::shared_ptr getConfigurationStatusCb) { - LOGI("JniRequestPropertyDataStatusListener::provisioiningStatusCallback enter"); + LOGI("JniGetConfigurationStatusListener::provisioiningStatusCallback enter"); jint ret; JNIEnv *env = GetESJNIEnv(ret); @@ -69,7 +69,7 @@ void JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback ( jmethodID midL = env->GetMethodID(clsL, "onProgress", "(Lorg/iotivity/service/easysetup/mediator/" - "RequestPropertyDataStatus;" + "GetConfigurationStatus;" ")V"); if (!midL) @@ -79,19 +79,18 @@ void JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback ( return; } - const PropertyData propertyData = requestPropertyDataStatusCb->getPropertyData(); - DeviceConfig devConf = propertyData.getDevConf(); - NetworkInfo netInfo = propertyData.getNetInfo(); + const EnrolleeConf enrolleeConf = getConfigurationStatusCb->getEnrolleeConf(); + DeviceConfig devConf = enrolleeConf.getDevConf(); + WiFiConfig wifiConf = enrolleeConf.getWiFiConf(); jobject jDevConf = NULL; jDevConf = env->NewObject(g_cls_DeviceConfig, g_mid_DeviceConfig_ctor, - (jstring)env->NewStringUTF(devConf.id.c_str()), (jstring)env->NewStringUTF(devConf.name.c_str()), (jstring)env->NewStringUTF(devConf.language.c_str()), (jstring)env->NewStringUTF(devConf.country.c_str())); if (!jDevConf) { - LOGE("JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback Unable to create the jDevConf"); + LOGE("JniGetConfigurationStatusListener::getConfigurationStatusCallback Unable to create the jDevConf"); return ; } @@ -99,54 +98,54 @@ void JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback ( jobject wifiModeTypes = env->NewObject(clazz, env->GetMethodID(clazz, "", "()V")); jmethodID arraylist_add = env->GetMethodID(clazz, "add", "(Ljava/lang/Object;)Z"); - for (int n=0; nNewObject(g_cls_Integer, g_mid_Integer_ctor, - convertNativeWifiModeToInt(static_cast(netInfo.types[n]))); + convertNativeWifiModeToInt(static_cast(wifiConf.types[n]))); env->CallBooleanMethod(wifiModeTypes, arraylist_add, value); } if (!wifiModeTypes) { - LOGE("JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback Unable to create the wifiModeTypes"); + LOGE("JniGetConfigurationStatusListener::getConfigurationStatusCallback Unable to create the wifiModeTypes"); return ; } - jobject jNetInfo = NULL; - jNetInfo = env->NewObject(g_cls_NetworkInfo, - g_mid_NetworkInfo_ctor, + jobject jWiFiConf = NULL; + jWiFiConf = env->NewObject(g_cls_WiFiConfig, + g_mid_WiFiConfig_ctor, (jobject)wifiModeTypes, - (jint)convertNativeWifiFreqToInt(netInfo.freq)); - if (!jNetInfo) { - LOGE("JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback Unable to create the jNetInfo"); + (jint)convertNativeWifiFreqToInt(wifiConf.freq)); + if (!jWiFiConf) { + LOGE("JniGetConfigurationStatusListener::getConfigurationStatusCallback Unable to create the jWiFiConf"); return ; } - jobject jPropertyData = NULL; - jPropertyData = env->NewObject(g_cls_PropertyData, - g_mid_PropertyData_ctor, + jobject jEnrolleeConf = NULL; + jEnrolleeConf = env->NewObject(g_cls_EnrolleeConf, + g_mid_EnrolleeConf_ctor, (jobject)jDevConf, - (jobject)jNetInfo, - (jboolean)propertyData.isCloudable()); - if (!jPropertyData) { - LOGE("JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback Unable to create the jPropertyData"); + (jobject)jWiFiConf, + (jboolean)enrolleeConf.isCloudable()); + if (!jEnrolleeConf) { + LOGE("JniGetConfigurationStatusListener::getConfigurationStatusCallback Unable to create the jEnrolleeConf"); return ; } - ESResult esResult = requestPropertyDataStatusCb->getESResult(); - jobject jRequestPropertyDataStatus = NULL; - jRequestPropertyDataStatus = env->NewObject(g_cls_RequestPropertyDataStatus, - g_mid_RequestPropertyDataStatus_ctor, + ESResult esResult = getConfigurationStatusCb->getESResult(); + jobject jgetConfigurationStatus = NULL; + jgetConfigurationStatus = env->NewObject(g_cls_getConfigurationStatus, + g_mid_getConfigurationStatus_ctor, (jint)esResult, - (jobject)jPropertyData); -LOGI("4"); - if (!jRequestPropertyDataStatus) + (jobject)jEnrolleeConf); + + if (!jgetConfigurationStatus) { - LOGE("JniRequestPropertyDataStatusListener::requestPropertyDataStatusCallback Unable to create the java object"); + LOGE("JniGetConfigurationStatusListener::getConfigurationStatusCallback Unable to create the java object"); return ; } - env->CallVoidMethod(jListener, midL, jRequestPropertyDataStatus); + env->CallVoidMethod(jListener, midL, jgetConfigurationStatus); if (env->ExceptionCheck()) { @@ -159,18 +158,18 @@ LOGI("4"); if (JNI_EDETACHED == ret) g_jvm->DetachCurrentThread(); } -void JniRequestPropertyDataStatusListener::checkExAndRemoveListener(JNIEnv *env) +void JniGetConfigurationStatusListener::checkExAndRemoveListener(JNIEnv *env) { if (env->ExceptionCheck()) { jthrowable ex = env->ExceptionOccurred(); env->ExceptionClear(); - m_ownerResource->removeStatusListener(env, m_jwListener); + m_ownerResource->removeStatusListener(env, m_jwListener); env->Throw((jthrowable)ex); } else { - m_ownerResource->removeStatusListener(env, m_jwListener); + m_ownerResource->removeStatusListener(env, m_jwListener); } } diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniDataProvisioningStatusListener.h b/service/easy-setup/mediator/richsdk/android/jni/JniGetConfigurationStatusListener.h similarity index 75% rename from service/easy-setup/mediator/richsdk/android/jni/JniDataProvisioningStatusListener.h rename to service/easy-setup/mediator/richsdk/android/jni/JniGetConfigurationStatusListener.h index 235ead8..5dea482 100644 --- a/service/easy-setup/mediator/richsdk/android/jni/JniDataProvisioningStatusListener.h +++ b/service/easy-setup/mediator/richsdk/android/jni/JniGetConfigurationStatusListener.h @@ -18,8 +18,8 @@ * ******************************************************************/ -#ifndef __JNI_ES_DATA_PROVISIONING_STATUS_LISTENER_H_ -#define __JNI_ES_DATA_PROVISIONING_STATUS_LISTENER_H_ +#ifndef __JNI_ES_GET_CONFIGURATION_STATUS_LISTENER_H_ +#define __JNI_ES_GET_CONFIGURATION_STATUS_LISTENER_H_ #include @@ -32,23 +32,23 @@ class JniRemoteEnrollee; using namespace OIC::Service; -class JniDataProvisioningStatusListener +class JniGetConfigurationStatusListener { public: /** * @brief constructor */ - JniDataProvisioningStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *resource); + JniGetConfigurationStatusListener(JNIEnv *env, jobject jListener, JniRemoteEnrollee *resource); /** * @brief destructor */ - ~JniDataProvisioningStatusListener(); + ~JniGetConfigurationStatusListener(); /** * @brief callback function that will be passed to Native layer */ - void dataProvisionStatusCallback (std::shared_ptr dataProvisioningStatus); + void getConfigurationStatusCallback (std::shared_ptr getConfigurationStatus); private: jweak m_jwListener; @@ -56,4 +56,4 @@ class JniDataProvisioningStatusListener void checkExAndRemoveListener(JNIEnv *env); }; -#endif //__JNI_ES_DATA_PROVISIONING_STATUS_LISTENER_H_ +#endif //__JNI_ES_GET_CONFIGURATION_STATUS_LISTENER_H_ diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniJvm.cpp b/service/easy-setup/mediator/richsdk/android/jni/JniJvm.cpp index b280bc1..5e7cbe8 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniJvm.cpp +++ b/service/easy-setup/mediator/richsdk/android/jni/JniJvm.cpp @@ -22,25 +22,25 @@ JavaVM *g_jvm = NULL; jclass g_cls_RemoteEnrollee = NULL; -jclass g_cls_PropertyData = NULL; +jclass g_cls_ESException = NULL; +jclass g_cls_EnrolleeConf = NULL; jclass g_cls_DeviceConfig = NULL; -jclass g_cls_NetworkInfo = NULL; -jclass g_cls_RequestPropertyDataStatus = NULL; +jclass g_cls_WiFiConfig = NULL; +jclass g_cls_getConfigurationStatus = NULL; jclass g_cls_SecurityProvisioningStatus = NULL; -jclass g_cls_DataProvisioningStatus = NULL; -jclass g_cls_ESException = NULL; -jclass g_cls_CloudProvisioningStatus = NULL; +jclass g_cls_DevicePropProvisioningStatus = NULL; +jclass g_cls_CloudPropProvisioningStatus = NULL; jclass g_cls_Integer = NULL; jmethodID g_mid_RemoteEnrollee_ctor = NULL; jmethodID g_mid_ESException_ctor = NULL; -jmethodID g_mid_PropertyData_ctor = NULL; +jmethodID g_mid_EnrolleeConf_ctor = NULL; jmethodID g_mid_DeviceConfig_ctor = NULL; -jmethodID g_mid_NetworkInfo_ctor = NULL; -jmethodID g_mid_RequestPropertyDataStatus_ctor = NULL; +jmethodID g_mid_WiFiConfig_ctor = NULL; +jmethodID g_mid_getConfigurationStatus_ctor = NULL; jmethodID g_mid_SecurityProvisioningStatus_ctor = NULL; -jmethodID g_mid_DataProvisioningStatus_ctor = NULL; -jmethodID g_mid_CloudProvisioningStatus_ctor = NULL; +jmethodID g_mid_DevicePropProvisioningStatus_ctor = NULL; +jmethodID g_mid_CloudPropProvisioningStatus_ctor = NULL; jmethodID g_mid_Integer_ctor = NULL; // JNI OnLoad @@ -85,41 +85,41 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) env->DeleteLocalRef(clazz); g_mid_DeviceConfig_ctor = env->GetMethodID(g_cls_DeviceConfig, "", - "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); + "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); if (!g_mid_DeviceConfig_ctor) return JNI_ERR; - // NetworkInfo - clazz = env->FindClass("org/iotivity/service/easysetup/mediator/NetworkInfo"); + // WiFiConfig + clazz = env->FindClass("org/iotivity/service/easysetup/mediator/WiFiConfig"); if (!clazz) return JNI_ERR; - g_cls_NetworkInfo = (jclass)env->NewGlobalRef(clazz); + g_cls_WiFiConfig = (jclass)env->NewGlobalRef(clazz); env->DeleteLocalRef(clazz); - g_mid_NetworkInfo_ctor = env->GetMethodID(g_cls_NetworkInfo, "", + g_mid_WiFiConfig_ctor = env->GetMethodID(g_cls_WiFiConfig, "", "(Ljava/util/ArrayList;I)V"); - if (!g_mid_NetworkInfo_ctor) return JNI_ERR; + if (!g_mid_WiFiConfig_ctor) return JNI_ERR; - // PropertyData - clazz = env->FindClass("org/iotivity/service/easysetup/mediator/PropertyData"); + // EnrolleeConf + clazz = env->FindClass("org/iotivity/service/easysetup/mediator/EnrolleeConf"); if (!clazz) return JNI_ERR; - g_cls_PropertyData = (jclass)env->NewGlobalRef(clazz); + g_cls_EnrolleeConf = (jclass)env->NewGlobalRef(clazz); env->DeleteLocalRef(clazz); - g_mid_PropertyData_ctor = env->GetMethodID(g_cls_PropertyData, "", - "(Lorg/iotivity/service/easysetup/mediator/DeviceConfig;Lorg/iotivity/service/easysetup/mediator/NetworkInfo;Z)V"); - if (!g_mid_PropertyData_ctor) return JNI_ERR; + g_mid_EnrolleeConf_ctor = env->GetMethodID(g_cls_EnrolleeConf, "", + "(Lorg/iotivity/service/easysetup/mediator/DeviceConfig;Lorg/iotivity/service/easysetup/mediator/WiFiConfig;Z)V"); + if (!g_mid_EnrolleeConf_ctor) return JNI_ERR; - // RequestPropertyDataStatus - clazz = env->FindClass("org/iotivity/service/easysetup/mediator/RequestPropertyDataStatus"); + // getConfigurationStatus + clazz = env->FindClass("org/iotivity/service/easysetup/mediator/GetConfigurationStatus"); if (!clazz) return JNI_ERR; - g_cls_RequestPropertyDataStatus = (jclass)env->NewGlobalRef(clazz); + g_cls_getConfigurationStatus = (jclass)env->NewGlobalRef(clazz); env->DeleteLocalRef(clazz); - g_mid_RequestPropertyDataStatus_ctor = env->GetMethodID(g_cls_RequestPropertyDataStatus, "", - "(ILorg/iotivity/service/easysetup/mediator/PropertyData;)V"); - if (!g_mid_RequestPropertyDataStatus_ctor) return JNI_ERR; + g_mid_getConfigurationStatus_ctor = env->GetMethodID(g_cls_getConfigurationStatus, "", + "(ILorg/iotivity/service/easysetup/mediator/EnrolleeConf;)V"); + if (!g_mid_getConfigurationStatus_ctor) return JNI_ERR; // SecurityProvisioningStatus clazz = env->FindClass("org/iotivity/service/easysetup/mediator/SecurityProvisioningStatus"); @@ -132,26 +132,26 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) "(ILjava/lang/String;)V"); if (!g_mid_SecurityProvisioningStatus_ctor) return JNI_ERR; - // DataProvisioningStatus - clazz = env->FindClass("org/iotivity/service/easysetup/mediator/DataProvisioningStatus"); + // DevicePropProvisioningStatus + clazz = env->FindClass("org/iotivity/service/easysetup/mediator/DevicePropProvisioningStatus"); if (!clazz) return JNI_ERR; - g_cls_DataProvisioningStatus = (jclass)env->NewGlobalRef(clazz); + g_cls_DevicePropProvisioningStatus = (jclass)env->NewGlobalRef(clazz); env->DeleteLocalRef(clazz); - g_mid_DataProvisioningStatus_ctor = env->GetMethodID(g_cls_DataProvisioningStatus, "", - "(II)V"); - if (!g_mid_DataProvisioningStatus_ctor) return JNI_ERR; + g_mid_DevicePropProvisioningStatus_ctor = env->GetMethodID(g_cls_DevicePropProvisioningStatus, "", + "(I)V"); + if (!g_mid_DevicePropProvisioningStatus_ctor) return JNI_ERR; - // CloudProvisioningStatus - clazz = env->FindClass("org/iotivity/service/easysetup/mediator/CloudProvisioningStatus"); + // CloudPropProvisioningStatus + clazz = env->FindClass("org/iotivity/service/easysetup/mediator/CloudPropProvisioningStatus"); if (!clazz) return JNI_ERR; - g_cls_CloudProvisioningStatus = (jclass)env->NewGlobalRef(clazz); + g_cls_CloudPropProvisioningStatus = (jclass)env->NewGlobalRef(clazz); env->DeleteLocalRef(clazz); - g_mid_CloudProvisioningStatus_ctor = env->GetMethodID(g_cls_CloudProvisioningStatus, "", + g_mid_CloudPropProvisioningStatus_ctor = env->GetMethodID(g_cls_CloudPropProvisioningStatus, "", "(II)V"); - if (!g_mid_CloudProvisioningStatus_ctor) return JNI_ERR; + if (!g_mid_CloudPropProvisioningStatus_ctor) return JNI_ERR; // Integer clazz = env->FindClass("java/lang/Integer"); diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniJvm.h b/service/easy-setup/mediator/richsdk/android/jni/JniJvm.h index 134c19b..7d27e08 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniJvm.h +++ b/service/easy-setup/mediator/richsdk/android/jni/JniJvm.h @@ -43,24 +43,24 @@ extern JavaVM *g_jvm; extern jclass g_cls_RemoteEnrollee; extern jclass g_cls_ESException; -extern jclass g_cls_PropertyData; +extern jclass g_cls_EnrolleeConf; extern jclass g_cls_DeviceConfig; -extern jclass g_cls_NetworkInfo; -extern jclass g_cls_RequestPropertyDataStatus; +extern jclass g_cls_WiFiConfig; +extern jclass g_cls_getConfigurationStatus; extern jclass g_cls_SecurityProvisioningStatus; -extern jclass g_cls_DataProvisioningStatus; -extern jclass g_cls_CloudProvisioningStatus; +extern jclass g_cls_DevicePropProvisioningStatus; +extern jclass g_cls_CloudPropProvisioningStatus; extern jclass g_cls_Integer; extern jmethodID g_mid_RemoteEnrollee_ctor; extern jmethodID g_mid_ESException_ctor; -extern jmethodID g_mid_PropertyData_ctor; +extern jmethodID g_mid_EnrolleeConf_ctor; extern jmethodID g_mid_DeviceConfig_ctor; -extern jmethodID g_mid_NetworkInfo_ctor; -extern jmethodID g_mid_RequestPropertyDataStatus_ctor; +extern jmethodID g_mid_WiFiConfig_ctor; +extern jmethodID g_mid_getConfigurationStatus_ctor; extern jmethodID g_mid_SecurityProvisioningStatus_ctor; -extern jmethodID g_mid_DataProvisioningStatus_ctor; -extern jmethodID g_mid_CloudProvisioningStatus_ctor; +extern jmethodID g_mid_DevicePropProvisioningStatus_ctor; +extern jmethodID g_mid_CloudPropProvisioningStatus_ctor; extern jmethodID g_mid_Integer_ctor; typedef void(*RemoveListenerCallback)(JNIEnv *env, jobject jListener); diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.cpp b/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.cpp index c84b68d..37c8810 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.cpp +++ b/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.cpp @@ -51,44 +51,30 @@ JniRemoteEnrollee *JniRemoteEnrollee::getJniRemoteEnrollee(JNIEnv *env, jobject return remoteEnrollee; } -void JniRemoteEnrollee::initRemoteEnrollee(JNIEnv *env) +void JniRemoteEnrollee::getConfiguration(JNIEnv *env, jobject jListener) { - try - { - m_sharedResource->initRemoteEnrollee(); - } - catch (ESBadRequestException exception) - { - LOGE("JNI initRemoteEnrollee :: Exception occured"); - //throw the exception to java - throwESException( env, exception.what()); - } -} - -void JniRemoteEnrollee::requestPropertyData(JNIEnv *env, jobject jListener) -{ - JniRequestPropertyDataStatusListener *onRequestPropertyDataStatusReceived = - addStatusListener(env, jListener); + JniGetConfigurationStatusListener *onGetConfigurationStatusReceived = + addStatusListener(env, jListener); - RequestPropertyDataStatusCb requestPropertyDataStatusCallback = [onRequestPropertyDataStatusReceived] - (std::shared_ptr requestPropertyDataStatus) + GetConfigurationStatusCb getConfigurationStatusCallback = [onGetConfigurationStatusReceived] + (std::shared_ptr getConfigurationStatus) { - onRequestPropertyDataStatusReceived->requestPropertyDataStatusCallback(requestPropertyDataStatus); + onGetConfigurationStatusReceived->getConfigurationStatusCallback(getConfigurationStatus); }; try { - m_sharedResource->requestPropertyData(requestPropertyDataStatusCallback); + m_sharedResource->getConfiguration(getConfigurationStatusCallback); } catch (ESBadRequestException exception) { - LOGE("JNI requestPropertyData :: Exception occured"); + LOGE("JNI getConfiguration :: Exception occured"); //throw the exception to java throwESException( env, exception.what()); } } -void JniRemoteEnrollee::startSecurityProvisioning(JNIEnv *env, jobject jListener) +void JniRemoteEnrollee::configureSecurity(JNIEnv *env, jobject jListener) { JniSecurityStatusListener *onSecurityProvStatusReceived = addStatusListener(env, jListener); @@ -101,79 +87,71 @@ void JniRemoteEnrollee::startSecurityProvisioning(JNIEnv *env, jobject jListener try { - m_sharedResource->startSecurityProvisioning(secProvStatusCallback); + m_sharedResource->configureSecurity(secProvStatusCallback); } catch (ESBadRequestException exception) { - LOGE("JNI startSecurityProvisioning :: Exception occured"); + LOGE("JNI configureSecurity :: Exception occured"); //throw the exception to java throwESException( env, exception.what()); } } -void JniRemoteEnrollee::startDataProvisioning(JNIEnv *env, jobject jListener) +void JniRemoteEnrollee::provisionDeviceProperties(JNIEnv *env, jstring jssid, jstring jpwd, jint jauthType, + jint jencType, jstring jlanguage, jstring jcountry, jobject jListener) { - JniDataProvisioningStatusListener *onDataProvStatusReceived = - addStatusListener(env, jListener); + DeviceProp prop; - DataProvStatusCb dataProvStatusCallback = [onDataProvStatusReceived] - (std::shared_ptr dataProvisioningStatus) + prop.WIFI.ssid = env->GetStringUTFChars(jssid, NULL); + prop.WIFI.pwd = env->GetStringUTFChars(jpwd, NULL); + prop.WIFI.authtype = getWifiAuthTypeFromInt(jauthType); + prop.WIFI.enctype = getWifiEncTypeFromInt(jencType); + prop.Device.language = env->GetStringUTFChars(jlanguage, NULL); + prop.Device.country = env->GetStringUTFChars(jcountry, NULL); + + JniDevicePropProvisioningStatusListener *onDevicePropProvStatusReceived = + addStatusListener(env, jListener); + + DevicePropProvStatusCb devicePropProvStatusCallback = [onDevicePropProvStatusReceived] + (std::shared_ptr devicePropProvisioningStatus) { - onDataProvStatusReceived->dataProvisionStatusCallback(dataProvisioningStatus); + onDevicePropProvStatusReceived->onDevicePropProvisioningStatusCallback(devicePropProvisioningStatus); }; try { - m_sharedResource->startDataProvisioning(dataProvStatusCallback); + m_sharedResource->provisionDeviceProperties(prop, devicePropProvStatusCallback); } catch (ESBadRequestException exception) { - LOGE("JNI startDataProvisioning :: Exception occured"); + LOGE("JNI provisionDeviceProperties :: Exception occured"); //throw the exception to java throwESException( env, exception.what()); } } -void JniRemoteEnrollee::setDataProvInfo(JNIEnv *env, jstring jssid, jstring jpwd, jint jauthType, - jint jencType, jstring jlanguage, jstring jcountry) +void JniRemoteEnrollee::provisionCloudProperties(JNIEnv *env, jstring jauthCode, jstring jauthProvider, + jstring jciServer, jobject jListener) { - DataProvInfo info; - - info.WIFI.ssid = env->GetStringUTFChars(jssid, NULL); - info.WIFI.pwd = env->GetStringUTFChars(jpwd, NULL); - info.WIFI.authtype = getWifiAuthTypeFromInt(jauthType); - info.WIFI.enctype = getWifiEncTypeFromInt(jencType); - info.Device.language = env->GetStringUTFChars(jlanguage, NULL); - info.Device.country = env->GetStringUTFChars(jcountry, NULL); + CloudProp prop; - m_sharedResource->setDataProvInfo(info); -} + prop.authCode = env->GetStringUTFChars(jauthCode, NULL); + prop.authProvider = env->GetStringUTFChars(jauthProvider, NULL); + prop.ciServer = env->GetStringUTFChars(jciServer, NULL); -void JniRemoteEnrollee::setCloudProvInfo(JNIEnv *env, jstring jauthCode, jstring jauthProvider, jstring jciServer) -{ - CloudProvInfo info; - info.authCode = env->GetStringUTFChars(jauthCode, NULL); - info.authProvider = env->GetStringUTFChars(jauthProvider, NULL); - info.ciServer = env->GetStringUTFChars(jciServer, NULL); + JniCloudPropProvisioningStatusListener *onCloudPropProvisioningStatusReceived = + addStatusListener(env, jListener); - m_sharedResource->setCloudProvInfo(info); -} - -void JniRemoteEnrollee::startCloudProvisioning(JNIEnv *env, jobject jListener) -{ - JniCloudProvisioningStatusListener *onCloudProvisioningStatusReceived = - addStatusListener(env, jListener); - - CloudProvStatusCb provisionStatusCallback = [onCloudProvisioningStatusReceived] - (std::shared_ptr< OIC::Service::CloudProvisioningStatus > cloudProvisioningStatus) + CloudPropProvStatusCb cloudPropProvStatusCallback = [onCloudPropProvisioningStatusReceived] + (std::shared_ptr< OIC::Service::CloudPropProvisioningStatus > cloudPropProvisioningStatus) { - onCloudProvisioningStatusReceived->onCloudProvisioningStatus(cloudProvisioningStatus); + onCloudPropProvisioningStatusReceived->onCloudPropProvisioningStatus(cloudPropProvisioningStatus); }; try { - m_sharedResource->startCloudProvisioning(provisionStatusCallback); + m_sharedResource->provisionCloudProperties(prop, cloudPropProvStatusCallback); } catch (ESBadRequestException exception) { @@ -185,87 +163,52 @@ void JniRemoteEnrollee::startCloudProvisioning(JNIEnv *env, jobject jListener) //JNI JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeInitRemoteEnrollee -(JNIEnv *env, jobject jClass) -{ - LOGD("nativeInitRemoteEnrollee Enter"); - - JniRemoteEnrollee *remoteEnrollee = JniRemoteEnrollee::getJniRemoteEnrollee(env, jClass); - remoteEnrollee->initRemoteEnrollee(env); - - LOGD("nativeInitRemoteEnrollee Exit"); -} - -JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeRequestPropertyData +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeGetConfiguration (JNIEnv *env, jobject jClass, jobject jListener) { - LOGD("nativeRequestPropertyData Enter"); + LOGD("nativegetConfiguration Enter"); JniRemoteEnrollee *remoteEnrollee = JniRemoteEnrollee::getJniRemoteEnrollee(env, jClass); - remoteEnrollee->requestPropertyData(env, jListener); + remoteEnrollee->getConfiguration(env, jListener); - LOGD("nativeRequestPropertyData Exit"); + LOGD("nativegetConfiguration Exit"); } JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeStartSecurityProvision +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeConfigureSecurity (JNIEnv *env, jobject jClass, jobject jListener) { LOGD("nativeStartSecurityProvision Enter"); JniRemoteEnrollee *remoteEnrollee = JniRemoteEnrollee::getJniRemoteEnrollee(env, jClass); - remoteEnrollee->startSecurityProvisioning(env, jListener); + remoteEnrollee->configureSecurity(env, jListener); LOGD("nativeStartSecurityProvision Exit"); } JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeStartDataProvision -(JNIEnv *env, jobject jClass, jobject jListener) +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeProvisionDeviceProperties +(JNIEnv *env, jobject jClass, jstring jssid, jstring jpwd, jint jauthType, + jint jencType, jstring jlanguage, jstring jcountry, jobject jListener) { - LOGD("nativeStartDataProvision Enter"); + LOGD("nativeProvisionDeviceProperties Enter"); JniRemoteEnrollee *remoteEnrollee = JniRemoteEnrollee::getJniRemoteEnrollee(env, jClass); - remoteEnrollee->startDataProvisioning(env, jListener); + remoteEnrollee->provisionDeviceProperties(env, jssid, jpwd, jauthType, jencType, + jlanguage, jcountry, jListener); - LOGD("nativeStartDataProvision Exit"); + LOGD("nativeProvisionDeviceProperties Exit"); } JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeSetDataProvInfo -(JNIEnv *env, jobject jClass, jstring jssid, jstring jpwd, jint jauthType, jint jencType, - jstring jlanguage, jstring jcountry) -{ - LOGD("nativeSetDataProvInfo Enter"); - - JniRemoteEnrollee *remoteEnrollee = JniRemoteEnrollee::getJniRemoteEnrollee(env, jClass); - remoteEnrollee->setDataProvInfo(env, jssid, jpwd, jauthType, jencType, jlanguage, jcountry); - - LOGD("nativeSetDataProvInfo Exit"); -} - -JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeSetCloudProvInfo -(JNIEnv *env, jobject jClass, jstring jauthCode, jstring jauthProvider, jstring jciServer) -{ - LOGD("nativeSetCloudProvInfo Enter"); - - // TODO - JniRemoteEnrollee *remoteEnrollee = JniRemoteEnrollee::getJniRemoteEnrollee(env, jClass); - remoteEnrollee->setCloudProvInfo(env, jauthCode, jauthProvider, jciServer); - - LOGD("nativeSetCloudProvInfo Exit"); -} - -JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeStartCloudProvisioning -(JNIEnv *env, jobject jClass, jobject jListener) +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeProvisionCloudProperties +(JNIEnv *env, jobject jClass, jstring authCode, jstring authProvider, + jstring ciServer, jobject jListener) { - LOGD("nativeStartCloudProvisioning Enter"); + LOGD("nativeprovisionCloudProperties Enter"); JniRemoteEnrollee *remoteEnrollee = JniRemoteEnrollee::getJniRemoteEnrollee(env, jClass); - remoteEnrollee->startCloudProvisioning(env, jListener); + remoteEnrollee->provisionCloudProperties(env, authCode, authProvider, ciServer, jListener); - LOGD("nativeStartCloudProvisioning Exit"); + LOGD("nativeprovisionCloudProperties Exit"); } \ No newline at end of file diff --git a/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.h b/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.h index b7b8b82..0ffe113 100755 --- a/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.h +++ b/service/easy-setup/mediator/richsdk/android/jni/JniRemoteEnrollee.h @@ -27,16 +27,16 @@ #ifndef __JNI_ES_REMOTEENROLLEE_H #define __JNI_ES_REMOTEENROLLEE_H -#include "RemoteEnrollee.h" #include "ESRichCommon.h" #include "ESException.h" +#include "RemoteEnrollee.h" #include "JniJvm.h" #include "JniEsUtils.h" -#include "JniRequestPropertyDataStatusListener.h" +#include "JniGetConfigurationStatusListener.h" #include "JniSecurityStatusListener.h" -#include "JniDataProvisioningStatusListener.h" -#include "JniCloudProvisioningStatusListener.h" +#include "JniDevicePropProvisioningStatusListener.h" +#include "JniCloudPropProvisioningStatusListener.h" #include "JniEsListenerManager.h" using namespace OIC::Service; @@ -62,14 +62,12 @@ class JniRemoteEnrollee ~JniRemoteEnrollee(); // ***** JNI APIs internally call the APIs of this class ***** // - void initRemoteEnrollee(JNIEnv *env); - void requestPropertyData(JNIEnv *env, jobject jListener); - void startSecurityProvisioning(JNIEnv *env, jobject jListener); - void startDataProvisioning(JNIEnv *env, jobject jListener); - void startCloudProvisioning(JNIEnv *env, jobject jListener); - void setDataProvInfo(JNIEnv *env, jstring jssid, jstring jpwd, jint jauthType, - jint jencType, jstring jlanguage, jstring jcountry); - void setCloudProvInfo(JNIEnv *env, jstring authCode, jstring authProvider, jstring ciServer); + void getConfiguration(JNIEnv *env, jobject jListener); + void configureSecurity(JNIEnv *env, jobject jListener); + void provisionDeviceProperties(JNIEnv *env, jstring jssid, jstring jpwd, jint jauthType, + jint jencType, jstring jlanguage, jstring jcountry, jobject jListener); + void provisionCloudProperties(JNIEnv *env, jstring authCode, jstring authProvider, + jstring ciServer, jobject jListener); static JniRemoteEnrollee *getJniRemoteEnrollee(JNIEnv *env, jobject thiz); @@ -90,60 +88,39 @@ class JniRemoteEnrollee }; - #ifdef __cplusplus extern "C" { #endif /** - * API for starting the initRemoteEnrollee process. + * API for starting the Request EnrolleeConf process. */ JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeInitRemoteEnrollee -(JNIEnv *env, jobject jClass); - -/** - * API for starting the Request PropertyData process. - */ -JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeRequestPropertyData +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeGetConfiguration (JNIEnv *env, jobject jClass, jobject jListener); /** * API for starting the Sequrity provisioning process. */ JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeStartSecurityProvision +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeConfigureSecurity (JNIEnv *env, jobject jClass, jobject jListener); /** * API for starting the Data provisioning process. */ JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeStartDataProvision -(JNIEnv *env, jobject jClass, jobject jListener); - -/** - * API for setting data provisioning information. - */ -JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeSetDataProvInfo -(JNIEnv *env, jobject jClass, jstring jssid, jstring jpwd, jint jauthType, jint jencType, - jstring jlanguage, jstring jcountry); - -/** - * API for setting cloud provisioning information. - */ -JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeSetCloudProvInfo -(JNIEnv *env, jobject jClass, jstring jauthCode, jstring jauthProvider, jstring jciServer); +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeProvisionDeviceProperties +(JNIEnv *env, jobject jClass, jstring jssid, jstring jpwd, jint jauthType, + jint jencType, jstring jlanguage, jstring jcountry, jobject jListener); /** * API for starting the cloud provisioning process. */ JNIEXPORT void JNICALL -Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeStartCloudProvisioning -(JNIEnv *env, jobject jClass, jobject jListener); +Java_org_iotivity_service_easysetup_mediator_RemoteEnrollee_nativeProvisionCloudProperties +(JNIEnv *env, jobject jClass, jstring authCode, jstring authProvider, + jstring ciServer, jobject jListener); #ifdef __cplusplus } diff --git a/service/easy-setup/mediator/richsdk/inc/CloudResource.h b/service/easy-setup/mediator/richsdk/inc/CloudResource.h index f2ca9c6..d9dc4a5 100755 --- a/service/easy-setup/mediator/richsdk/inc/CloudResource.h +++ b/service/easy-setup/mediator/richsdk/inc/CloudResource.h @@ -46,8 +46,8 @@ namespace OIC CloudResource(std::shared_ptr< OC::OCResource > resource); ~CloudResource() = default; - void registerCloudProvisioningStatusCallback (CloudProvStatusCb callback); - void provisionEnrollee(const CloudProvInfo& cloudProvInfo); + void registerCloudPropProvisioningStatusCallback (CloudPropProvStatusCb callback); + void provisionEnrollee(const CloudProp& CloudProp); private: void onCloudProvResponse(const HeaderOptions& headerOptions, const OCRepresentation& rep, @@ -55,9 +55,7 @@ namespace OIC private: std::shared_ptr< OC::OCResource > m_ocResource; - CloudProvStatusCb m_cloudProvStatusCb; - - DataProvInfo m_dataProvInfo; + CloudPropProvStatusCb m_cloudPropProvStatusCb; }; } } diff --git a/service/easy-setup/mediator/richsdk/inc/ESRichCommon.h b/service/easy-setup/mediator/richsdk/inc/ESRichCommon.h index 27089d4..9285433 100755 --- a/service/easy-setup/mediator/richsdk/inc/ESRichCommon.h +++ b/service/easy-setup/mediator/richsdk/inc/ESRichCommon.h @@ -58,13 +58,13 @@ using namespace std; /** * Easysetup defined resoruce types and uris */ -#define OC_RSRVD_ES_RES_TYPE_PROV "ocf.r.prov" +#define OC_RSRVD_ES_RES_TYPE_PROV "ocf.wk.prov" #define OC_RSRVD_ES_URI_PROV "/.well-known/ocf/prov" -#define OC_RSRVD_ES_RES_TYPE_WIFI "ocf.r.wifi" +#define OC_RSRVD_ES_RES_TYPE_WIFI "ocf.wk.wifi" #define OC_RSRVD_ES_URI_WIFI "/.well-known/ocf/prov/wifi" -#define OC_RSRVD_ES_RES_TYPE_CLOUDSERVER "ocf.r.cloudserver" +#define OC_RSRVD_ES_RES_TYPE_CLOUDSERVER "ocf.wk.cloudserver" #define OC_RSRVD_ES_URI_CLOUDSERVER "/.well-known/ocf/prov/cloudserver" -#define OC_RSRVD_ES_RES_TYPE_DEVCONF "ocf.r.devconf" +#define OC_RSRVD_ES_RES_TYPE_DEVCONF "ocf.wk.devconf" #define OC_RSRVD_ES_URI_DEVCONF "/.well-known/ocf/prov/devconf" #ifndef WITH_ARDUINO @@ -132,7 +132,7 @@ namespace OIC string authCode; string authProvider; string ciServer; - } CloudProvInfo; + } CloudProp; typedef struct { @@ -149,11 +149,10 @@ namespace OIC string language; string country; } Device; - } DataProvInfo; + } DeviceProp; typedef struct { - string id; string name; string language; string country; @@ -163,7 +162,7 @@ namespace OIC { vector types; WIFI_FREQ freq; - } NetworkInfo; + } WiFiConfig; typedef enum { @@ -171,7 +170,7 @@ namespace OIC ES_NEED_PROVISIONING, ES_PROVISIONED_ALREADY, ES_PROVISIONING_SUCCESS - } ESDataProvState; + } ESDeviceProvState; typedef enum { @@ -181,13 +180,6 @@ namespace OIC ES_CLOUD_ENROLLEE_NOT_FOUND }ESCloudProvState; - typedef enum - { - ES_SEC_UNKNOWN = 0, - ES_SEC_OWNED, - ES_SEC_ACL_PROVISIONED, - ES_SEC_CREDS_PROVISIONED - } EnrolleeSecState; /** * Security Provisioning Status @@ -214,15 +206,15 @@ namespace OIC ESResult m_result; }; - class PropertyData + class EnrolleeConf { public: - PropertyData() + EnrolleeConf() { } - PropertyData(DeviceConfig devConfig, NetworkInfo netInfo, bool cloudable) : - m_devConfig(devConfig), m_netInfo(netInfo), m_cloudable(cloudable) + EnrolleeConf(DeviceConfig devConfig, WiFiConfig wifiConfig, bool cloudable) : + m_devConfig(devConfig), m_wifiConfig(wifiConfig), m_cloudable(cloudable) { } @@ -231,9 +223,9 @@ namespace OIC return m_devConfig; } - const NetworkInfo& getNetInfo() const + const WiFiConfig& getWiFiConf() const { - return m_netInfo; + return m_wifiConfig; } bool isCloudable() const @@ -243,15 +235,15 @@ namespace OIC private: DeviceConfig m_devConfig; - NetworkInfo m_netInfo; + WiFiConfig m_wifiConfig; bool m_cloudable; }; - class RequestPropertyDataStatus + class GetConfigurationStatus { public: - RequestPropertyDataStatus(ESResult result, const PropertyData& data) : - m_result(result), m_propertyData(data) + GetConfigurationStatus(ESResult result, const EnrolleeConf& conf) : + m_result(result), m_enrolleeConf(conf) { } @@ -260,21 +252,21 @@ namespace OIC return m_result; } - const PropertyData& getPropertyData() + const EnrolleeConf& getEnrolleeConf() { - return m_propertyData; + return m_enrolleeConf; } private: ESResult m_result; - PropertyData m_propertyData; + EnrolleeConf m_enrolleeConf; }; - class DataProvisioningStatus + class DevicePropProvisioningStatus { public: - DataProvisioningStatus(ESResult result, ESDataProvState dataProvState) : - m_result(result), m_state(dataProvState) + DevicePropProvisioningStatus(ESResult result) : + m_result(result) { } @@ -283,20 +275,15 @@ namespace OIC return m_result; } - ESDataProvState getESDataProvState() - { - return m_state; - } private: ESResult m_result; - ESDataProvState m_state; }; - class CloudProvisioningStatus + class CloudPropProvisioningStatus { public: - CloudProvisioningStatus(ESResult result, ESCloudProvState state) : + CloudPropProvisioningStatus(ESResult result, ESCloudProvState state) : m_result(result), m_esCloudState(state) { } @@ -319,17 +306,17 @@ namespace OIC /** * Callback function definition for providing Enrollee security status */ - typedef function< void(shared_ptr< RequestPropertyDataStatus >) > RequestPropertyDataStatusCb; + typedef function< void(shared_ptr< GetConfigurationStatus >) > GetConfigurationStatusCb; /** * Callback function definition for providing Enrollee security status */ - typedef function< void(shared_ptr< DataProvisioningStatus >) > DataProvStatusCb; + typedef function< void(shared_ptr< DevicePropProvisioningStatus >) > DevicePropProvStatusCb; /** * Callback function definition for providing Enrollee security status */ - typedef function< void(shared_ptr< CloudProvisioningStatus >) > CloudProvStatusCb; + typedef function< void(shared_ptr< CloudPropProvisioningStatus >) > CloudPropProvStatusCb; /** * Callback function definition for providing Enrollee security status diff --git a/service/easy-setup/mediator/richsdk/inc/EasySetup.h b/service/easy-setup/mediator/richsdk/inc/EasySetup.h old mode 100644 new mode 100755 index 058ae2e..68eb295 --- a/service/easy-setup/mediator/richsdk/inc/EasySetup.h +++ b/service/easy-setup/mediator/richsdk/inc/EasySetup.h @@ -27,6 +27,7 @@ #include "ESRichCommon.h" #include "RemoteEnrollee.h" +using namespace OC; namespace OIC { namespace Service @@ -34,11 +35,8 @@ namespace OIC class RemoteEnrollee; /** - * This provides methods for Mediator devices to perform EasySetup of Enrollee devices. - * EasySetup involves - * 1) Ownership transfer for enabling secured communication between Mediator and Enrollee - * devices. - * 2) Provisioning of Enrollee devices using the credentails of target Enroller devices. + * This provides an API to instanciate a new RemoteEnrollee object correspondent to Enrollee + * Device to be setup. */ class EasySetup { @@ -50,19 +48,28 @@ namespace OIC static EasySetup* getInstance(); /** - * This API is used for creating a remote Enrollee instance. + * This API is used for creating a remote Enrollee instance. + * + * @param enrolleeResource an OCResource object corresponding to enrollee resource + * discovered in a network. The OCResource object can be obtained by calling + * OCPlatform.findResource() API. What resource you have to discover with + * the OCPlatform.findResource() API is a "provisioning" resource with a certain + * resource type, i.e. ocf.wk.prov * * @throws ESBadRequestException If createEnrolleeDevice is invoked with the same * provisioning information. * * @return Pointer to RemoteEnrollee instance. */ - std::shared_ptr createRemoteEnrollee(); + std::shared_ptr createRemoteEnrollee( + std::shared_ptr< OC::OCResource > enrolleeResource); private: EasySetup(); ~EasySetup(); + private: + std::shared_ptr< OC::OCResource > m_ocResource; static EasySetup *s_instance; }; } diff --git a/service/easy-setup/mediator/richsdk/inc/EnrolleeResource.h b/service/easy-setup/mediator/richsdk/inc/EnrolleeResource.h index 29dec59..4d2ac10 100755 --- a/service/easy-setup/mediator/richsdk/inc/EnrolleeResource.h +++ b/service/easy-setup/mediator/richsdk/inc/EnrolleeResource.h @@ -47,63 +47,29 @@ namespace OIC friend class EnrolleeSecurity; public: - - /** - * EnrolleeResource constructor - * - * @param enrolleeNWProvInfo Provisioning information for the Enrollee - * - * @throw ESBadRequestException is thrown if the parameters are invalid - */ EnrolleeResource(std::shared_ptr< OC::OCResource > resource); - // EnrolleeResource(const DataProvInfo &enrolleeNWProvInfo, - // const WiFiOnboadingConnection &onboardingconn); ~EnrolleeResource() = default; - /** - * Register provisioning status handler. - * - * @param callback Callback to get Provisioning status. - * - * @throws InvalidParameterException If callback is an empty function or null. - * @throws ESBadRequestException If registration is already completed. - * - * @see DataProvisioningStatus - */ - void registerRequestPropertyDataStatusCallback (RequestPropertyDataStatusCb callback); - void registerProvStatusCallback (DataProvStatusCb callback); - - void RequestPropertyData(); + void registerGetConfigurationStatusCallback (GetConfigurationStatusCb callback); + void registerDevicePropProvStatusCallback (DevicePropProvStatusCb callback); - /** - * Function for provisioning of Remote Enrollee resource using the information provided. - * - * @throws InvalidParameterException If cb is empty. - */ - void provisionEnrollee(const DataProvInfo& dataProvInfo); + void getConfiguration(); - /** - * Function for unprovisioning of Remote Enrollee and bring to unprovisioned state - * - * @throws ESBadRequestException If device is not provisioned already. - */ - void unprovisionEnrollee(); + void provisionEnrollee(const DeviceProp& deviceProp); private: std::shared_ptr< OC::OCResource > m_ocResource; - RequestPropertyDataStatusCb m_RequestPropertyDataStatusCb; - DataProvStatusCb m_dataProvStatusCb; - - DataProvInfo m_dataProvInfo; + GetConfigurationStatusCb m_getConfigurationStatusCb; + DevicePropProvStatusCb m_devicePropProvStatusCb; private: - void onRequestPropertyDataResponse(const HeaderOptions& headerOptions, const OCRepresentation& rep, + void onGetConfigurationResponse(const HeaderOptions& headerOptions, const OCRepresentation& rep, const int eCode); void checkProvInformationCb(const HeaderOptions& headerOptions, const OCRepresentation& rep, const int eCode); - PropertyData parsePropertyDataFromRepresentation(const OCRepresentation& rep); + EnrolleeConf parseEnrolleeConfFromRepresentation(const OCRepresentation& rep); }; } } diff --git a/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h b/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h index 37b7bbd..580b9ba 100755 --- a/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h +++ b/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h @@ -43,23 +43,21 @@ namespace OIC class EnrolleeSecurity { public: - EnrolleeSecurity(std::shared_ptr< EnrolleeResource > EnrolleeResource, + EnrolleeSecurity(std::shared_ptr< OC::OCResource > resource, std::string secDbPath); void registerCallbackHandler(SecurityProvStatusCb securityProvStatusCb, SecurityPinCb securityPinCb, SecProvisioningDbPathCb secProvisioningDbPathCb); void performOwnershipTransfer(); - void setTargetDevID(const std::string devID); private: - std::shared_ptr< EnrolleeResource > m_EnrolleeResource; + std::shared_ptr< OC::OCResource > m_ocResource; SecurityProvStatusCb m_securityProvStatusCb; SecurityPinCb m_securityPinCb; SecProvisioningDbPathCb m_secProvisioningDbPathCb; std::shared_ptr< OC::OCSecureResource > m_unownedDevice; - std::string m_deviceId; - EnrolleeSecState m_enrolleeSecState;std::shared_ptr< OC::OCSecureResource > m_securedResource; + std::shared_ptr< OC::OCSecureResource > m_securedResource; std::shared_ptr< OC::OCSecureResource > getEnrollee(OC::DeviceList_t &list); void ownershipTransferCb(OC::PMResultList_t *result, int hasError); diff --git a/service/easy-setup/mediator/richsdk/inc/RemoteEnrollee.h b/service/easy-setup/mediator/richsdk/inc/RemoteEnrollee.h index cbc5ac2..4c0652e 100755 --- a/service/easy-setup/mediator/richsdk/inc/RemoteEnrollee.h +++ b/service/easy-setup/mediator/richsdk/inc/RemoteEnrollee.h @@ -38,9 +38,12 @@ namespace OIC class EnrolleeSecurity; /** - * This class represents Remote Enrollee device instance. - * It will provide APIs for Mediator to perform operations to enable the Enrollee device - * to connect to the Enroller. + * This class represents Remote Enrollee device instance. What operation the class provides: + * 1) Ownership transfer for enabling secured communication between Mediator and Enrollee + * devices. + * 2) Provision WiFi AP information used for which Enrollee is going to connect to the AP + * 3) Provision Device confiruation setting, i.e. language, country, and etc + * 4) Provision Cloud information used for which Enrollee is going to register to the cloud */ class RemoteEnrollee { @@ -65,71 +68,77 @@ namespace OIC #endif //__WITH_DTLS__ /** - * Start provisioning of target Enrollers information to the Enrollee. + * Get an Enrollee's configuration which includes WiFi supported frequency and device name * - * @throws ESBadRequestException If RemoteEnrollee device not created prior to this call. - * - * @see RemoteEnrollee - */ - void initRemoteEnrollee(); - - /** - * Start provisioning of target Enrollers information to the Enrollee. + * @param callback will give the requested configuration * * @throws ESBadRequestException If RemoteEnrollee device not created prior to this call. * - * @see RemoteEnrollee + * @see GetConfigurationStatusCb */ - void requestPropertyData(RequestPropertyDataStatusCb callback); + void getConfiguration(GetConfigurationStatusCb callback); /** - * Start provisioning of target Enrollers information to the Enrollee. + * Do security provisioning such as ownership tranfer to Enrollee. + * + * @param callback will give the result if the security provisioning succeeds or fails for some reasons * * @throws ESBadRequestException If RemoteEnrollee device not created prior to this call. * - * @see RemoteEnrollee + * @see SecurityProvStatusCb */ - void startSecurityProvisioning(SecurityProvStatusCb callback); + void configureSecurity(SecurityProvStatusCb callback); /** - * Start provisioning of target Enrollers information to the Enrollee. + * Provision WiFi AP information and device configuration to Enrollee + * 1. WiFi AP information includes a SSID, password, auth type, and encryption type. + * 2. Device configuration includes a language (IETF language tags) and country (ISO 3166-1 Alpha-2) + * + * @param devProp a data structure storing the above information to be delivered + * @param callback will give the result if the provisioning succeeds or fails * * @throws ESBadRequestException If RemoteEnrollee device not created prior to this call. * - * @see RemoteEnrollee + * @see DeviceProp + * @see DevicePropProvStatusCb */ - void startDataProvisioning(DataProvStatusCb callback); + void provisionDeviceProperties(const DeviceProp& devProp, DevicePropProvStatusCb callback); /** - * Start provisioning of target Enrollers information to the Enrollee. + * Provision Cloud information to Enrollee, which includes Auth code, auth provider, + * Cloud interface server URL, and etc. + * In this function, Discovery for the Enrollee will happen again in a given network. + * Because, this function is expected to call *AFTER* the Enrollee disconnects its Soft AP + * and successfully connects to the certain WiFi AP. In that case, Mediator should discover + * the Enrollee with a certain Device ID in the network. + * + * @param cloudProp a data structure storing the above information to be delivered + * @param callback will give the result if the provisioning succeeds or fails * * @throws ESBadRequestException If RemoteEnrollee device not created prior to this call. * - * @see RemoteEnrollee + * @see CloudProp + * @see CloudPropProvStatusCb */ - void startCloudProvisioning(CloudProvStatusCb callback); + void provisionCloudProperties(const CloudProp& cloudProp, CloudPropProvStatusCb callback); /** - * Get the Provisioning information provided for the current Enrollee. - * - * @return DataProvInfo Provisioning information provided for the current Enrollee. + * Set device ID the target Enrollee has. Note that, if you change the device ID of enrollee, + * unexpected behavior may happen. */ - DataProvInfo getDataProvInfo(); - - void setDataProvInfo(const DataProvInfo& ); - void setCloudProvInfo(const CloudProvInfo& ); + void setDevID(const std::string devId); private: - RemoteEnrollee(); + RemoteEnrollee(std::shared_ptr< OC::OCResource > resource); ESResult discoverResource(); ESResult ESDiscoveryTimeout(unsigned short waittime); void onDeviceDiscovered(std::shared_ptr resource); void initCloudResource(); - void RequestPropertyDataStatusHandler (std::shared_ptr< RequestPropertyDataStatus > status); - void dataProvisioningStatusHandler (std::shared_ptr< DataProvisioningStatus > status); - void cloudProvisioningStatusHandler (std::shared_ptr< CloudProvisioningStatus > status); + void getConfigurationStatusHandler (std::shared_ptr< GetConfigurationStatus > status); + void devicePropProvisioningStatusHandler (std::shared_ptr< DevicePropProvisioningStatus > status); + void cloudPropProvisioningStatusHandler (std::shared_ptr< CloudPropProvisioningStatus > status); void securityStatusHandler(std::shared_ptr< SecProvisioningStatus > status); private: @@ -142,15 +151,11 @@ namespace OIC bool m_discoveryResponse; SecurityProvStatusCb m_securityProvStatusCb; - RequestPropertyDataStatusCb m_requestPropertyDataStatusCb; + GetConfigurationStatusCb m_getConfigurationStatusCb; SecurityPinCb m_securityPinCb; SecProvisioningDbPathCb m_secProvisioningDbPathCb; - DataProvStatusCb m_dataProvStatusCb; - CloudProvStatusCb m_cloudProvStatusCb; - - DataProvInfo m_dataProvInfo; - CloudProvInfo m_cloudProvInfo; - PropertyData m_propertyData; + DevicePropProvStatusCb m_devicePropProvStatusCb; + CloudPropProvStatusCb m_cloudPropProvStatusCb; friend class EasySetup; }; diff --git a/service/easy-setup/mediator/richsdk/src/CloudResource.cpp b/service/easy-setup/mediator/richsdk/src/CloudResource.cpp index c51a648..e95478c 100755 --- a/service/easy-setup/mediator/richsdk/src/CloudResource.cpp +++ b/service/easy-setup/mediator/richsdk/src/CloudResource.cpp @@ -40,22 +40,22 @@ namespace OIC m_ocResource = resource; } - void CloudResource::provisionEnrollee(const CloudProvInfo& cloudProvInfo) + void CloudResource::provisionEnrollee(const CloudProp& cloudProp) { OIC_LOG_V (DEBUG, ES_CLOUD_RES_TAG, "Enter provisionEnrollee."); OCRepresentation provisioningRepresentation; - provisioningRepresentation.setValue(OC_RSRVD_ES_AUTHCODE, cloudProvInfo.authCode); - provisioningRepresentation.setValue(OC_RSRVD_ES_AUTHPROVIDER, cloudProvInfo.authProvider); - provisioningRepresentation.setValue(OC_RSRVD_ES_CISERVER, cloudProvInfo.ciServer); + provisioningRepresentation.setValue(OC_RSRVD_ES_AUTHCODE, cloudProp.authCode); + provisioningRepresentation.setValue(OC_RSRVD_ES_AUTHPROVIDER, cloudProp.authProvider); + provisioningRepresentation.setValue(OC_RSRVD_ES_CISERVER, cloudProp.ciServer); OIC_LOG_V (DEBUG, ES_CLOUD_RES_TAG, "provisionEnrollee : authCode - %s", - (cloudProvInfo.authCode).c_str()); + (cloudProp.authCode).c_str()); OIC_LOG_V (DEBUG, ES_CLOUD_RES_TAG, "provisionEnrollee : authProvider - %s", - (cloudProvInfo.authProvider).c_str()); + (cloudProp.authProvider).c_str()); OIC_LOG_V (DEBUG, ES_CLOUD_RES_TAG, "provisionEnrollee : ciServer - %s", - (cloudProvInfo.ciServer).c_str()); + (cloudProp.ciServer).c_str()); m_ocResource->post(OC_RSRVD_ES_RES_TYPE_PROV, BATCH_INTERFACE, provisioningRepresentation, QueryParamsMap(), @@ -77,7 +77,7 @@ namespace OIC { ESResult result = ESResult::ES_ERROR; - OIC_LOG(DEBUG, ES_CLOUD_RES_TAG,"onCloudProvResponse : onCloudProvResponse is failed"); + OIC_LOG(DEBUG, ES_CLOUD_RES_TAG,"onCloudProvResponse : onCloudProvResponse is failed "); if (eCode == OCStackResult::OC_STACK_UNAUTHORIZED_REQ) { @@ -85,23 +85,23 @@ namespace OIC result = ESResult::ES_UNAUTHORIZED; } - std::shared_ptr< CloudProvisioningStatus > provStatus = std::make_shared< - CloudProvisioningStatus >(result, ESCloudProvState::ES_CLOUD_PROVISIONING_ERROR); - m_cloudProvStatusCb(provStatus); + std::shared_ptr< CloudPropProvisioningStatus > provStatus = std::make_shared< + CloudPropProvisioningStatus >(result, ESCloudProvState::ES_CLOUD_PROVISIONING_ERROR); + m_cloudPropProvStatusCb(provStatus); } else { - OIC_LOG(DEBUG, ES_CLOUD_RES_TAG,"onCloudProvResponse : onCloudProvResponse is success"); - std::shared_ptr< CloudProvisioningStatus > provStatus = std::make_shared< - CloudProvisioningStatus >(ESResult::ES_OK, ESCloudProvState::ES_CLOUD_PROVISIONING_SUCCESS); - m_cloudProvStatusCb(provStatus); + OIC_LOG(DEBUG, ES_CLOUD_RES_TAG,"onCloudProvResponse : onCloudProvResponse is success "); + std::shared_ptr< CloudPropProvisioningStatus > provStatus = std::make_shared< + CloudPropProvisioningStatus >(ESResult::ES_OK, ESCloudProvState::ES_CLOUD_PROVISIONING_SUCCESS); + m_cloudPropProvStatusCb(provStatus); } } - void CloudResource::registerCloudProvisioningStatusCallback(CloudProvStatusCb callback) + void CloudResource::registerCloudPropProvisioningStatusCallback(CloudPropProvStatusCb callback) { - OIC_LOG_V (DEBUG, ES_CLOUD_RES_TAG, "Enter registerCloudProvisioningStatusCallback"); - m_cloudProvStatusCb = callback; + OIC_LOG_V (DEBUG, ES_CLOUD_RES_TAG, "Enter registerCloudPropProvisioningStatusCallback."); + m_cloudPropProvStatusCb = callback; } } } diff --git a/service/easy-setup/mediator/richsdk/src/EasySetup.cpp b/service/easy-setup/mediator/richsdk/src/EasySetup.cpp index 31d4615..96808e6 100644 --- a/service/easy-setup/mediator/richsdk/src/EasySetup.cpp +++ b/service/easy-setup/mediator/richsdk/src/EasySetup.cpp @@ -46,9 +46,9 @@ namespace OIC return s_instance; } - std::shared_ptr EasySetup::createRemoteEnrollee () + std::shared_ptr EasySetup::createRemoteEnrollee (std::shared_ptr< OC::OCResource > resource) { - return std::shared_ptr< RemoteEnrollee > (new RemoteEnrollee()); + return std::shared_ptr< RemoteEnrollee > (new RemoteEnrollee(resource)); } } } diff --git a/service/easy-setup/mediator/richsdk/src/EnrolleeResource.cpp b/service/easy-setup/mediator/richsdk/src/EnrolleeResource.cpp index a06eebb..21c5471 100755 --- a/service/easy-setup/mediator/richsdk/src/EnrolleeResource.cpp +++ b/service/easy-setup/mediator/richsdk/src/EnrolleeResource.cpp @@ -49,31 +49,31 @@ namespace OIC { OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "checkProvInformationCb : Provisioning is failed "); - std::shared_ptr< DataProvisioningStatus > provStatus = std::make_shared< - DataProvisioningStatus >(ESResult::ES_ERROR, ESDataProvState::ES_PROVISIONING_ERROR); - m_dataProvStatusCb(provStatus); + std::shared_ptr< DevicePropProvisioningStatus > provStatus = std::make_shared< + DevicePropProvisioningStatus >(ESResult::ES_ERROR); + m_devicePropProvStatusCb(provStatus); return; } OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "checkProvInformationCb : Provisioning is success. "); - std::shared_ptr< DataProvisioningStatus > provStatus = std::make_shared< - DataProvisioningStatus >(ESResult::ES_OK, ESDataProvState::ES_PROVISIONING_SUCCESS); - m_dataProvStatusCb(provStatus); + std::shared_ptr< DevicePropProvisioningStatus > provStatus = std::make_shared< + DevicePropProvisioningStatus >(ESResult::ES_OK); + m_devicePropProvStatusCb(provStatus); } - void EnrolleeResource::onRequestPropertyDataResponse(const HeaderOptions& /*headerOptions*/, + void EnrolleeResource::onGetConfigurationResponse(const HeaderOptions& /*headerOptions*/, const OCRepresentation& rep, const int eCode) { - OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "onRequestPropertyDataResponse : %s, eCode = %d", + OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "onGetConfigurationResponse : %s, eCode = %d", rep.getUri().c_str(), eCode); if (eCode != 0) { ESResult result = ESResult::ES_ERROR; - OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG,"onRequestPropertyDataResponse : onRequestPropertyDataResponse is failed "); + OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG,"onGetConfigurationResponse : onGetConfigurationResponse is failed "); if (eCode == OCStackResult::OC_STACK_UNAUTHORIZED_REQ) { @@ -82,32 +82,32 @@ namespace OIC result = ESResult::ES_UNAUTHORIZED; } - PropertyData propertyData; - std::shared_ptr< RequestPropertyDataStatus > requestPropertyDataStatus = std::make_shared< - RequestPropertyDataStatus >(result, propertyData ); - m_RequestPropertyDataStatusCb(requestPropertyDataStatus); + EnrolleeConf enrolleeConf; + std::shared_ptr< GetConfigurationStatus > getConfigurationStatus = std::make_shared< + GetConfigurationStatus >(result, enrolleeConf); + m_getConfigurationStatusCb(getConfigurationStatus); } else { - PropertyData propertyData = parsePropertyDataFromRepresentation(rep); + EnrolleeConf enrolleeConf = parseEnrolleeConfFromRepresentation(rep); - std::shared_ptr< RequestPropertyDataStatus > requestPropertyDataStatus = std::make_shared< - RequestPropertyDataStatus >(ESResult::ES_OK, propertyData); - m_RequestPropertyDataStatusCb(requestPropertyDataStatus); + std::shared_ptr< GetConfigurationStatus > getConfigurationStatus = std::make_shared< + GetConfigurationStatus >(ESResult::ES_OK, enrolleeConf); + m_getConfigurationStatusCb(getConfigurationStatus); } } - void EnrolleeResource::registerRequestPropertyDataStatusCallback(RequestPropertyDataStatusCb callback) + void EnrolleeResource::registerGetConfigurationStatusCallback(GetConfigurationStatusCb callback) { - m_RequestPropertyDataStatusCb = callback; + m_getConfigurationStatusCb = callback; } - void EnrolleeResource::registerProvStatusCallback(DataProvStatusCb callback) + void EnrolleeResource::registerDevicePropProvStatusCallback(DevicePropProvStatusCb callback) { - m_dataProvStatusCb = callback; + m_devicePropProvStatusCb = callback; } - void EnrolleeResource::RequestPropertyData() + void EnrolleeResource::getConfiguration() { if (m_ocResource == nullptr) { @@ -117,28 +117,28 @@ namespace OIC OC::QueryParamsMap query; OC::OCRepresentation rep; - std::function< OCStackResult(void) > requestPropertyDataStatus = [&] + std::function< OCStackResult(void) > getConfigurationStatus = [&] { return m_ocResource->get(m_ocResource->getResourceTypes().at(0), BATCH_INTERFACE, query, std::function( - std::bind(&EnrolleeResource::onRequestPropertyDataResponse, this, + std::bind(&EnrolleeResource::onGetConfigurationResponse, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3))); }; - OCStackResult result = requestPropertyDataStatus(); + OCStackResult result = getConfigurationStatus(); if (result != OCStackResult::OC_STACK_OK) { - PropertyData propertyData; - std::shared_ptr< RequestPropertyDataStatus > requestPropertyDataStatus = std::make_shared< - RequestPropertyDataStatus >(ESResult::ES_ERROR, propertyData); - m_RequestPropertyDataStatusCb(requestPropertyDataStatus); + EnrolleeConf enrolleeConf; + std::shared_ptr< GetConfigurationStatus > getConfigurationStatus = std::make_shared< + GetConfigurationStatus >(ESResult::ES_ERROR, enrolleeConf); + m_getConfigurationStatusCb(getConfigurationStatus); return; } } - void EnrolleeResource::provisionEnrollee(const DataProvInfo& dataProvInfo) + void EnrolleeResource::provisionEnrollee(const DeviceProp& deviceProp) { if (m_ocResource == nullptr) @@ -146,30 +146,28 @@ namespace OIC throw ESBadRequestException("Resource is not initialized"); } - m_dataProvInfo = dataProvInfo; - OC::QueryParamsMap query; OC::OCRepresentation provisioningRepresentation; - provisioningRepresentation.setValue(OC_RSRVD_ES_SSID, m_dataProvInfo.WIFI.ssid); - provisioningRepresentation.setValue(OC_RSRVD_ES_CRED, m_dataProvInfo.WIFI.pwd); - provisioningRepresentation.setValue(OC_RSRVD_ES_AUTHTYPE, m_dataProvInfo.WIFI.authtype); - provisioningRepresentation.setValue(OC_RSRVD_ES_ENCTYPE, m_dataProvInfo.WIFI.enctype); - provisioningRepresentation.setValue(OC_RSRVD_ES_LANGUAGE, m_dataProvInfo.Device.language); - provisioningRepresentation.setValue(OC_RSRVD_ES_COUNTRY, m_dataProvInfo.Device.country); + provisioningRepresentation.setValue(OC_RSRVD_ES_SSID, deviceProp.WIFI.ssid); + provisioningRepresentation.setValue(OC_RSRVD_ES_CRED, deviceProp.WIFI.pwd); + provisioningRepresentation.setValue(OC_RSRVD_ES_AUTHTYPE, deviceProp.WIFI.authtype); + provisioningRepresentation.setValue(OC_RSRVD_ES_ENCTYPE, deviceProp.WIFI.enctype); + provisioningRepresentation.setValue(OC_RSRVD_ES_LANGUAGE, deviceProp.Device.language); + provisioningRepresentation.setValue(OC_RSRVD_ES_COUNTRY, deviceProp.Device.country); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "getProvStatusResponse : ssid - %s", - (m_dataProvInfo.WIFI.ssid).c_str()); + (deviceProp.WIFI.ssid).c_str()); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "getProvStatusResponse : pwd - %s", - (m_dataProvInfo.WIFI.pwd).c_str()); + (deviceProp.WIFI.pwd).c_str()); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "getProvStatusResponse : authtype - %d", - m_dataProvInfo.WIFI.authtype); + deviceProp.WIFI.authtype); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "getProvStatusResponse : enctype - %d", - m_dataProvInfo.WIFI.enctype); + deviceProp.WIFI.enctype); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "getProvStatusResponse : language - %s", - (m_dataProvInfo.Device.language).c_str()); + (deviceProp.Device.language).c_str()); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "getProvStatusResponse : country - %s", - (m_dataProvInfo.Device.country).c_str()); + (deviceProp.Device.country).c_str()); m_ocResource->post(OC_RSRVD_ES_RES_TYPE_PROV, BATCH_INTERFACE, provisioningRepresentation, QueryParamsMap(), @@ -181,33 +179,12 @@ namespace OIC std::placeholders::_3))); } - void EnrolleeResource::unprovisionEnrollee() - { - if (m_ocResource == nullptr) - { - throw ESBadRequestException("Resource is not initialized"); - } - - OCRepresentation provisioningRepresentation; - - provisioningRepresentation.setValue(OC_RSRVD_ES_SSID, ""); - provisioningRepresentation.setValue(OC_RSRVD_ES_CRED, ""); - - m_ocResource->post(provisioningRepresentation, QueryParamsMap(), - std::function< - void(const HeaderOptions& headerOptions, const OCRepresentation& rep, - const int eCode) >( - std::bind(&EnrolleeResource::checkProvInformationCb, this, - std::placeholders::_1, std::placeholders::_2, - std::placeholders::_3))); - } - - PropertyData EnrolleeResource::parsePropertyDataFromRepresentation(const OCRepresentation& rep) + EnrolleeConf EnrolleeResource::parseEnrolleeConfFromRepresentation(const OCRepresentation& rep) { - OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_RES_TAG, "Enter parsePropertyDataFromRepresentation"); + OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_RES_TAG, "Enter parseEnrolleeConfFromRepresentation"); - DeviceConfig devInfo; - NetworkInfo netInfo; + DeviceConfig devConf; + WiFiConfig wifiConf; bool cloudable = false; std::vector children = rep.getChildren(); @@ -226,14 +203,14 @@ namespace OIC { OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "OC_RSRVD_ES_SUPPORTEDWIFIMODE = %d", *type); - netInfo.types.push_back(static_cast(*type)); + wifiConf.types.push_back(static_cast(*type)); } - netInfo.freq = static_cast(prop->getValue(OC_RSRVD_ES_SUPPORTEDWIFIFREQ)); + wifiConf.freq = static_cast(prop->getValue(OC_RSRVD_ES_SUPPORTEDWIFIFREQ)); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "OC_RSRVD_ES_SUPPORTEDWIFIFREQ = %d", - netInfo.freq); + wifiConf.freq); } } @@ -246,16 +223,16 @@ namespace OIC { //TODO:: setting DeviceID. //devInfo.id = devId; - devInfo.name = prop->getValue(OC_RSRVD_ES_DEVNAME); - devInfo.language = prop->getValue(OC_RSRVD_ES_LANGUAGE); - devInfo.country = prop->getValue(OC_RSRVD_ES_COUNTRY); + devConf.name = prop->getValue(OC_RSRVD_ES_DEVNAME); + devConf.language = prop->getValue(OC_RSRVD_ES_LANGUAGE); + devConf.country = prop->getValue(OC_RSRVD_ES_COUNTRY); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "OC_RSRVD_ES_DEVNAME = %s", - devInfo.name.c_str()); + devConf.name.c_str()); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "OC_RSRVD_ES_LANGUAGE = %s", - devInfo.language.c_str()); + devConf.language.c_str()); OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_RES_TAG, "OC_RSRVD_ES_COUNTRY = %s", - devInfo.country.c_str()); + devConf.country.c_str()); } } @@ -268,7 +245,7 @@ namespace OIC } } - return PropertyData(devInfo, netInfo, cloudable); + return EnrolleeConf(devConf, wifiConf, cloudable); } } diff --git a/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp b/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp index 7c81788..f485748 100755 --- a/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp +++ b/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp @@ -47,11 +47,10 @@ namespace OIC #define ES_SEC_DISCOVERY_TIMEOUT 5 EnrolleeSecurity::EnrolleeSecurity( - std::shared_ptr< EnrolleeResource > EnrolleeResource, + std::shared_ptr< OC::OCResource > resource, std::string secDbPath) { - m_enrolleeSecState = EnrolleeSecState::ES_SEC_UNKNOWN; - m_EnrolleeResource = EnrolleeResource; + m_ocResource = resource; } void EnrolleeSecurity::registerCallbackHandler(SecurityProvStatusCb securityProvStatusCb, @@ -66,7 +65,7 @@ namespace OIC { for (unsigned int i = 0; i < list.size(); i++) { - if(m_deviceId == list[i]->getDeviceID().c_str()) + if(m_ocResource->sid() == list[i]->getDeviceID().c_str()) { OIC_LOG_V(DEBUG, ENROLEE_SECURITY_TAG, "Device %d ID %s ", i + 1, list[i]->getDeviceID().c_str()); @@ -135,11 +134,6 @@ namespace OIC } } - void EnrolleeSecurity::setTargetDevID(const std::string devID) - { - m_deviceId = devID; - } - void EnrolleeSecurity::performOwnershipTransfer() { OC::DeviceList_t pUnownedDevList, pOwnedDevList; diff --git a/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp b/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp index b2da78f..a6491cc 100755 --- a/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp +++ b/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp @@ -37,16 +37,16 @@ namespace OIC #define ES_REMOTE_ENROLLEE_TAG "ES_REMOTE_ENROLLEE" #define DISCOVERY_TIMEOUT 5 - RemoteEnrollee::RemoteEnrollee() + RemoteEnrollee::RemoteEnrollee(std::shared_ptr< OC::OCResource > resource) { + m_ocResource = resource; + m_enrolleeResource = std::make_shared(m_ocResource); m_securityProvStatusCb = nullptr; - m_requestPropertyDataStatusCb = nullptr; + m_getConfigurationStatusCb = nullptr; m_securityPinCb = nullptr; m_secProvisioningDbPathCb = nullptr; - m_dataProvStatusCb = nullptr; - m_cloudProvStatusCb = nullptr; - - //m_deviceId = nullptr; + m_devicePropProvStatusCb = nullptr; + m_cloudPropProvStatusCb = nullptr; } #ifdef __WITH_DTLS__ @@ -88,48 +88,36 @@ namespace OIC } } - void RemoteEnrollee::RequestPropertyDataStatusHandler ( - std::shared_ptr< RequestPropertyDataStatus > status) + void RemoteEnrollee::getConfigurationStatusHandler ( + std::shared_ptr< GetConfigurationStatus > status) { - OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Entering RequestPropertyDataStatusHandler"); - - OIC_LOG_V(DEBUG,ES_REMOTE_ENROLLEE_TAG,"RequestPropertyDataStatus = %d", status->getESResult()); + OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Entering getConfigurationStatusHandler"); - if(status->getESResult() == ES_OK) - { - m_propertyData = status->getPropertyData(); - } + OIC_LOG_V(DEBUG,ES_REMOTE_ENROLLEE_TAG,"GetConfigurationStatus = %d", status->getESResult()); - m_requestPropertyDataStatusCb(status); + m_getConfigurationStatusCb(status); } - void RemoteEnrollee::dataProvisioningStatusHandler( - std::shared_ptr< DataProvisioningStatus > status) + void RemoteEnrollee::devicePropProvisioningStatusHandler( + std::shared_ptr< DevicePropProvisioningStatus > status) { - OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Entering dataProvisioningStatusHandler"); + OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Entering DevicePropProvisioningStatusHandler"); OIC_LOG_V(DEBUG,ES_REMOTE_ENROLLEE_TAG,"ProvStatus = %d", status->getESResult()); - if (status->getESResult() == ES_OK) - { - if (status->getESDataProvState() >= ESDataProvState::ES_PROVISIONED_ALREADY) - { - OIC_LOG_V(DEBUG,ES_REMOTE_ENROLLEE_TAG,"ProvStatus = %d", status->getESResult()); - } - } - m_dataProvStatusCb(status); + m_devicePropProvStatusCb(status); return; } - void RemoteEnrollee::cloudProvisioningStatusHandler ( - std::shared_ptr< CloudProvisioningStatus > status) + void RemoteEnrollee::cloudPropProvisioningStatusHandler ( + std::shared_ptr< CloudPropProvisioningStatus > status) { - OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Entering cloudProvisioningStatusHandler"); + OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Entering cloudPropProvisioningStatusHandler"); OIC_LOG_V(DEBUG,ES_REMOTE_ENROLLEE_TAG,"CloudProvStatus = %d", status->getESCloudState()); - m_cloudProvStatusCb(status); + m_cloudPropProvStatusCb(status); return; } @@ -207,20 +195,7 @@ namespace OIC OIC_LOG_V (DEBUG, ES_REMOTE_ENROLLEE_TAG, "Host DeviceID of the resource: %s", hostDeviceID.c_str()); - if(m_deviceId .empty()) - { - /* - * Easysetup is always performed with a single Enrollee device and - * in a private network (SoftAP or BLE), so the assumption is that - * only the intended device will respond for the discovery. - * With the above assumption the below two statements are written. - */ - m_ocResource = resource; - m_deviceId = resource->sid(); - m_discoveryResponse = true; - } - - else if(!m_deviceId.empty() && m_deviceId == hostDeviceID) + if(!m_deviceId.empty() && m_deviceId == hostDeviceID) { OIC_LOG (DEBUG, ES_REMOTE_ENROLLEE_TAG, "Find matched CloudResource"); m_ocResource = resource; @@ -240,11 +215,6 @@ namespace OIC { OIC_LOG(DEBUG, ES_REMOTE_ENROLLEE_TAG, "Enter discoverResource"); - if (m_ocResource != nullptr) - { - throw ESBadRequestException("resource is already created"); - } - std::string query(""); query.append(ES_BASE_RES_URI); query.append("?rt="); @@ -278,38 +248,7 @@ namespace OIC return ES_OK; } - void RemoteEnrollee::initRemoteEnrollee() - { - ESResult result = ES_ERROR; - - if (m_enrolleeResource != nullptr) - { - throw ESBadRequestException ("Already created"); - } - - result = discoverResource(); - - if (result == ES_ERROR) - { - OIC_LOG(ERROR,ES_REMOTE_ENROLLEE_TAG, - "Failed to create resource object using discoverResource"); - throw ESBadRequestException ("Resource object not created"); - } - - else - { - if(m_ocResource != nullptr) - { - m_enrolleeResource = std::make_shared(std::move(m_ocResource)); - } - else - { - throw ESBadGetException ("Resource handle is invalid"); - } - } - } - - void RemoteEnrollee::startSecurityProvisioning(SecurityProvStatusCb callback) + void RemoteEnrollee::configureSecurity(SecurityProvStatusCb callback) { #ifdef __WITH_DTLS__ m_securityProvStatusCb = callback; @@ -319,9 +258,8 @@ namespace OIC this, std::placeholders::_1); //TODO : DBPath is passed empty as of now. Need to take dbpath from application. - m_enrolleeSecurity = std::make_shared (m_enrolleeResource, ""); + m_enrolleeSecurity = std::make_shared (m_ocResource, ""); - m_enrolleeSecurity->setTargetDevID(m_deviceId); m_enrolleeSecurity->registerCallbackHandler(securityProvStatusCb, m_securityPinCb, m_secProvisioningDbPathCb); try @@ -340,7 +278,6 @@ namespace OIC return ; } #else - (void) callback; OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Mediator is unsecured."); std::shared_ptr< SecProvisioningStatus > securityProvisioningStatus = @@ -349,54 +286,52 @@ namespace OIC #endif } - void RemoteEnrollee::requestPropertyData(RequestPropertyDataStatusCb callback) + void RemoteEnrollee::getConfiguration(GetConfigurationStatusCb callback) { if(!callback) { throw ESInvalidParameterException("Callback is empty"); } - m_requestPropertyDataStatusCb = callback; + m_getConfigurationStatusCb = callback; if (m_enrolleeResource == nullptr) { throw ESBadRequestException ("Device not created"); } - RequestPropertyDataStatusCb RequestPropertyDataStatusCb = std::bind( - &RemoteEnrollee::RequestPropertyDataStatusHandler, this, std::placeholders::_1); - m_enrolleeResource->registerRequestPropertyDataStatusCallback(RequestPropertyDataStatusCb); - m_enrolleeResource->RequestPropertyData(); + GetConfigurationStatusCb getConfigurationStatusCb = std::bind( + &RemoteEnrollee::getConfigurationStatusHandler, this, std::placeholders::_1); + m_enrolleeResource->registerGetConfigurationStatusCallback(getConfigurationStatusCb); + m_enrolleeResource->getConfiguration(); } - void RemoteEnrollee::startDataProvisioning(DataProvStatusCb callback) + void RemoteEnrollee::provisionDeviceProperties(const DeviceProp& devProp, DevicePropProvStatusCb callback) { - OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Enter startDataProvisioning"); + OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Enter provisionDeviceProperties"); if(!callback) { throw ESInvalidParameterException("Callback is empty"); } - m_dataProvStatusCb = callback; + m_devicePropProvStatusCb = callback; if (m_enrolleeResource == nullptr) { throw ESBadRequestException ("Device not created"); } - if(m_dataProvInfo.WIFI.ssid.empty()) + if(devProp.WIFI.ssid.empty()) { throw ESBadRequestException ("Invalid Provisiong Data."); } - m_dataProvStatusCb = callback; + DevicePropProvStatusCb devicePropProvStatusCb = std::bind( + &RemoteEnrollee::devicePropProvisioningStatusHandler, this, std::placeholders::_1); - DataProvStatusCb dataProvStatusCb = std::bind( - &RemoteEnrollee::dataProvisioningStatusHandler, this, std::placeholders::_1); - - m_enrolleeResource->registerProvStatusCallback(dataProvStatusCb); - m_enrolleeResource->provisionEnrollee(m_dataProvInfo); + m_enrolleeResource->registerDevicePropProvStatusCallback(devicePropProvStatusCb); + m_enrolleeResource->provisionEnrollee(devProp); } void RemoteEnrollee::initCloudResource() @@ -423,10 +358,10 @@ namespace OIC { m_cloudResource = std::make_shared(std::move(m_ocResource)); - std::shared_ptr< CloudProvisioningStatus > provStatus = std::make_shared< - CloudProvisioningStatus >(ESResult::ES_OK, ESCloudProvState::ES_CLOUD_ENROLLEE_FOUND); + std::shared_ptr< CloudPropProvisioningStatus > provStatus = std::make_shared< + CloudPropProvisioningStatus >(ESResult::ES_OK, ESCloudProvState::ES_CLOUD_ENROLLEE_FOUND); - m_cloudProvStatusCb(provStatus); + m_cloudPropProvStatusCb(provStatus); } else { @@ -436,16 +371,25 @@ namespace OIC } - void RemoteEnrollee::startCloudProvisioning(CloudProvStatusCb callback) + void RemoteEnrollee::provisionCloudProperties(const CloudProp& cloudProp, CloudPropProvStatusCb callback) { - OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Enter startCloudProvisioning"); + OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Enter provisionCloudProperties"); + + ESResult result = ES_ERROR; if(!callback) { throw ESInvalidParameterException("Callback is empty"); } - m_cloudProvStatusCb = callback; + m_cloudPropProvStatusCb = callback; + + if(cloudProp.authCode.empty() + || cloudProp.authProvider.empty() + || cloudProp.ciServer.empty()) + { + throw ESBadRequestException ("Invalid Cloud Provisiong Info."); + } try { @@ -455,11 +399,11 @@ namespace OIC catch (const std::exception& e) { OIC_LOG_V(ERROR, ES_REMOTE_ENROLLEE_TAG, - "Exception caught in startCloudProvisioning = %s", e.what()); + "Exception caught in provisionCloudProperties = %s", e.what()); - std::shared_ptr< CloudProvisioningStatus > provStatus = std::make_shared< - CloudProvisioningStatus >(ESResult::ES_ERROR, ESCloudProvState::ES_CLOUD_ENROLLEE_NOT_FOUND); - m_cloudProvStatusCb(provStatus); + std::shared_ptr< CloudPropProvisioningStatus > provStatus = std::make_shared< + CloudPropProvisioningStatus >(ESResult::ES_ERROR, ESCloudProvState::ES_CLOUD_ENROLLEE_NOT_FOUND); + m_cloudPropProvStatusCb(provStatus); } if (m_cloudResource == nullptr) @@ -467,33 +411,16 @@ namespace OIC throw ESBadRequestException ("Cloud Resource not created"); } - if(m_cloudProvInfo.authCode.empty() - || m_cloudProvInfo.authProvider.empty() - || m_cloudProvInfo.ciServer.empty()) - { - throw ESBadRequestException ("Invalid Cloud Provisiong Info."); - } + CloudPropProvStatusCb cloudPropProvStatusCb = std::bind( + &RemoteEnrollee::cloudPropProvisioningStatusHandler, this, std::placeholders::_1); - CloudProvStatusCb cloudProvStatusCb = std::bind( - &RemoteEnrollee::cloudProvisioningStatusHandler, this, std::placeholders::_1); - - m_cloudResource->registerCloudProvisioningStatusCallback(cloudProvStatusCb); - m_cloudResource->provisionEnrollee(m_cloudProvInfo); - } - - void RemoteEnrollee::setDataProvInfo(const DataProvInfo& dataProvInfo) - { - m_dataProvInfo = dataProvInfo; - } - - void RemoteEnrollee::setCloudProvInfo(const CloudProvInfo& cloudProvInfo) - { - m_cloudProvInfo = cloudProvInfo; + m_cloudResource->registerCloudPropProvisioningStatusCallback(cloudPropProvStatusCb); + m_cloudResource->provisionEnrollee(cloudProp); } - DataProvInfo RemoteEnrollee::getDataProvInfo() + void RemoteEnrollee::setDevID(const std::string devId) { - return m_dataProvInfo; + m_deviceId = devId; } } } diff --git a/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/java/org/iotivity/service/easysetup/EasysetupActivity.java b/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/java/org/iotivity/service/easysetup/EasysetupActivity.java index 188a590..91ac88c 100644 --- a/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/java/org/iotivity/service/easysetup/EasysetupActivity.java +++ b/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/java/org/iotivity/service/easysetup/EasysetupActivity.java @@ -41,28 +41,30 @@ import android.widget.Toast; import android.widget.ToggleButton; import org.iotivity.base.ModeType; +import org.iotivity.base.OcConnectivityType; import org.iotivity.base.OcException; import org.iotivity.base.OcPlatform; import org.iotivity.base.OcProvisioning; +import org.iotivity.base.OcResource; import org.iotivity.base.PlatformConfig; import org.iotivity.base.QualityOfService; import org.iotivity.base.ServiceType; -import org.iotivity.service.easysetup.mediator.CloudProvInfo; -import org.iotivity.service.easysetup.mediator.CloudProvisioningCallback; -import org.iotivity.service.easysetup.mediator.CloudProvisioningStatus; -import org.iotivity.service.easysetup.mediator.DataProvInfo; -import org.iotivity.service.easysetup.mediator.DataProvisioningCallback; -import org.iotivity.service.easysetup.mediator.DataProvisioningStatus; +import org.iotivity.service.easysetup.mediator.CloudProp; +import org.iotivity.service.easysetup.mediator.CloudPropProvisioningCallback; +import org.iotivity.service.easysetup.mediator.CloudPropProvisioningStatus; import org.iotivity.service.easysetup.mediator.DeviceConfig; +import org.iotivity.service.easysetup.mediator.DeviceProp; +import org.iotivity.service.easysetup.mediator.DevicePropProvisioningCallback; +import org.iotivity.service.easysetup.mediator.DevicePropProvisioningStatus; import org.iotivity.service.easysetup.mediator.ESException; import org.iotivity.service.easysetup.mediator.EasySetup; -import org.iotivity.service.easysetup.mediator.NetworkInfo; -import org.iotivity.service.easysetup.mediator.PropertyData; +import org.iotivity.service.easysetup.mediator.EnrolleeConf; +import org.iotivity.service.easysetup.mediator.GetConfigurationCallback; +import org.iotivity.service.easysetup.mediator.GetConfigurationStatus; import org.iotivity.service.easysetup.mediator.RemoteEnrollee; -import org.iotivity.service.easysetup.mediator.RequestPropertyDataCallback; -import org.iotivity.service.easysetup.mediator.RequestPropertyDataStatus; import org.iotivity.service.easysetup.mediator.SecurityProvisioningCallback; import org.iotivity.service.easysetup.mediator.SecurityProvisioningStatus; +import org.iotivity.service.easysetup.mediator.WiFiConfig; import org.iotivity.service.easysetup.mediator.enums.ESCloudProvState; import org.iotivity.service.easysetup.mediator.enums.ESResult; import org.iotivity.service.easysetup.mediator.enums.WIFI_AUTHTYPE; @@ -77,6 +79,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; +import java.util.EnumSet; public class EasysetupActivity extends Activity { @@ -90,23 +93,23 @@ public class EasysetupActivity extends Activity { public static final String OIC_SQL_DB_FILE = "PDM.db"; private boolean isSecurityEnabled = false; + private boolean isFirstTime = true; ToggleButton mSecurityMode; RadioGroup mEasysetupProcess; - RadioButton mSecProvProcess; - RadioButton mReqPropertyDataProcess; - RadioButton mDataProvProcess; - RadioButton mCloudProvProcess; - - Button mInitRemoteEnrollee; - Button mStartRequsetPropertyData; - Button mStartSecProvisioning; - Button mStartDataProvisioning; - Button mStartCloudProvisioning; - - TextView mRequesetPropertyDataStateText; - TextView mDevIDText; + RadioButton mConfigureSecProcess; + RadioButton mGetConfigurationProcess; + RadioButton mProvisionDevConfProcess; + RadioButton mProvisionCloudConfProcess; + + Button mDiscoverResource; + Button mStartGetConfiguration; + Button mStartConfigureSec; + Button mStartProvisionDevConf; + Button mStartProvisionCloudConf; + + TextView mGetconfigurationStateText; TextView mDevNameText; TextView mLanguageText; TextView mCountryText; @@ -115,8 +118,8 @@ public class EasysetupActivity extends Activity { TextView mCloudAccessableText; TextView mSecStateText; TextView mSecDevIDText; - TextView mDataProvStateText; - TextView mCloudProvStaeText; + TextView mProvisionDevConfState; + TextView mProvisionCloudConfState; EditText mEnrollerSsidText; EditText mEnrollerPWText; @@ -126,10 +129,10 @@ public class EasysetupActivity extends Activity { EditText mAuthProviderText; EditText mCIServerText; - LinearLayout mRequsetPropertyDataInfo; - LinearLayout mSecProvisioningState; - LinearLayout mDataProvisioningInfo; - LinearLayout mCloudProvisioningInfo; + LinearLayout mGetConfigurationInfo; + LinearLayout mConfigureSecInfo; + LinearLayout mProvisionDevConfInfo; + LinearLayout mProvisionCloudConfInfo; Spinner mAuthType; Spinner mEncType; @@ -137,30 +140,36 @@ public class EasysetupActivity extends Activity { EasySetup mEasySetup; RemoteEnrollee mRemoteEnrollee; + Activity mActivity; + Context mContext; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.easysetup_main); + mActivity = EasysetupActivity.this; + mContext = mActivity.getBaseContext(); + mSecurityMode = (ToggleButton) findViewById(R.id.btn_Security); mEasysetupProcess = (RadioGroup) findViewById(R.id.rg_EasysetupProcess); - mSecProvProcess = (RadioButton) findViewById(R.id.btn_SecurityProv); - mReqPropertyDataProcess = (RadioButton) findViewById(R.id.btn_requestPropertyData); - mDataProvProcess = (RadioButton) findViewById(R.id.btn_DataProv); - mCloudProvProcess = (RadioButton) findViewById(R.id.btn_CloudProv); - - mInitRemoteEnrollee = (Button) findViewById(R.id.btn_initRemoteEnrollee); - mStartRequsetPropertyData = - (Button) findViewById(R.id.btn_startRequsetPropertyData); - mStartSecProvisioning = (Button) findViewById(R.id.btn_startSecProv); - mStartDataProvisioning = (Button) findViewById(R.id.btn_startDataProv); - mStartCloudProvisioning = (Button) findViewById(R.id.btn_startCloudProv); - - mRequesetPropertyDataStateText = - (TextView) findViewById(R.id.txt_requesetPropertyDataState); - mDevIDText = (TextView) findViewById(R.id.txt_devID); + mConfigureSecProcess = (RadioButton) findViewById(R.id.btn_configurSec); + mGetConfigurationProcess = (RadioButton) findViewById(R.id.btn_getConfiguration); + mProvisionDevConfProcess = (RadioButton) findViewById(R.id.btn_provisionDevConf); + mProvisionCloudConfProcess = + (RadioButton) findViewById(R.id.btn_provisionCloudConf); + + mDiscoverResource = (Button) findViewById(R.id.btn_discoverResource); + mStartGetConfiguration = + (Button) findViewById(R.id.btn_startGetConfiguration); + mStartConfigureSec = (Button) findViewById(R.id.btn_startConfigureSec); + mStartProvisionDevConf = (Button) findViewById(R.id.btn_startProvisionDevConf); + mStartProvisionCloudConf = (Button) findViewById(R.id.btn_startProvisionCloudConf); + + mGetconfigurationStateText = + (TextView) findViewById(R.id.txt_getConfigurationState); mDevNameText = (TextView) findViewById(R.id.txt_devName); mLanguageText = (TextView) findViewById(R.id.txt_language); mCountryText = (TextView) findViewById(R.id.txt_country); @@ -169,8 +178,9 @@ public class EasysetupActivity extends Activity { mCloudAccessableText = (TextView) findViewById(R.id.txt_cloudAccessable); mSecStateText = (TextView) findViewById(R.id.txt_secState); mSecDevIDText = (TextView) findViewById(R.id.txt_secDevID); - mDataProvStateText = (TextView) findViewById(R.id.txt_dataProvisioningState); - mCloudProvStaeText = (TextView) findViewById(R.id.txt_cloudProvisioningState); + mProvisionDevConfState = (TextView) findViewById(R.id.txt_provisionDevConfState); + mProvisionCloudConfState = + (TextView) findViewById(R.id.txt_provisionCloudConfState); mEnrollerSsidText = (EditText) findViewById(R.id.editText_EnrollerSSID); mEnrollerPWText = (EditText) findViewById(R.id.editText_EnrollerPW); @@ -180,11 +190,11 @@ public class EasysetupActivity extends Activity { mAuthProviderText = (EditText) findViewById(R.id.editText_authprovider); mCIServerText = (EditText) findViewById(R.id.editText_ciserver); - mRequsetPropertyDataInfo = - (LinearLayout) findViewById(R.id.layout_RequestPropertyData); - mSecProvisioningState = (LinearLayout) findViewById(R.id.layout_SecProvisioning); - mDataProvisioningInfo = (LinearLayout) findViewById(R.id.layout_DataProvisioning); - mCloudProvisioningInfo = (LinearLayout) findViewById(R.id.layout_CloudProvisioning); + mGetConfigurationInfo = + (LinearLayout) findViewById(R.id.layout_GetConfiguration); + mConfigureSecInfo = (LinearLayout) findViewById(R.id.layout_ConfigurSec); + mProvisionDevConfInfo = (LinearLayout) findViewById(R.id.layout_ProvisionDevConf); + mProvisionCloudConfInfo = (LinearLayout) findViewById(R.id.layout_ProvisionCloudConf); mAuthType = (Spinner) findViewById(R.id.spinner_authType); mEncType = (Spinner) findViewById(R.id.spinner_encType); @@ -192,26 +202,26 @@ public class EasysetupActivity extends Activity { mEasysetupProcess.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { - mRequsetPropertyDataInfo.setVisibility(View.GONE); - mSecProvisioningState.setVisibility(View.GONE); - mDataProvisioningInfo.setVisibility(View.GONE); - mCloudProvisioningInfo.setVisibility(View.GONE); + mGetConfigurationInfo.setVisibility(View.GONE); + mConfigureSecInfo.setVisibility(View.GONE); + mProvisionDevConfInfo.setVisibility(View.GONE); + mProvisionCloudConfInfo.setVisibility(View.GONE); switch (checkedId) { - case R.id.btn_SecurityProv: - mSecProvisioningState.setVisibility(View.VISIBLE); + case R.id.btn_configurSec: + mConfigureSecInfo.setVisibility(View.VISIBLE); break; - case R.id.btn_requestPropertyData: - mRequsetPropertyDataInfo.setVisibility(View.VISIBLE); + case R.id.btn_getConfiguration: + mGetConfigurationInfo.setVisibility(View.VISIBLE); break; - case R.id.btn_DataProv: - mDataProvisioningInfo.setVisibility(View.VISIBLE); + case R.id.btn_provisionDevConf: + mProvisionDevConfInfo.setVisibility(View.VISIBLE); break; - case R.id.btn_CloudProv: - mCloudProvisioningInfo.setVisibility(View.VISIBLE); + case R.id.btn_provisionCloudConf: + mProvisionCloudConfInfo.setVisibility(View.VISIBLE); break; } } @@ -234,19 +244,18 @@ public class EasysetupActivity extends Activity { mEncType.setSelection(0); addListenerForDiscoverEnrollee(); - addListenerForStartSecProvisioning(); - addListenerForStartRequsetPropertyData(); - addListenerForStartDataProvisioning(); - addListenerForStartCloudProvisioning(); + addListenerForStartConfigureSec(); + addListenerForStartGetConfiguration(); + addListenerForStartProvisionDevProp(); + addListenerForStartProvisionCloudProp(); mSecurityMode.setClickable(false); - mSecProvProcess.setEnabled(false); - mReqPropertyDataProcess.setEnabled(false); - mDataProvProcess.setEnabled(false); - mCloudProvProcess.setEnabled(false); + mConfigureSecProcess.setEnabled(false); + mGetConfigurationProcess.setEnabled(false); + mProvisionDevConfProcess.setEnabled(false); + mProvisionCloudConfProcess.setEnabled(false); mEasySetup = EasySetup.getInstance(getApplicationContext()); - mRemoteEnrollee = mEasySetup.createRemoteEnrollee(); initOICStack(); } @@ -306,16 +315,67 @@ public class EasysetupActivity extends Activity { // Note : Easy setup is built with SECURED = 0, but user still selects Security feature // while running the Mediator App it couldn't find "libocprovision.so". // As per the programmer guide, security feature should be invoked only if build is done with SECURED = 1. + mSecurityMode.setChecked(false); Log.e(TAG, " Easy setup is built with secured = 0, but executed with security feature"); Toast.makeText(this,"Security is not enabled [Easy setup is built with SECURED = 0]", Toast.LENGTH_LONG).show(); - mSecurityMode.setChecked(false); + return; } - mSecurityMode.setChecked(true); + mSecurityMode.setChecked(false); } + OcPlatform.OnResourceFoundListener listener = + new OcPlatform.OnResourceFoundListener() { + @Override + public void onFindResourceFailed(Throwable throwable, String s) { + Log.e(TAG, "Failed found resource, ecode: " + s); + } + @Override + public void onResourceFound(OcResource ocResource) { + synchronized (mActivity) { + if(isFirstTime){ + if (null == ocResource) { + Log.e(TAG, "Found resource is invalid"); + return; + } + + if(ocResource.getHost().contains("coap+tcp")) { + Log.d(TAG, "Recv Found resource event from tcp port, ignoring URI : " + ocResource.getUri()); + runOnUiThread(new Runnable() { + @Override + public void run() { + mDiscoverResource.setEnabled(true); + } + }); + return; + } + + // Get the resource URI + String resourceUri = ocResource.getUri(); + // Get the resource host address + String hostAddress = ocResource.getHost(); + Log.d(TAG,"URI of the resource: " + resourceUri); + Log.d(TAG,"Host address of the resource: " + hostAddress); + + runOnUiThread(new Runnable() { + @Override + public void run() { + mDiscoverResource.setText("Founded"); + mConfigureSecProcess.setEnabled(true); + mGetConfigurationProcess.setEnabled(true); + mProvisionDevConfProcess.setEnabled(true); + mProvisionCloudConfProcess.setEnabled(true); + } + }); + isFirstTime = false; + mRemoteEnrollee = mEasySetup.createRemoteEnrollee(ocResource); + } + } + } + }; + private void addListenerForDiscoverEnrollee() { - mInitRemoteEnrollee.setOnClickListener(new View.OnClickListener() { + mDiscoverResource.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Thread thread = new Thread() { @@ -325,30 +385,25 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mInitRemoteEnrollee.setEnabled(false); + mDiscoverResource.setEnabled(false); } }); try { - mRemoteEnrollee.initRemoteEnrollee(); - runOnUiThread(new Runnable() { - @Override - public void run() { - mInitRemoteEnrollee.setText("Founded"); - mSecProvProcess.setEnabled(true); - mReqPropertyDataProcess.setEnabled(true); - mDataProvProcess.setEnabled(true); - mCloudProvProcess.setEnabled(true); - } - }); + String requestUri = OcPlatform.WELL_KNOWN_QUERY + "?rt=ocf.wk.prov"; + OcPlatform.findResource("", + requestUri, + EnumSet.of(OcConnectivityType.CT_DEFAULT), + listener + ); } - catch (ESException e) { + catch (OcException e) { e.printStackTrace(); result = false; runOnUiThread(new Runnable() { @Override public void run() { - mInitRemoteEnrollee.setEnabled(true); + mDiscoverResource.setEnabled(true); } }); } @@ -360,8 +415,8 @@ public class EasysetupActivity extends Activity { }); } - private void addListenerForStartSecProvisioning() { - mStartSecProvisioning.setOnClickListener(new View.OnClickListener() { + private void addListenerForStartConfigureSec() { + mStartConfigureSec.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Thread thread = new Thread() { @@ -370,12 +425,12 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mStartSecProvisioning.setEnabled(false); + mStartConfigureSec.setEnabled(false); } }); try { - mRemoteEnrollee.startSecurityProvisioning(new SecurityProvisioningCallback() { + mRemoteEnrollee.configureSecurity(new SecurityProvisioningCallback() { @Override public void onProgress(final SecurityProvisioningStatus securityProvisioningStatus) { if(securityProvisioningStatus.getESResult() == ESResult.ES_OK) { @@ -392,7 +447,7 @@ public class EasysetupActivity extends Activity { @Override public void run() { mSecStateText.setText("Failed"); - mStartSecProvisioning.setEnabled(true); + mStartConfigureSec.setEnabled(true); } }); } @@ -403,7 +458,7 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mStartSecProvisioning.setEnabled(true); + mStartConfigureSec.setEnabled(true); } }); } @@ -415,8 +470,8 @@ public class EasysetupActivity extends Activity { }); } - private void addListenerForStartRequsetPropertyData(){ - mStartRequsetPropertyData.setOnClickListener(new View.OnClickListener() { + private void addListenerForStartGetConfiguration(){ + mStartGetConfiguration.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Thread thread = new Thread() { @@ -425,32 +480,31 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mRequesetPropertyDataStateText.setText("Process"); - mStartRequsetPropertyData.setEnabled(false); + mGetconfigurationStateText.setText("Process"); + mStartGetConfiguration.setEnabled(false); } }); try { - mRemoteEnrollee.requestPropertyData(new RequestPropertyDataCallback() { + mRemoteEnrollee.getConfiguration(new GetConfigurationCallback() { @Override - public void onProgress(RequestPropertyDataStatus requestPropertyDataStatus) { - if(requestPropertyDataStatus.getESResult() == ESResult.ES_OK) { + public void onProgress(GetConfigurationStatus getConfigurationStatus) { + if(getConfigurationStatus.getESResult() == ESResult.ES_OK) { - final PropertyData propertyData = requestPropertyDataStatus.getPropertyData(); - final DeviceConfig devConf = propertyData.getDeviceConfig(); - final NetworkInfo netInfo = propertyData.getNetworkInfo(); + final EnrolleeConf enrolleeConf = getConfigurationStatus.getEnrolleeConf(); + final DeviceConfig devConf = enrolleeConf.getDeviceConfig(); + final WiFiConfig netInfo = enrolleeConf.getWiFiConfig(); runOnUiThread(new Runnable() { @Override public void run() { - mRequesetPropertyDataStateText.setText("Success"); - mDevIDText.setText(devConf.getId()); + mGetconfigurationStateText.setText("Success"); mDevNameText.setText(devConf.getName()); mLanguageText.setText(devConf.getLanguage()); mCountryText.setText(devConf.getCountry()); setWifiModeTypes(netInfo.getWifiModeTypes()); setWifiFreq(netInfo.getWifiFreq()); - if(propertyData.isCloudable()) { + if(enrolleeConf.isCloudable()) { mCloudAccessableText.setText("TRUE"); } else { @@ -464,8 +518,8 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mRequesetPropertyDataStateText.setText("Failed"); - mStartRequsetPropertyData.setEnabled(true); + mGetconfigurationStateText.setText("Failed"); + mStartGetConfiguration.setEnabled(true); } }); } @@ -476,8 +530,8 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mRequesetPropertyDataStateText.setText("Failed"); - mStartRequsetPropertyData.setEnabled(true); + mGetconfigurationStateText.setText("Failed"); + mStartGetConfiguration.setEnabled(true); } }); } @@ -489,8 +543,8 @@ public class EasysetupActivity extends Activity { }); } - private void addListenerForStartDataProvisioning() { - mStartDataProvisioning.setOnClickListener(new View.OnClickListener() { + private void addListenerForStartProvisionDevProp() { + mStartProvisionDevConf.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Thread thread = new Thread() { @@ -500,8 +554,8 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mDataProvStateText.setText("Progress"); - mStartDataProvisioning.setEnabled(false); + mProvisionDevConfState.setText("Progress"); + mStartProvisionDevConf.setEnabled(false); } }); @@ -514,29 +568,27 @@ public class EasysetupActivity extends Activity { String inputLanguage = mInputLanguageText.getText().toString(); String inputCountry = mInputCountryText.getText().toString(); - DataProvInfo dataProvInfo = - new DataProvInfo(enrollerSSID, enrollerPW, authType, encType, + DeviceProp deviceProp = + new DeviceProp(enrollerSSID, enrollerPW, authType, encType, inputLanguage, inputCountry); - mRemoteEnrollee.setDataProvInfo(dataProvInfo); - - mRemoteEnrollee.startDataProvisioning(new DataProvisioningCallback() { + mRemoteEnrollee.provisionDeviceProperties(deviceProp, new DevicePropProvisioningCallback() { @Override - public void onProgress(DataProvisioningStatus dataProvisioningStatus) { - final ESResult result = dataProvisioningStatus.getESResult(); + public void onProgress(DevicePropProvisioningStatus devPropProvisioningStatus) { + final ESResult result = devPropProvisioningStatus.getESResult(); runOnUiThread(new Runnable() { @Override public void run() { if(result.equals(ESResult.ES_OK)) { - mDataProvStateText.setText("Success"); + mProvisionDevConfState.setText("Success"); } else if(result.equals(ESResult.ES_ERROR)) { - mDataProvStateText.setText("Failed"); + mProvisionDevConfState.setText("Failed"); } else if(result.equals(ESResult.ES_UNAUTHORIZED)) { - mDataProvStateText.setText("Failed. Need SecProv"); + mProvisionDevConfState.setText("Failed. Need SecProv"); } - mStartDataProvisioning.setEnabled(true); + mStartProvisionDevConf.setEnabled(true); } }); } @@ -546,8 +598,8 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mDataProvStateText.setText("Failed"); - mStartDataProvisioning.setEnabled(true); + mProvisionDevConfState.setText("Failed"); + mStartProvisionDevConf.setEnabled(true); } }); } @@ -559,8 +611,8 @@ public class EasysetupActivity extends Activity { }); } - private void addListenerForStartCloudProvisioning() { - mStartCloudProvisioning.setOnClickListener(new View.OnClickListener() { + private void addListenerForStartProvisionCloudProp() { + mStartProvisionCloudConf.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Thread thread = new Thread() { @@ -569,8 +621,8 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mCloudProvStaeText.setText("Progress"); - mStartCloudProvisioning.setEnabled(false); + mProvisionCloudConfState.setText("Progress"); + mStartProvisionCloudConf.setEnabled(false); } }); @@ -579,13 +631,12 @@ public class EasysetupActivity extends Activity { String authProvider = mAuthProviderText.getText().toString(); String ciserver = mCIServerText.getText().toString(); - CloudProvInfo cloudProvInfo = - new CloudProvInfo(authCode, authProvider, ciserver); - mRemoteEnrollee.setCloudProvInfo(cloudProvInfo); + CloudProp cloudProp = + new CloudProp(authCode, authProvider, ciserver); - mRemoteEnrollee.startCloudProvisioning(new CloudProvisioningCallback() { + mRemoteEnrollee.provisionCloudProperties(cloudProp, new CloudPropProvisioningCallback() { @Override - public void onProgress(CloudProvisioningStatus cloudProvisioningStatus) { + public void onProgress(CloudPropProvisioningStatus cloudProvisioningStatus) { final ESResult result = cloudProvisioningStatus.getESResult(); final ESCloudProvState state = cloudProvisioningStatus.getESCloudState(); runOnUiThread(new Runnable() { @@ -593,20 +644,20 @@ public class EasysetupActivity extends Activity { public void run() { if(result.equals(ESResult.ES_OK)) { if(state.equals(ESCloudProvState.ES_CLOUD_ENROLLEE_FOUND)) { - mCloudProvStaeText.setText("Found Resource"); + mProvisionCloudConfState.setText("Found Resource"); } else if(state.equals(ESCloudProvState.ES_CLOUD_PROVISIONING_SUCCESS)) { - mCloudProvStaeText.setText("Success"); + mProvisionCloudConfState.setText("Success"); } } else { if(state.equals(ESCloudProvState.ES_CLOUD_ENROLLEE_NOT_FOUND)) { - mCloudProvStaeText.setText("Not Found Resource"); + mProvisionCloudConfState.setText("Not Found Resource"); } else if(state.equals(ESCloudProvState.ES_CLOUD_PROVISIONING_ERROR)) { - mCloudProvStaeText.setText("Failed"); + mProvisionCloudConfState.setText("Failed"); } - mStartCloudProvisioning.setEnabled(true); + mStartProvisionCloudConf.setEnabled(true); } } }); @@ -617,8 +668,8 @@ public class EasysetupActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - mCloudProvStaeText.setText("Failed"); - mStartCloudProvisioning.setEnabled(true); + mProvisionCloudConfState.setText("Failed"); + mStartProvisionCloudConf.setEnabled(true); } }); } diff --git a/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/res/layout/easysetup_main.xml b/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/res/layout/easysetup_main.xml index 2cd0e2a..5d028c0 100644 --- a/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/res/layout/easysetup_main.xml +++ b/service/easy-setup/sampleapp/mediator/android/EasySetup/app/src/main/res/layout/easysetup_main.xml @@ -15,7 +15,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Discovery" - android:id="@+id/btn_initRemoteEnrollee" + android:id="@+id/btn_discoverResource" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" /> @@ -89,30 +89,30 @@ android:layout_width="160dp" android:layout_height="32dp" android:text="@string/securityprovisioning" - android:id="@+id/btn_SecurityProv" + android:id="@+id/btn_configurSec" android:checked="false" android:textSize="12sp" /> @@ -146,7 +146,7 @@ android:layout_height="match_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" - android:id="@+id/layout_SecProvisioning" + android:id="@+id/layout_ConfigurSec" android:layout_marginTop="10dp" android:weightSum="1" android:visibility="gone"> @@ -214,7 +214,7 @@ android:layout_width="90dp" android:layout_height="wrap_content" android:text="START" - android:id="@+id/btn_startSecProv" + android:id="@+id/btn_startConfigureSec" android:layout_marginTop="10dp" android:layout_gravity="bottom|right" /> @@ -226,7 +226,7 @@ android:layout_height="match_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" - android:id="@+id/layout_RequestPropertyData" + android:id="@+id/layout_GetConfiguration" android:layout_marginTop="10dp" android:visibility="gone"> @@ -253,7 +253,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="wait" - android:id="@+id/txt_requesetPropertyDataState" /> + android:id="@+id/txt_getConfigurationState" /> @@ -439,7 +439,7 @@ android:layout_height="match_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" - android:id="@+id/layout_DataProvisioning" + android:id="@+id/layout_ProvisionDevConf" android:layout_marginTop="10dp" android:visibility="gone"> @@ -466,7 +466,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="wait" - android:id="@+id/txt_dataProvisioningState" /> + android:id="@+id/txt_provisionDevConfState" /> @@ -634,7 +634,7 @@ android:layout_height="match_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" - android:id="@+id/layout_CloudProvisioning" + android:id="@+id/layout_ProvisionCloudConf" android:layout_marginTop="10dp" android:visibility="gone"> @@ -661,7 +661,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="wait" - android:id="@+id/txt_cloudProvisioningState" /> + android:id="@+id/txt_provisionCloudConfState" /> -- 2.7.4