static jobject JNICALL JniGetElementHidingSelectors(JNIEnv* env, jclass clazz, jlong ptr, jstring jDomain) { AdblockPlus::FilterEngine& engine = GetFilterEngineRef(ptr); std::string domain = JniJavaToStdString(env, jDomain); try { std::vector<std::string> selectors = engine.GetElementHidingSelectors( domain); jobject list = NewJniArrayList(env); for (std::vector<std::string>::iterator it = selectors.begin(), end = selectors.end(); it != end; it++) { JniAddObjectToList(env, list, *JniLocalReference<jstring>(env, env->NewStringUTF(it->c_str()))); } return list; } CATCH_THROW_AND_RETURN(env, 0) }
static jobject SubscriptionsToArrayList(JNIEnv* env, std::vector<AdblockPlus::Subscription>&& subscriptions) { jobject list = NewJniArrayList(env); for (std::vector<AdblockPlus::Subscription>::iterator it = subscriptions.begin(), end = subscriptions.end(); it != end; it++) { JniAddObjectToList(env, list, NewJniSubscription(env, std::move(*it))); } return list; }
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; }
static jobject JNICALL JniGetListedFilters(JNIEnv* env, jclass clazz, jlong ptr) { AdblockPlus::FilterEngine& engine = GetFilterEngineRef(ptr); try { std::vector<AdblockPlus::Filter> filters = engine.GetListedFilters(); jobject list = NewJniArrayList(env); for (std::vector<AdblockPlus::Filter>::iterator it = filters.begin(), end = filters.end(); it != end; it++) { JniAddObjectToList(env, list, *JniLocalReference<jobject>(env, NewJniFilter(env, std::move(*it)))); } return list; } CATCH_THROW_AND_RETURN(env, 0); }
static jobject JNICALL JniGetElementHidingEmulationSelectors(JNIEnv* env, jclass clazz, jlong ptr, jstring jDomain) { AdblockPlus::FilterEngine& engine = GetFilterEngineRef(ptr); std::string domain = JniJavaToStdString(env, jDomain); try { std::vector<AdblockPlus::FilterEngine::EmulationSelector> selectors = engine.GetElementHidingEmulationSelectors(domain); jobject list = NewJniArrayList(env); for (auto it = selectors.cbegin(), end = selectors.cend(); it != end; ++it) { JniAddObjectToList(env, list, NewJniEmulationSelector(env, *it)); } return list; } CATCH_THROW_AND_RETURN(env, 0) }