summaryrefslogtreecommitdiff
path: root/platform/android/src/style/filter.cpp
blob: b9e558337e6f725cd6d11958416e4ef78d4cfd90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "filter.hpp"

namespace mbgl {
namespace android {

jni::Object<Filter::Statement> Filter::fromFilter(jni::JNIEnv& env, const mbgl::style::Filter&) {
    static auto constructor = Filter::Statement::javaClass.template GetConstructor<jni::String, jni::String, jni::Array<jni::Object<>>>(env);
    const char *const equals = "==";
    auto joper = jni::Make<jni::String>(env, equals);
    const char *const key = "type";
    auto jkey = jni::Make<jni::String>(env, key);
    auto jvalues = jni::Array<jni::Object<>>::New(env, 1);
    return Filter::Statement::javaClass.New(env, constructor, joper, jkey, jvalues);
}

jni::Class<Filter> Filter::javaClass;

jni::Class<Filter::Statement> Filter::Statement::javaClass;

void Filter::registerNative(jni::JNIEnv& env) {
    Filter::javaClass = *jni::Class<Filter>::Find(env).NewGlobalRef(env).release();
    Filter::Statement::javaClass = *jni::Class<Filter::Statement>::Find(env).NewGlobalRef(env).release();
}

} // namespace android
} // namespace mbgl