コード例 #1
0
static jobject JNICALL JniGetProperty(JNIEnv* env, jclass clazz, jlong ptr, jstring name)
{
    try
    {
        return NewJniJsValue(env, JniGetJsValue(ptr)->GetProperty(JniJavaToStdString(env, name)));
    }
    CATCH_THROW_AND_RETURN(env, 0)
}
コード例 #2
0
static jobject JNICALL JniNewBooleanValue(JNIEnv* env, jclass clazz, jlong ptr, jboolean value)
{
  AdblockPlus::JsEnginePtr& engine = *JniLongToTypePtr<AdblockPlus::JsEnginePtr>(ptr);

  try
  {
    AdblockPlus::JsValuePtr jsValue = engine->NewValue(value == JNI_TRUE ? true : false);
    return NewJniJsValue(env, jsValue);
  }
  CATCH_THROW_AND_RETURN(env, 0)
}
コード例 #3
0
static jobject JNICALL JniNewLongValue(JNIEnv* env, jclass clazz, jlong ptr, jlong value)
{
  AdblockPlus::JsEnginePtr& engine = *JniLongToTypePtr<AdblockPlus::JsEnginePtr>(ptr);

  try
  {
    AdblockPlus::JsValuePtr jsValue = engine->NewValue(static_cast<int64_t>(value));
    return NewJniJsValue(env, jsValue);
  }
  CATCH_THROW_AND_RETURN(env, 0)
}
コード例 #4
0
static jobject JNICALL JniGetPref(JNIEnv* env, jclass clazz, jlong ptr, jstring jPref)
{
  AdblockPlus::FilterEngine& engine = GetFilterEngineRef(ptr);

  std::string pref = JniJavaToStdString(env, jPref);

  try
  {
    return NewJniJsValue(env, engine.GetPref(pref));
  }
  CATCH_THROW_AND_RETURN(env, 0)
}
コード例 #5
0
static jobject JNICALL JniNewStringValue(JNIEnv* env, jclass clazz, jlong ptr, jstring value)
{
  AdblockPlus::JsEnginePtr& engine = *JniLongToTypePtr<AdblockPlus::JsEnginePtr>(ptr);

  try
  {
    std::string strValue = JniJavaToStdString(env, value);
    AdblockPlus::JsValuePtr jsValue = engine->NewValue(strValue);
    return NewJniJsValue(env, jsValue);
  }
  CATCH_THROW_AND_RETURN(env, 0)
}
コード例 #6
0
jobject JniJsValueListToArrayList(JNIEnv* env, AdblockPlus::JsValueList& list)
{
    jobject arrayList = NewJniArrayList(env);

    for (AdblockPlus::JsValueList::iterator it = list.begin(), end = list.end(); it != end; ++it)
    {
        JniAddObjectToList(env, arrayList,
                           *JniLocalReference<jobject>(env, NewJniJsValue(env, *it)));
    }

    return arrayList;
}
コード例 #7
0
static jobject JNICALL JniEvaluate(JNIEnv* env, jclass clazz, jlong ptr, jstring jSource, jstring jFilename)
{
  AdblockPlus::JsEnginePtr& engine = *JniLongToTypePtr<AdblockPlus::JsEnginePtr>(ptr);

  std::string source = JniJavaToStdString(env, jSource);
  std::string filename = JniJavaToStdString(env, jFilename);

  try
  {
    AdblockPlus::JsValuePtr jsValue = engine->Evaluate(source, filename);
    return NewJniJsValue(env, jsValue);
  }
  CATCH_THROW_AND_RETURN(env, 0)
}
コード例 #8
0
void JniFilterChangeCallback::Callback(const std::string& arg, const AdblockPlus::JsValuePtr jsValue)
{
  JNIEnvAcquire env(GetJavaVM());

  jclass clazz = env->GetObjectClass(GetCallbackObject());
  jmethodID method = env->GetMethodID(clazz, "filterChangeCallback", "(Ljava/lang/String;" TYP("JsValue") ")V");

  if (method)
  {
    jstring jArg = env->NewStringUTF(arg.c_str());
    jobject jJsValue = NewJniJsValue(*env, jsValue, jsValueClass->Get());
    env->CallVoidMethod(GetCallbackObject(), method, jArg, jJsValue);
  }

  CheckAndLogJavaException(*env);
}