* ***************************************************************
*
* Copyright 2017 Samsung Electronics All Rights Reserved.
- *
+ *
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
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;
/**
- * <To be modified>
- * This is facade class, a single point of contact for Application.
- * It contains set of APIs to do easy setup of the enrolling device.
- * ON-BOARDING - This is a step to establish connectivity between the device & Mediator device.
- * PROVISION - This is a step where the netowork's detail & credentials are given to the
- * enrolling device.
+ * This provides an API to instanciate a new RemoteEnrollee object correspondent to Enrollee
+ * Device to be setup.
*/
public class EasySetup {
private static final String TAG = EasySetup.class.getName();
-
private static EasySetup sInstance;
private static Context mContext;
protected RemoteEnrollee mRemoteEnrollee;
- //function to call the native nativeCreateRemoteEnrollee
- private native RemoteEnrollee nativeCreateRemoteEnrollee();
-
+ // function to call the native nativeCreateRemoteEnrollee
+ private native RemoteEnrollee nativeCreateRemoteEnrollee(OcResource enrolleeResource);
static {
// Load Easy Setup JNI interface
+ try
+ {
+ System.loadLibrary("ocprovision");
+ } catch (UnsatisfiedLinkError e) {
+ Log.i(TAG, "ocprovision library does not exist. (Unsecure mode)");
+ }
+
+ System.loadLibrary("ocstack-jni");
System.loadLibrary("ESMediatorRich");
System.loadLibrary("easysetup-jni");
}
return sInstance;
}
- /**
- * API to create a new RemoteEnrollee 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. oic.r.easysetup
+ *
+ * @return Pointer to RemoteEnrollee instance
*/
- public synchronized RemoteEnrollee createRemoteEnrollee()
+ public synchronized RemoteEnrollee createRemoteEnrollee(OcResource enrolleeResource)
{
- // native call
- mRemoteEnrollee = nativeCreateRemoteEnrollee();
- mRemoteEnrolleeList.add(mRemoteEnrollee);
- return mRemoteEnrollee;
- }
+ mRemoteEnrollee = nativeCreateRemoteEnrollee(enrolleeResource);
- /**
- * Reset the Easy setup
- */
- public void finish() {
- //Call the stop Provisioning
- //for (RemoteEnrollee remoteEnrollee : mRemoteEnrolleeList)
- // remoteEnrollee.stopProvisioningProcess();
+ if(mRemoteEnrollee != null)
+ {
+ mRemoteEnrolleeList.add(mRemoteEnrollee);
+ return mRemoteEnrollee;
}
+ return null;
+ }
}