Fixed prevent and klock work issues reported.
[platform/upstream/iotivity.git] / resource / csdk / connectivity / src / bt_edr_adapter / android / caedrnwmonitor.c
1 #include <stdio.h>
2 #include <string.h>
3 #include <jni.h>
4
5 #include "caedrinterface.h"
6 #include "caedrnwmonitor.h"
7 #include "logger.h"
8 #include "oic_malloc.h"
9 #include "uthreadpool.h" /* for thread pool */
10 #include "umutex.h"
11 #include "uarraylist.h"
12 #include "caadapterutils.h"
13
14 #include "com_iotivity_jar_CAEDRInterface.h"
15
16 //#define DEBUG_MODE
17 #define TAG PCF("CA_EDR_MONITOR")
18
19 #define BT_STATE_ON         12
20 #define BT_STATE_OFF        10
21
22 // temp method
23 static JavaVM *g_jvm;
24 static jobject gContext;
25 static CAEDRNetworkStatusCallback gNetworkChangeCb = NULL;
26
27 void CAEDRNetworkMonitorJNISetContext()
28 {
29     OIC_LOG_V(DEBUG, TAG, "CAEDRNetworkMonitorJNISetContext");
30     gContext = CANativeJNIGetContext();
31 }
32
33 //getting jvm
34 void CAEDRNetworkMonitorJniInit()
35 {
36     OIC_LOG_V(DEBUG, TAG, "CAEDRNetworkMonitorJniInit");
37     g_jvm = CANativeJNIGetJavaVM();
38 }
39
40 CAResult_t CAEDRInitializeNetworkMonitor()
41 {
42     OIC_LOG_V(DEBUG, TAG, "IN");
43
44     CAEDRNetworkMonitorJniInit();
45     CANativeJNIGetJavaVM();
46
47     OIC_LOG_V(DEBUG, TAG, "OUT");
48     return CA_STATUS_OK;
49 }
50
51 void CAEDRSetNetworkChangeCallback(
52     CAEDRNetworkStatusCallback networkChangeCallback)
53 {
54     OIC_LOG_V(DEBUG, TAG, "CAEDRSetNetworkChangeCallback");
55     gNetworkChangeCb = networkChangeCallback;
56 }
57
58 void CAEDRTerminateNetworkMonitor(void)
59 {
60     OIC_LOG_V(DEBUG, TAG, "IN");
61
62     OIC_LOG_V(DEBUG, TAG, "OUT");
63 }
64
65 CAResult_t CAEDRStartNetworkMonitor()
66 {
67     OIC_LOG_V(DEBUG, TAG, "IN");
68
69     OIC_LOG_V(DEBUG, TAG, "OUT");
70     return CA_STATUS_OK;
71 }
72
73 CAResult_t CAEDRStopNetworkMonitor()
74 {
75     OIC_LOG_V(DEBUG, TAG, "IN");
76
77     OIC_LOG_V(DEBUG, TAG, "OUT");
78     return CA_STATUS_OK;
79 }
80
81 CAResult_t CAEDRClientSetCallbacks(void)
82 {
83     OIC_LOG_V(DEBUG, TAG, "IN");
84
85     OIC_LOG_V(DEBUG, TAG, "OUT");
86     return CA_STATUS_OK;
87 }
88
89 JNIEXPORT void JNICALL
90 Java_com_iotivity_jar_CAEDRInterface_CAEDRStateChangedCallback
91 (JNIEnv *env, jobject obj, jint status)
92 {
93     // STATE_ON:12, STATE_OFF:10
94     OIC_LOG_V(DEBUG, TAG, "CAEDRInterface - Network State Changed");
95
96     if(gNetworkChangeCb == NULL)
97         OIC_LOG_V(DEBUG, TAG, "gNetworkChangeCb is null", status);
98
99     if(BT_STATE_ON == status)
100     {
101         CANetworkStatus_t newStatus = CA_INTERFACE_UP;
102         CAEDRServerStartAccpetThread();
103         gNetworkChangeCb(newStatus);
104     }
105     else if(BT_STATE_OFF == status)
106     {
107         CANetworkStatus_t newStatus = CA_INTERFACE_DOWN;
108         CAEDRNativeRemoveAllDeviceSocket(env);
109         CAEDRNativeRemoveAllDeviceState(env);
110         gNetworkChangeCb(newStatus);
111     }
112 }
113
114 JNIEXPORT void JNICALL
115 Java_com_iotivity_jar_CAEDRInterface_CAEDRBondStateChangedCallback
116 (JNIEnv *env, jobject obj, jstring addr)
117 {
118     OIC_LOG_V(DEBUG, TAG, "CAEDRInterface - Bond State Changed");
119
120     if(addr)
121     {
122         CAEDRNativeRemoveDeviceSocketBaseAddr(env, addr);
123         CAEDRNativeRemoveDevice(env, addr);
124     }
125 }