Refactoring of EasySetup Android implementation
[platform/upstream/iotivity.git] / service / easy-setup / sdk / mediator / android / EasySetupCore / src / main / java / org / iotivity / service / easysetup / mediator / EasySetupManager.java
1 /******************************************************************\r
2  *\r
3  * Copyright 2015 Samsung Electronics All Rights Reserved.\r
4  *\r
5  *\r
6  *\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  *\r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  *\r
19  ******************************************************************/\r
20 package org.iotivity.service.easysetup.mediator;\r
21 \r
22 import android.content.Context;\r
23 \r
24 //import org.iotivity.ca.CaInterface;\r
25 \r
26 public class EasySetupManager {\r
27     private native void InitEasySetup();\r
28 \r
29     private native void TerminateEasySetup();\r
30 \r
31     // TODO : "OcConnectivityType connectivityType" has to be passed as the\r
32     // second parameter for PerformEasySetup\r
33     // instead of integer\r
34     private native void ProvisionEnrollee(String ipAddress, String netSSID,\r
35             String netPWD, int connectivityType);\r
36 \r
37     private native void StopEnrolleeProvisioning(int connectivityType);\r
38 \r
39     public static native void initialize(Context context);\r
40 \r
41     private static EasySetupManager easySetupManagerInterfaceObj = null;\r
42     private Context                 appContext                   = null;\r
43 \r
44     static {\r
45         // Load Easy Setup JNI interface\r
46         System.loadLibrary("gnustl_shared");\r
47         System.loadLibrary("octbstack");\r
48         System.loadLibrary("connectivity_abstraction");\r
49         System.loadLibrary("easysetup-jni");\r
50     }\r
51 \r
52     private EasySetupManager() {\r
53 \r
54     }\r
55 \r
56     /**\r
57      * Function for Getting instance of EasySetupManager object.\r
58      *\r
59      * @return EasySetupManager instance.\r
60      *\r
61      */\r
62     public static synchronized EasySetupManager getInstance() {\r
63         if (null == easySetupManagerInterfaceObj) {\r
64             easySetupManagerInterfaceObj = new EasySetupManager();\r
65         }\r
66         return easySetupManagerInterfaceObj;\r
67     }\r
68 \r
69     public void setApplicationContext(Context context) {\r
70         appContext = context;\r
71     }\r
72 \r
73     public void initEasySetup() {\r
74         // CaInterface.initialize(appContext);\r
75         InitEasySetup();\r
76     }\r
77 \r
78     public void terminateEasySetup() {\r
79         TerminateEasySetup();\r
80     }\r
81 \r
82     public void provisionEnrollee(String ipAddress, String netSSID,\r
83             String netPWD, int connectivityType) {\r
84 \r
85         ProvisionEnrollee(ipAddress, netSSID, netPWD, connectivityType);\r
86     }\r
87 \r
88     public void stopEnrolleeProvisioning(int connectivityType) {\r
89         StopEnrolleeProvisioning(connectivityType);\r
90     }\r
91 \r
92 }\r