LOGE("Error: jfieldID for message ttl is null");
return nullptr;
}
- jlong jttl = (jlong) env->GetObjectField( jMsg, fid_ttl);
- uint64_t ttl = jttl;
- LOGD("Message ID: %lld\n", ttl);
+ jlong jttl = (jlong) env->GetLongField( jMsg, fid_ttl);
+ uint64_t ttl = jttl;
+ LOGD("TTL: %d\n", ttl);
// Message Title
jfieldID fid_title = env->GetFieldID( cls, "mTitle", "Ljava/lang/String;");
return nullptr;
}
jobject jmedia = env->GetObjectField( jMsg, fid_media);
+ OIC::Service::NSMediaContents *media = nullptr;
if (jmedia == NULL)
{
- LOGE("Error: jmedia object of MediaContents inside Message is null");
- return nullptr;
- }
- jclass cls_MediaContents = (jclass) (env->NewLocalRef(g_cls_MediaContents));
- if (!cls_MediaContents)
- {
- LOGE ("Failed to Get ObjectClass for class MediaContents");
- return nullptr;
- }
- jfieldID fid_icon = env->GetFieldID( cls_MediaContents, "mIconImage", "Ljava/lang/String;");
- if (fid_icon == NULL)
- {
- LOGE("Error: jfieldID for iconImage is null");
- return nullptr;
- }
- jstring jiconImage = (jstring)env->GetObjectField( jmedia, fid_icon);
- const char *iconImage = "";
- if (jiconImage)
- {
- iconImage = env->GetStringUTFChars( jiconImage, NULL);
+ LOGD("Info: jmedia object of MediaContents inside Message is null");
}
else
{
- LOGD("Info: iconImage is null");
+ jclass cls_MediaContents = (jclass) (env->NewLocalRef(g_cls_MediaContents));
+ if (!cls_MediaContents)
+ {
+ LOGE ("Failed to Get ObjectClass for class MediaContents");
+ return nullptr;
+ }
+ jfieldID fid_icon = env->GetFieldID( cls_MediaContents, "mIconImage", "Ljava/lang/String;");
+ if (fid_icon == NULL)
+ {
+ LOGE("Error: jfieldID for iconImage is null");
+ return nullptr;
+ }
+ jstring jiconImage = (jstring)env->GetObjectField( jmedia, fid_icon);
+ const char *iconImage = "";
+ if (jiconImage)
+ {
+ iconImage = env->GetStringUTFChars( jiconImage, NULL);
+ media = new OIC::Service::NSMediaContents(std::string(iconImage));
+ env->ReleaseStringUTFChars(jiconImage, iconImage);
+ }
+ else
+ {
+ LOGD("Info: iconImage is null");
+ }
+ env->DeleteLocalRef(cls_MediaContents);
+ LOGD("iconImage: %s\n", iconImage);
}
- LOGD("iconImage: %s\n", iconImage);
-
// Message ExtraInfo
jfieldID fid_extraInfo = env->GetFieldID( cls, "mExtraInfo",
"Lorg/iotivity/base/OcRepresentation;");
LOGE("Failed to get native object OcRepresentation");
}
}
- OIC::Service::NSMediaContents *media = new OIC::Service::NSMediaContents(std::string(iconImage));
- OIC::Service::NSMessage *nsMsg = OIC::Service::NSProviderService::getInstance()->createMessage();
+
+ OIC::Service::NSMessage *nsMsg;
+ jfieldID nativeHandle = env->GetFieldID(cls, "mNativeHandle", "J");
+ if (!nativeHandle)
+ {
+ LOGE("Error: fieldID for mNativeHandle is null");
+ return nullptr;
+ }
+ jlong jMessage = env->GetLongField(jMsg, nativeHandle);
+ if (jMessage)
+ {
+ LOGD ("calling sendMessage on mNativeHandle");
+ nsMsg = (OIC::Service::NSMessage *) (jMessage);
+ }
+ else
+ {
+ nsMsg = OIC::Service::NSProviderService::getInstance()->createMessage();
+ }
nsMsg->setType(type);
nsMsg->setTime(std::string(time));
nsMsg->setTitle(std::string(messageTitle));
nsMsg->setContentText(std::string(messageBody));
nsMsg->setSourceName(std::string(messageSource));
- nsMsg->setMediaContents(media);
+ if(media != nullptr)
+ {
+ nsMsg->setMediaContents(media);
+ }
nsMsg->setTopic(std::string(topic));
if (representation != nullptr)
{
}
env->DeleteLocalRef(cls_messageType);
- env->DeleteLocalRef(cls_MediaContents);
if (jtime)
{
{
env->ReleaseStringUTFChars(jtopic, topic);
}
- if (jiconImage)
- {
- env->ReleaseStringUTFChars(jiconImage, iconImage);
- }
LOGD("JNIProviderService: getMessage - OUT");
return nsMsg;
return NULL;
}
- jobject obj_topicState;
switch (nsState)
{
case OIC::Service::NSTopic::NSTopicState::UNSUBSCRIBED:
{
static jfieldID fieldID = env->GetStaticFieldID(cls_topicState,
"UNSUBSCRIBED", "Lorg/iotivity/service/ns/common/Topic$TopicState;");
- obj_topicState = env->GetStaticObjectField(cls_topicState, fieldID);
+ return env->GetStaticObjectField(cls_topicState, fieldID);
}
case OIC::Service::NSTopic::NSTopicState::SUBSCRIBED:
{
static jfieldID fieldID = env->GetStaticFieldID(cls_topicState,
"SUBSCRIBED", "Lorg/iotivity/service/ns/common/Topic$TopicState;");
- obj_topicState = env->GetStaticObjectField(cls_topicState, fieldID);
+ return env->GetStaticObjectField(cls_topicState, fieldID);
}
+ default:
+ return NULL;
}
- if (obj_topicState == NULL)
- {
- LOGE("Error: object of field TopicState is null");
- }
- env->DeleteLocalRef(cls_topicState);
+
LOGD("JNIProviderService: getJavaTopicState - OUT");
- return obj_topicState;
+ return NULL;
}
jobject getJavaTopicsList(JNIEnv *env, OIC::Service::NSTopicsList *topicList)
LOGE ("Failed to Get ObjectClass for SyncType");
return NULL;
}
- jobject syncType;
switch (nsType)
{
case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_UNREAD:
{
static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
"UNREAD", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
- syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
+ return env->GetStaticObjectField(cls_SyncType, fieldID);
}
case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ :
{
static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
"READ", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
- syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
+ return env->GetStaticObjectField(cls_SyncType, fieldID);
}
case OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_DELETED :
{
static jfieldID fieldID = env->GetStaticFieldID(cls_SyncType,
"DELETED", "Lorg/iotivity/service/ns/common/SyncInfo$SyncType;");
- syncType = env->GetStaticObjectField(cls_SyncType, fieldID);
+ return env->GetStaticObjectField(cls_SyncType, fieldID);
}
-
- }
-
- if (syncType == NULL)
- {
- LOGE("Error: object of field Synctype is null");
+ default:
+ return NULL;
}
- env->DeleteLocalRef(cls_SyncType);
LOGD ("JNIProviderService: getJavaSyncType - OUT");
- return syncType;
+ return NULL;
}