| OLD | NEW | 
| (Empty) |  | 
 |   1 /* | 
 |   2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
 |   3  * Copyright (C) 2006-2014 Eyeo GmbH | 
 |   4  * | 
 |   5  * Adblock Plus is free software: you can redistribute it and/or modify | 
 |   6  * it under the terms of the GNU General Public License version 3 as | 
 |   7  * published by the Free Software Foundation. | 
 |   8  * | 
 |   9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  12  * GNU General Public License for more details. | 
 |  13  * | 
 |  14  * You should have received a copy of the GNU General Public License | 
 |  15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |  16  */ | 
 |  17  | 
 |  18 #include "JniCallbacks.h" | 
 |  19  | 
 |  20 AdblockPlus::Android::JniFilterChangeCallback::JniFilterChangeCallback(JNIEnv* e
    nv, jobject callbackObject) : | 
 |  21     JniCallbackBase(env, callbackObject) | 
 |  22 { | 
 |  23 } | 
 |  24  | 
 |  25 AdblockPlus::Android::JniFilterChangeCallback::~JniFilterChangeCallback() | 
 |  26 { | 
 |  27 } | 
 |  28  | 
 |  29 void AdblockPlus::Android::JniFilterChangeCallback::Callback(const std::string& 
    arg, const AdblockPlus::JsValuePtr jsValue) | 
 |  30 { | 
 |  31   AdblockPlus::Android::JNIEnvAcquire env(GetJavaVM()); | 
 |  32  | 
 |  33   jclass clazz = env->GetObjectClass(GetCallbackObject()); | 
 |  34   jmethodID method = env->GetMethodID(clazz, "filterChangeCallback", "(Ljava/lan
    g/String;" TYP("JsValue") ")V"); | 
 |  35  | 
 |  36   if (method) | 
 |  37   { | 
 |  38     jstring jArg = env->NewStringUTF(arg.c_str()); | 
 |  39     jobject jJsValue = AdblockPlus::Android::NewJniJsValue(*env, jsValue); | 
 |  40     env->CallVoidMethod(GetCallbackObject(), method, jArg, jJsValue); | 
 |  41   } | 
 |  42  | 
 |  43   CheckAndLogJavaException(*env); | 
 |  44 } | 
 |  45  | 
 |  46 static jlong JNICALL JniCtor(JNIEnv* env, jclass clazz, jobject callbackObject) | 
 |  47 { | 
 |  48   TRY | 
 |  49   { | 
 |  50     return AdblockPlus::Android::JniPtr2Long(new AdblockPlus::Android::JniFilter
    ChangeCallback(env, callbackObject)); | 
 |  51   } | 
 |  52   CATCH_THROW_AND_RETURN(env, 0) | 
 |  53 } | 
 |  54  | 
 |  55 static void JNICALL JniDtor(JNIEnv* env, jclass clazz, jlong ptr) | 
 |  56 { | 
 |  57   delete AdblockPlus::Android::JniLong2TypePtr<AdblockPlus::Android::JniFilterCh
    angeCallback>(ptr); | 
 |  58 } | 
 |  59  | 
 |  60 static JNINativeMethod methods[] = | 
 |  61 { | 
 |  62 { (char*)"ctor", (char*)"(Ljava/lang/Object;)J", (void*)JniCtor }, | 
 |  63 { (char*)"dtor", (char*)"(J)V", (void*)JniDtor }, }; | 
 |  64  | 
 |  65 extern "C" JNIEXPORT void JNICALL Java_org_adblockplus_android_api_FilterChangeC
    allback_registerNatives(JNIEnv *env, jclass clazz) | 
 |  66 { | 
 |  67   env->RegisterNatives(clazz, methods, sizeof(methods) / sizeof(methods[0])); | 
 |  68 } | 
| OLD | NEW |