#include "JniOcResource.h"
#include "JniOcRepresentation.h"
#include "JniUtils.h"
-#ifdef WITH_CLOUD
-#include "JniOcAccountManager.h"
-#endif
-JniOnGetListener::JniOnGetListener(JNIEnv *env, jobject jListener, JniOcResource* owner)
- : m_ownerResource(owner)
+JniOnGetListener::JniOnGetListener(JNIEnv *env, jobject jListener, RemoveListenerCallback removeListener)
+ : m_removeListener(removeListener)
{
m_jwListener = env->NewWeakGlobalRef(jListener);
-#ifdef WITH_CLOUD
- m_ownerAccountManager = nullptr;
-#endif
}
-#ifdef WITH_CLOUD
-JniOnGetListener::JniOnGetListener(JNIEnv *env, jobject jListener, JniOcAccountManager* owner)
- : m_ownerAccountManager(owner)
-{
- m_jwListener = env->NewWeakGlobalRef(jListener);
- m_ownerResource = nullptr;
-}
-#endif
-
JniOnGetListener::~JniOnGetListener()
{
LOGD("~JniOnGetListener");
{
jthrowable ex = env->ExceptionOccurred();
env->ExceptionClear();
-#ifndef WITH_CLOUD
- m_ownerResource->removeOnGetListener(env, m_jwListener);
-#else
- if (nullptr != m_ownerResource)
- {
- m_ownerResource->removeOnGetListener(env, m_jwListener);
- }
- if (nullptr != m_ownerAccountManager)
- {
- m_ownerAccountManager->removeOnGetListener(env, m_jwListener);
- }
-#endif
+ m_removeListener(env, m_jwListener);
env->Throw((jthrowable)ex);
}
else
{
-#ifndef WITH_CLOUD
- m_ownerResource->removeOnGetListener(env, m_jwListener);
-#else
- if (nullptr != m_ownerResource)
- {
- m_ownerResource->removeOnGetListener(env, m_jwListener);
- }
- if (nullptr != m_ownerAccountManager)
- {
- m_ownerAccountManager->removeOnGetListener(env, m_jwListener);
- }
-#endif
+ m_removeListener(env, m_jwListener);
}
}