1 /* ****************************************************************
3 * Copyright 2016 Samsung Electronics All Rights Reserved.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 ******************************************************************/
24 #include "cacommonutil.h"
25 #include "camanagerleutil.h"
26 #include "caleclient.h"
27 #include "caleutils.h"
29 #define TAG "OIC_CA_MANAGER_UTIL"
31 static const char CLASSPATH_CONTENT_PREF[] = "android/content/SharedPreferences";
32 static const char CLASSPATH_CONTENT_PREF_EDITOR[] = "android/content/SharedPreferences$Editor";
33 static const char CLASSPATH_CONTEXT[] = "android/content/Context";
35 static const char PREF_NAME_CONNECTED_DEVICE[] = "PREF_NAME_CONNECTED_DEVICE";
36 static const char PREF_KEY_CONNECTED_DEVICE[] = "PREF_KEY_CONNECTED_DEVICE";
38 static const char METHODID_BOOLEAN_RET_STRING_PARAM[] = "(Ljava/lang/String;)Z";
40 static jobject CAManagerGetAdapterContext(JNIEnv *env)
42 OIC_LOG(DEBUG, TAG, "CAManagerGetAdapterContext");
43 VERIFY_NON_NULL_RET(env, TAG, "env is null", NULL);
45 jclass jni_cid_BTAdapter = (*env)->FindClass(env, CLASSPATH_BT_ADAPTER);
46 if (!jni_cid_BTAdapter)
48 OIC_LOG(ERROR, TAG, "jni_cid_BTAdapter: jni_cid_BTAdapter is null");
52 jmethodID jni_mid_getDefaultAdapter = (*env)->GetStaticMethodID(env, jni_cid_BTAdapter,
54 METHODID_OBJECTNONPARAM);
55 if (!jni_mid_getDefaultAdapter)
57 OIC_LOG(ERROR, TAG, "jni_mid_getDefaultAdapter is null");
61 jobject jni_obj_BTAdapter = (*env)->CallStaticObjectMethod(env, jni_cid_BTAdapter,
62 jni_mid_getDefaultAdapter);
63 if (!jni_obj_BTAdapter)
65 OIC_LOG(ERROR, TAG, "jni_obj_BTAdapter is null");
68 return jni_obj_BTAdapter;
71 jobject CAManagerGetRemoteDevice(JNIEnv *env, jstring address)
73 OIC_LOG(DEBUG, TAG, "IN - CAManagerGetRemoteDevice");
75 VERIFY_NON_NULL_RET(env, TAG, "env is null", NULL);
76 VERIFY_NON_NULL_RET(address, TAG, "address is null", NULL);
78 jclass jni_cid_BTAdapter = (*env)->FindClass(env, CLASSPATH_BT_ADAPTER);
79 if (!jni_cid_BTAdapter)
81 OIC_LOG(ERROR, TAG, "jni_cid_BTAdapter is null");
85 // get remote bt adapter method
86 jmethodID jni_mid_getDefaultAdapter = (*env)->GetStaticMethodID(env, jni_cid_BTAdapter,
88 METHODID_OBJECTNONPARAM);
89 if (!jni_mid_getDefaultAdapter)
91 OIC_LOG(ERROR, TAG, "jni_mid_getDefaultAdapter is null");
95 // gat bt adapter object
96 jobject jni_obj_BTAdapter = (*env)->CallStaticObjectMethod(env, jni_cid_BTAdapter,
97 jni_mid_getDefaultAdapter);
98 if (!jni_obj_BTAdapter)
100 OIC_LOG(ERROR, TAG, "jni_obj_BTAdapter is null");
104 jmethodID jni_mid_getRemoteDevice = (*env)->GetMethodID(env, jni_cid_BTAdapter,
106 METHODID_BT_REMOTE_DEVICE);
107 if (!jni_mid_getRemoteDevice)
109 OIC_LOG(ERROR, TAG, "jni_mid_getRemoteDevice is null");
113 jobject jni_obj_device = (*env)->CallObjectMethod(env, jni_obj_BTAdapter,
114 jni_mid_getRemoteDevice,
118 OIC_LOG(ERROR, TAG, "jni_obj_device is null");
122 OIC_LOG(DEBUG, TAG, "OUT - CAManagerGetRemoteDevice");
123 return jni_obj_device;
126 bool CAManagerIsDeviceBonded(JNIEnv *env, jobject btDevice)
128 OIC_LOG(DEBUG, TAG, "IN - CAManagerIsDeviceBonded");
130 VERIFY_NON_NULL(env, TAG, "env is null");
131 VERIFY_NON_NULL(btDevice, TAG, "btDevice is null");
133 jclass jni_cid_BTDevice = (*env)->FindClass(env, CLASSPATH_BT_DEVICE);
134 if (!jni_cid_BTDevice)
136 OIC_LOG(ERROR, TAG, "jni_cid_BTDevice is null");
140 jmethodID jni_mid_getBondState = (*env)->GetMethodID(env, jni_cid_BTDevice,
141 "getBondState", "()I");
142 if (!jni_mid_getBondState)
144 OIC_LOG(ERROR, TAG, "jni_mid_getBondState is null");
148 jint jni_bond_state = (*env)->CallIntMethod(env, btDevice, jni_mid_getBondState);
149 OIC_LOG_V(DEBUG, TAG, "bond state is %d", jni_bond_state);
151 // BOND_BONDED - Constant value : 12 (0x0000000c)
152 jfieldID id_bonded = (*env)->GetStaticFieldID(env, jni_cid_BTDevice,
156 OIC_LOG(ERROR, TAG, "id_bonded is null");
160 jint jni_bonded_const = (*env)->GetStaticIntField(env, jni_cid_BTDevice, id_bonded);
162 if (jni_bond_state == jni_bonded_const)
164 OIC_LOG(INFO, TAG, "it is not bonded to each other");
167 OIC_LOG(DEBUG, TAG, "OUT - CAManagerIsDeviceBonded");
171 bool CAManagerControlAdapter(JNIEnv *env, bool control_flag)
173 OIC_LOG(DEBUG, TAG, "IN - CAManagerControlAdapter");
175 VERIFY_NON_NULL_RET(env, TAG, "env", false);
177 jobject jni_obj_BTAdapter = CAManagerGetAdapterContext(env);
178 if (!jni_obj_BTAdapter)
180 OIC_LOG(ERROR, TAG, "jni_obj_BTAdapter is null");
184 jclass jni_cid_BTAdapter = (*env)->FindClass(env, CLASSPATH_BT_ADAPTER);
185 if (!jni_cid_BTAdapter)
187 OIC_LOG(ERROR, TAG, "jni_cid_BTAdapter: jni_cid_BTAdapter is null");
191 OIC_LOG_V(DEBUG, TAG, "change adapter : %d", control_flag);
192 jmethodID jni_mid_control = NULL;
196 jni_mid_control = (*env)->GetMethodID(env, jni_cid_BTAdapter, "enable", "()Z");
201 jni_mid_control = (*env)->GetMethodID(env, jni_cid_BTAdapter, "disable", "()Z");
204 if (!jni_mid_control)
206 OIC_LOG(ERROR, TAG, "jni_mid_control is null");
210 OIC_LOG(DEBUG, TAG, "CALL API - Adapter Will be Changed");
211 jboolean jni_res = (*env)->CallBooleanMethod(env, jni_obj_BTAdapter, jni_mid_control);
216 CAResult_t CAManagerReadRemoteRssi(JNIEnv *env, jobject bluetoothGatt)
218 OIC_LOG(DEBUG, TAG, "CAManagerReadRemoteRssi");
220 VERIFY_NON_NULL(env, TAG, "env is null");
221 VERIFY_NON_NULL(bluetoothGatt, TAG, "bluetoothGatt is null");
223 if (!CALEIsEnableBTAdapter(env))
225 OIC_LOG(INFO, TAG, "BT adapter is not enabled");
226 return CA_ADAPTER_NOT_ENABLED;
229 // get BluetoothGatt class
230 OIC_LOG(DEBUG, TAG, "get BluetoothGatt class");
231 jclass jni_cid_BluetoothGatt = (*env)->FindClass(env, CLASSPATH_BT_GATT);
232 if (!jni_cid_BluetoothGatt)
234 OIC_LOG(ERROR, TAG, "jni_cid_BluetoothGatt is null");
235 return CA_STATUS_FAILED;
238 OIC_LOG(DEBUG, TAG, "discovery gatt services method");
239 jmethodID jni_mid_readRemoteRssi = (*env)->GetMethodID(env, jni_cid_BluetoothGatt,
240 "readRemoteRssi", "()Z");
241 if (!jni_mid_readRemoteRssi)
243 OIC_LOG(ERROR, TAG, "jni_mid_readRemoteRssi is null");
244 return CA_STATUS_FAILED;
246 // call disconnect gatt method
247 OIC_LOG(DEBUG, TAG, "CALL API - request readremoteRssi");
248 jboolean ret = (*env)->CallBooleanMethod(env, bluetoothGatt, jni_mid_readRemoteRssi);
251 OIC_LOG(ERROR, TAG, "readremoteRssi has not been called");
252 return CA_STATUS_FAILED;
258 jobject CAManagerGetSharedPreference(JNIEnv *env, jobject context, jstring prefName)
260 VERIFY_NON_NULL_RET(env, TAG, "env", NULL);
261 VERIFY_NON_NULL_RET(context, TAG, "context", NULL);
262 VERIFY_NON_NULL_RET(prefName, TAG, "prefName", NULL);
264 jclass jni_cls_context = (*env)->FindClass(env, CLASSPATH_CONTEXT);
265 if (!jni_cls_context)
267 OIC_LOG(ERROR, TAG, "jni_cls_context is null");
271 // getSharedPreferences
272 jmethodID jni_mid_getPref = (*env)->GetMethodID(env, jni_cls_context, "getSharedPreferences",
273 "(Ljava/lang/String;I)"
274 "Landroid/content/SharedPreferences;");
275 if (!jni_mid_getPref)
277 OIC_LOG(ERROR, TAG, "jni_mid_getPref is null");
281 jobject jni_obj_sharedPref = (*env)->CallObjectMethod(env, context,
285 if (!jni_obj_sharedPref)
287 OIC_LOG(ERROR, TAG, "jni_obj_sharedPref is null");
291 return jni_obj_sharedPref;
294 jobject CAManagerGetPrefEditObject(JNIEnv *env, jobject context)
296 OIC_LOG(DEBUG, TAG, "IN-CAManagerGetPrefEditObject");
297 VERIFY_NON_NULL_RET(env, TAG, "env", NULL);
298 VERIFY_NON_NULL_RET(context, TAG, "context", NULL);
300 jstring jni_str_prefName = (*env)->NewStringUTF(env, PREF_NAME_CONNECTED_DEVICE);
301 if (!jni_str_prefName)
303 OIC_LOG(ERROR, TAG, "jni_str_prefName is null");
307 jstring jni_str_prefKey = (*env)->NewStringUTF(env, PREF_KEY_CONNECTED_DEVICE);
308 if (!jni_str_prefKey)
310 OIC_LOG(ERROR, TAG, "jni_str_prefKey is null");
314 // get SharedPreference
315 jobject jni_obj_pref = CAManagerGetSharedPreference(env, context, jni_str_prefName);
318 OIC_LOG(ERROR, TAG, "jni_obj_pref is null");
323 jobject jni_cls_pref = (*env)->FindClass(env, CLASSPATH_CONTENT_PREF);
326 OIC_LOG(ERROR, TAG, "jni_cls_pref is null");
330 jmethodID jni_mid_prefEdit = (*env)->GetMethodID(env, jni_cls_pref, "edit",
331 "()Landroid/content/SharedPreferences$Editor;");
332 if (!jni_mid_prefEdit)
334 OIC_LOG(ERROR, TAG, "jni_mid_prefEdit is null");
338 jobject jni_obj_prefEdit = (*env)->CallObjectMethod(env, jni_obj_pref, jni_mid_prefEdit);
339 if (!jni_obj_prefEdit)
341 OIC_LOG(ERROR, TAG, "jni_obj_prefEdit is null");
345 OIC_LOG(DEBUG, TAG, "OUT-CAManagerGetPrefEditObject");
346 return jni_obj_prefEdit;
349 bool CAManagerUpdatePrefStringSet(JNIEnv *env, jobject context, jobject set)
351 OIC_LOG(DEBUG, TAG, "IN-CAManagerUpdatePrefStringSet");
353 VERIFY_NON_NULL_RET(env, TAG, "env", false);
354 VERIFY_NON_NULL_RET(context, TAG, "context", false);
355 VERIFY_NON_NULL_RET(set, TAG, "set", false);
357 jstring jni_str_prefKey = (*env)->NewStringUTF(env, PREF_KEY_CONNECTED_DEVICE);
358 if (!jni_str_prefKey)
360 OIC_LOG(ERROR, TAG, "jni_str_prefKey is null");
364 jobject jni_obj_prefEdit = CAManagerGetPrefEditObject(env, context);
365 if (!jni_obj_prefEdit)
367 OIC_LOG(ERROR, TAG, "jni_obj_prefEdit is null");
372 jobject jni_cls_edit = (*env)->FindClass(env, CLASSPATH_CONTENT_PREF_EDITOR);
375 OIC_LOG(ERROR, TAG, "jni_cls_edit is null");
379 // get putString method interface
380 jmethodID jni_mid_PrefPutStringSet = (*env)->GetMethodID(env, jni_cls_edit, "putStringSet",
381 "(Ljava/lang/String;Ljava/util/Set;)"
382 "Landroid/content/SharedPreferences"
384 if (!jni_mid_PrefPutStringSet)
386 OIC_LOG(ERROR, TAG, "jni_mid_PrefPutStringSet is null");
390 jobject gSetString = (jobject)(*env)->NewGlobalRef(env, set);
393 OIC_LOG(ERROR, TAG, "gAddress is null");
397 OIC_LOG(DEBUG, TAG, "CALL API - request putString for SharedPreferences.Editor");
398 (*env)->CallObjectMethod(env, jni_obj_prefEdit, jni_mid_PrefPutStringSet,
399 jni_str_prefKey, gSetString);
401 // get commit method interface
402 jmethodID jni_mid_PrefCommit = (*env)->GetMethodID(env, jni_cls_edit, "commit",
404 if (!jni_mid_PrefCommit)
406 OIC_LOG(ERROR, TAG, "jni_mid_PrefCommit is null");
410 jboolean res = (*env)->CallBooleanMethod(env, jni_obj_prefEdit, jni_mid_PrefCommit);
412 OIC_LOG(DEBUG, TAG, "OUT-CAManagerUpdatePrefStringSet");
416 jobject CAManagerGetPrefStringSet(JNIEnv *env, jobject context)
418 OIC_LOG(DEBUG, TAG, "CAManagerGetPrefStringSet");
420 VERIFY_NON_NULL_RET(env, TAG, "env", NULL);
421 VERIFY_NON_NULL_RET(context, TAG, "context", NULL);
423 jstring jni_str_prefName = (*env)->NewStringUTF(env, PREF_NAME_CONNECTED_DEVICE);
424 if (!jni_str_prefName)
426 OIC_LOG(ERROR, TAG, "jni_str_prefName is null");
430 jstring jni_str_prefKey = (*env)->NewStringUTF(env, PREF_KEY_CONNECTED_DEVICE);
431 if (!jni_str_prefKey)
433 OIC_LOG(ERROR, TAG, "jni_str_prefKey is null");
437 // get SharedPreference
438 jobject jni_obj_pref = CAManagerGetSharedPreference(env, context, jni_str_prefName);
441 OIC_LOG(ERROR, TAG, "jni_obj_pref is null");
445 // contains(String key)
446 jobject jni_cls_pref = (*env)->FindClass(env, CLASSPATH_CONTENT_PREF);
449 OIC_LOG(ERROR, TAG, "jni_cls_pref is null");
453 jmethodID jni_mid_getStringSet = (*env)->GetMethodID(env, jni_cls_pref, "getStringSet",
454 "(Ljava/lang/String;Ljava/util/Set;)"
456 if (!jni_mid_getStringSet)
458 OIC_LOG(ERROR, TAG, "jni_mid_getStringSet is null");
462 jobject jni_defSet = CAManagerCreateSetString(env);
465 OIC_LOG(ERROR, TAG, "jni_defSet is null");
469 jobject value = (*env)->CallObjectMethod(env, jni_obj_pref,
470 jni_mid_getStringSet,
477 bool CAManagerContainsPrefStringSet(JNIEnv *env, jobject context)
479 OIC_LOG(DEBUG, TAG, "CAManagerContainsPrefStringSet");
481 VERIFY_NON_NULL_RET(env, TAG, "env", false);
482 VERIFY_NON_NULL_RET(context, TAG, "context", false);
484 jstring jni_str_prefName = (*env)->NewStringUTF(env, PREF_NAME_CONNECTED_DEVICE);
485 if (!jni_str_prefName)
487 OIC_LOG(ERROR, TAG, "jni_str_prefName is null");
491 jstring jni_str_prefKey = (*env)->NewStringUTF(env, PREF_KEY_CONNECTED_DEVICE);
492 if (!jni_str_prefKey)
494 OIC_LOG(ERROR, TAG, "jni_str_prefKey is null");
498 // get SharedPreference
499 jobject jni_obj_pref = CAManagerGetSharedPreference(env, context, jni_str_prefName);
502 OIC_LOG(ERROR, TAG, "jni_obj_pref is null");
506 // contains(String key)
507 jobject jni_cls_pref = (*env)->FindClass(env, CLASSPATH_CONTENT_PREF);
510 OIC_LOG(ERROR, TAG, "jni_cls_pref is null");
514 jmethodID jni_mid_prefContains = (*env)->GetMethodID(env, jni_cls_pref, "contains",
515 METHODID_BOOLEAN_RET_STRING_PARAM);
516 if (!jni_mid_prefContains)
518 OIC_LOG(ERROR, TAG, "jni_mid_prefContains is null");
522 jboolean res = (*env)->CallBooleanMethod(env, jni_obj_pref,
523 jni_mid_prefContains,
526 OIC_LOG_V(DEBUG, TAG, "Preference - contains (%d)", res);
530 bool CAManagerRemovePrefStringSet(JNIEnv *env, jobject context)
532 OIC_LOG(DEBUG, TAG, "CAManagerRemovePrefStringSet");
534 VERIFY_NON_NULL_RET(env, TAG, "env", false);
535 VERIFY_NON_NULL_RET(context, TAG, "context", false);
537 jstring jni_str_prefKey = (*env)->NewStringUTF(env, PREF_KEY_CONNECTED_DEVICE);
538 if (!jni_str_prefKey)
540 OIC_LOG(ERROR, TAG, "jni_str_prefKey is null");
544 jobject jni_obj_prefEdit = CAManagerGetPrefEditObject(env, context);
545 if (!jni_obj_prefEdit)
547 OIC_LOG(ERROR, TAG, "jni_obj_prefEdit is null");
552 jobject jni_cls_edit = (*env)->FindClass(env, CLASSPATH_CONTENT_PREF_EDITOR);
555 OIC_LOG(ERROR, TAG, "jni_cls_edit is null");
559 // get remove method interface
560 jmethodID jni_mid_PrefRemove = (*env)->GetMethodID(env, jni_cls_edit, "remove",
561 "(Ljava/lang/String;)"
562 "Landroid/content/SharedPreferences"
564 if (!jni_mid_PrefRemove)
566 OIC_LOG(ERROR, TAG, "jni_mid_PrefRemove is null");
570 OIC_LOG(DEBUG, TAG, "CALL API - request remove for SharedPreferences.Editor");
571 (*env)->CallObjectMethod(env, jni_obj_prefEdit, jni_mid_PrefRemove, jni_str_prefKey);
573 // get commit method interface
574 jmethodID jni_mid_PrefCommit = (*env)->GetMethodID(env, jni_cls_edit, "commit",
576 if (!jni_mid_PrefCommit)
578 OIC_LOG(ERROR, TAG, "jni_mid_PrefCommit is null");
582 jboolean res = (*env)->CallBooleanMethod(env, jni_obj_prefEdit, jni_mid_PrefCommit);
584 OIC_LOG(DEBUG, TAG, "OUT-CAManagerAddConnectedDeviceAddress");
588 bool CAManagerAddConnectedDeviceAddress(JNIEnv *env, jobject context,
589 jstring address, jobject set)
591 OIC_LOG(DEBUG, TAG, "IN-CAManagerAddConnectedDeviceAddress");
593 VERIFY_NON_NULL_RET(env, TAG, "env", false);
594 VERIFY_NON_NULL_RET(context, TAG, "context", false);
595 VERIFY_NON_NULL_RET(address, TAG, "address", false);
596 VERIFY_NON_NULL_RET(set, TAG, "set", false);
598 if (CAManagerCallFuncSetString(env, address, set, CM_CONTAINS))
600 OIC_LOG(DEBUG, TAG, "it's already done");
604 if (!CAManagerCallFuncSetString(env, address, set, CM_ADD))
606 OIC_LOG(ERROR, TAG, "CAManagerAddSetString has failed");
610 return CAManagerUpdatePrefStringSet(env, context, set);
613 bool CAManagerIsConnectedDeviceAddress(JNIEnv *env, jobject context,
614 jstring address, jobject set)
616 OIC_LOG(DEBUG, TAG, "CAManagerIsConnectedDeviceAddress");
617 VERIFY_NON_NULL_RET(env, TAG, "env", false);
618 VERIFY_NON_NULL_RET(context, TAG, "context", false);
620 return CAManagerCallFuncSetString(env, address, set, CM_CONTAINS);
623 jobject CAManagerGetConnectedDeviceAddress(JNIEnv *env, jobject context)
625 OIC_LOG(DEBUG, TAG, "CAManagerGetConnectedDeviceAddress");
627 if (!CAManagerContainsPrefStringSet(env, context))
629 OIC_LOG(DEBUG, TAG, "there is no set data");
633 return CAManagerGetPrefStringSet(env, context);
636 bool CAManagerRemoveConnectedDeviceAddress(JNIEnv *env, jobject context,
637 jstring address, jobject set)
639 OIC_LOG(DEBUG, TAG, "CAManagerRemoveConnectedDeviceAddress");
641 VERIFY_NON_NULL_RET(env, TAG, "env", false);
642 VERIFY_NON_NULL_RET(context, TAG, "context", false);
643 VERIFY_NON_NULL_RET(address, TAG, "address", false);
644 VERIFY_NON_NULL_RET(set, TAG, "set", false);
646 if (!CAManagerCallFuncSetString(env, address, set, CM_CONTAINS))
648 OIC_LOG(DEBUG, TAG, "it's already done");
652 if (!CAManagerCallFuncSetString(env, address, set, CM_REMOVE))
654 OIC_LOG(ERROR, TAG, "CAManagerAddSetString has failed");
658 return CAManagerUpdatePrefStringSet(env, context, set);
661 jboolean CAManagerCheckBTAddress(JNIEnv *env, jstring address)
663 OIC_LOG(DEBUG, TAG, "CAManagerCheckBTAddress");
665 VERIFY_NON_NULL_RET(env, TAG, "env is null", JNI_FALSE);
666 VERIFY_NON_NULL_RET(address, TAG, "address is null", JNI_FALSE);
668 jclass jni_cid_BTAdapter = (*env)->FindClass(env, CLASSPATH_BT_ADAPTER);
669 if (!jni_cid_BTAdapter)
671 OIC_LOG(ERROR, TAG, "jni_cid_BTAdapter is null");
675 // get remote bt adapter method
676 jmethodID jni_mid_checkBTAddress =
677 (*env)->GetStaticMethodID(env, jni_cid_BTAdapter,
678 "checkBluetoothAddress",
679 METHODID_BOOLEAN_RET_STRING_PARAM);
680 if (!jni_mid_checkBTAddress)
682 OIC_LOG(ERROR, TAG, "jni_mid_checkBTAddress is null");
686 jboolean jni_obj_isAddress = (*env)->CallStaticBooleanMethod(env, jni_cid_BTAdapter,
687 jni_mid_checkBTAddress,
689 return jni_obj_isAddress;
692 jobject CAManagerCreateSetString(JNIEnv *env)
694 OIC_LOG(DEBUG, TAG, "CAManagerCallFuncSetString");
696 VERIFY_NON_NULL_RET(env, TAG, "env", NULL);
698 jclass jclazzMap = (*env)->FindClass(env, "java/util/HashSet" );
701 OIC_LOG(ERROR, TAG, "jclazzMap is null");
705 jmethodID jinitMap = (*env)->GetMethodID(env, jclazzMap, "<init>", "()V");
708 OIC_LOG(ERROR, TAG, "jinitMap is null");
712 jobject jpropertyMap = (*env)->NewObject(env, jclazzMap, jinitMap);
715 OIC_LOG(ERROR, TAG, "jpropertyMap is null");
722 bool CAManagerCallFuncSetString(JNIEnv *env, jstring address, jobject set,
723 CASetMethod_t method_type)
725 OIC_LOG(DEBUG, TAG, "CAManagerCallFuncSetString");
726 VERIFY_NON_NULL_RET(env, TAG, "env", false);
727 VERIFY_NON_NULL_RET(address, TAG, "address", false);
728 VERIFY_NON_NULL_RET(set, TAG, "set", false);
730 jclass jni_cls_set = (*env)->FindClass(env, "java/util/HashSet");
733 OIC_LOG(ERROR, TAG, "jni_cls_set is null");
737 jmethodID jni_mid_setMethod = NULL;
741 OIC_LOG(DEBUG, TAG, "java/util/HashSet.contains");
742 jni_mid_setMethod = (*env)->GetMethodID(env, jni_cls_set, "contains",
743 "(Ljava/lang/Object;)Z");
746 OIC_LOG(DEBUG, TAG, "java/util/HashSet.add");
747 jni_mid_setMethod = (*env)->GetMethodID(env, jni_cls_set, "add",
748 "(Ljava/lang/Object;)Z");
751 OIC_LOG(DEBUG, TAG, "java/util/HashSet.remove");
752 jni_mid_setMethod = (*env)->GetMethodID(env, jni_cls_set, "remove",
753 "(Ljava/lang/Object;)Z");
758 if (!jni_mid_setMethod)
760 OIC_LOG(ERROR, TAG, "jni_mid_setMethod is null");
764 jboolean res = (*env)->CallBooleanMethod(env, set, jni_mid_setMethod, address);
765 OIC_LOG_V(DEBUG, TAG, "method return result : %d", res);