| Index: libadblockplus-android/jni/JniIsAllowedConnectionTypeCallback.cpp |
| diff --git a/libadblockplus-android/jni/JniShowNotificationCallback.cpp b/libadblockplus-android/jni/JniIsAllowedConnectionTypeCallback.cpp |
| similarity index 61% |
| copy from libadblockplus-android/jni/JniShowNotificationCallback.cpp |
| copy to libadblockplus-android/jni/JniIsAllowedConnectionTypeCallback.cpp |
| index 38f2d9df5f51c2f1d1b47898b9d8ae15f3beafb9..678e5767c821ceb8e199ae08210b1b4df27aa4ed 100644 |
| --- a/libadblockplus-android/jni/JniShowNotificationCallback.cpp |
| +++ b/libadblockplus-android/jni/JniIsAllowedConnectionTypeCallback.cpp |
| @@ -16,45 +16,48 @@ |
| */ |
| #include "JniCallbacks.h" |
| +#include "Utils.h" |
| static jlong JNICALL JniCtor(JNIEnv* env, jclass clazz, jobject callbackObject) |
| { |
| try |
| { |
| - return JniPtrToLong(new JniShowNotificationCallback(env, callbackObject)); |
| + JniIsAllowedConnectionTypeCallback* callback = |
| + new JniIsAllowedConnectionTypeCallback(env, callbackObject); |
| + |
| + return JniPtrToLong(callback); |
| } |
| CATCH_THROW_AND_RETURN(env, 0) |
| } |
| static void JNICALL JniDtor(JNIEnv* env, jclass clazz, jlong ptr) |
| { |
| - delete JniLongToTypePtr<JniShowNotificationCallback>(ptr); |
| + delete JniLongToTypePtr<JniIsAllowedConnectionTypeCallback>(ptr); |
| } |
| -JniShowNotificationCallback::JniShowNotificationCallback(JNIEnv* env, |
| +JniIsAllowedConnectionTypeCallback::JniIsAllowedConnectionTypeCallback(JNIEnv* env, |
| jobject callbackObject) |
| : JniCallbackBase(env, callbackObject) |
| { |
| } |
| -void JniShowNotificationCallback::Callback( |
| - const AdblockPlus::NotificationPtr& notificationPtr) |
| +bool JniIsAllowedConnectionTypeCallback::Callback(const std::string* allowedConnectionType) |
| { |
| JNIEnvAcquire env(GetJavaVM()); |
| jmethodID method = env->GetMethodID( |
| - *JniLocalReference<jclass>(*env, |
| - env->GetObjectClass(GetCallbackObject())), |
| - "showNotificationCallback", "(" TYP("Notification") ")V"); |
| + *JniLocalReference<jclass>(*env, env->GetObjectClass(GetCallbackObject())), |
| + "isConnectionAllowed", |
| + "(Ljava/lang/String;)Z"); |
| - if (method) |
| - { |
| - JniLocalReference<jobject> jNotification(*env, NewJniNotification(*env, |
| - notificationPtr)); |
| - env->CallVoidMethod(GetCallbackObject(), method, *jNotification); |
| - } |
| + jstring jAllowedConnectionType = |
| + (allowedConnectionType != NULL |
| + ? JniStdStringToJava(*env, *allowedConnectionType) |
| + : NULL); |
| + bool result = env->CallBooleanMethod(GetCallbackObject(), method, jAllowedConnectionType); |
| CheckAndLogJavaException(*env); |
| + return result; |
| } |
| static JNINativeMethod methods[] = |
| @@ -63,7 +66,7 @@ static JNINativeMethod methods[] = |
| { (char*)"dtor", (char*)"(J)V", (void*)JniDtor } |
| }; |
| -extern "C" JNIEXPORT void JNICALL Java_org_adblockplus_libadblockplus_ShowNotificationCallback_registerNatives(JNIEnv *env, jclass clazz) |
| +extern "C" JNIEXPORT void JNICALL Java_org_adblockplus_libadblockplus_IsAllowedConnectionCallback_registerNatives(JNIEnv *env, jclass clazz) |
| { |
| env->RegisterNatives(clazz, methods, sizeof(methods) / sizeof(methods[0])); |
| } |