[android] Upgrade to latest jni.hpp
This commit is contained in:
@@ -1,76 +0,0 @@
|
||||
#include "lang.hpp"
|
||||
|
||||
namespace mbgl {
|
||||
namespace android {
|
||||
namespace java {
|
||||
namespace lang {
|
||||
|
||||
// Float
|
||||
|
||||
jni::Object<Float> Float::valueOf(JNIEnv &env, jfloat value) {
|
||||
static auto method = javaClass.GetStaticMethod<jni::Object<Float> (jni::jfloat)>(env, "valueOf");
|
||||
return javaClass.Call(env, method, value);
|
||||
}
|
||||
|
||||
void Float::registerNative(jni::JNIEnv &env) {
|
||||
// Lookup the class
|
||||
javaClass = *jni::Class<Float>::Find(env).NewGlobalRef(env).release();
|
||||
}
|
||||
|
||||
jni::Class<Float> Float::javaClass;
|
||||
|
||||
// Long
|
||||
|
||||
jni::Object<Long> Long::valueOf(JNIEnv &env, jlong value) {
|
||||
static auto method = javaClass.GetStaticMethod<jni::Object<Long> (jni::jlong)>(env, "valueOf");
|
||||
return javaClass.Call(env, method, value);
|
||||
}
|
||||
|
||||
void Long::registerNative(jni::JNIEnv &env) {
|
||||
// Lookup the class
|
||||
javaClass = *jni::Class<Long>::Find(env).NewGlobalRef(env).release();
|
||||
}
|
||||
|
||||
jni::Class<Long> Long::javaClass;
|
||||
|
||||
// Double
|
||||
|
||||
jni::Object<Double> Double::valueOf(JNIEnv &env, jdouble value) {
|
||||
static auto method = javaClass.GetStaticMethod<jni::Object<Double> (jni::jdouble)>(env, "valueOf");
|
||||
return javaClass.Call(env, method, value);
|
||||
}
|
||||
|
||||
void Double::registerNative(jni::JNIEnv &env) {
|
||||
// Lookup the class
|
||||
javaClass = *jni::Class<Double>::Find(env).NewGlobalRef(env).release();
|
||||
}
|
||||
|
||||
jni::Class<Double> Double::javaClass;
|
||||
|
||||
// Boolean
|
||||
|
||||
jni::Object<Boolean> Boolean::valueOf(JNIEnv &env, jboolean value) {
|
||||
static auto method = javaClass.GetStaticMethod<jni::Object<Boolean> (jni::jboolean)>(env, "valueOf");
|
||||
return javaClass.Call(env, method, value);
|
||||
}
|
||||
|
||||
void Boolean::registerNative(jni::JNIEnv &env) {
|
||||
// Lookup the class
|
||||
javaClass = *jni::Class<Boolean>::Find(env).NewGlobalRef(env).release();
|
||||
}
|
||||
|
||||
jni::Class<Boolean> Boolean::javaClass;
|
||||
|
||||
// Number
|
||||
|
||||
void Number::registerNative(jni::JNIEnv &env) {
|
||||
// Lookup the class
|
||||
javaClass = *jni::Class<Number>::Find(env).NewGlobalRef(env).release();
|
||||
}
|
||||
|
||||
jni::Class<Number> Number::javaClass;
|
||||
|
||||
} // namespace lang
|
||||
} // namespace java
|
||||
} // namespace android
|
||||
} // namespace mbgl
|
||||
@@ -1,67 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <jni/jni.hpp>
|
||||
#include <mbgl/util/noncopyable.hpp>
|
||||
|
||||
namespace mbgl {
|
||||
namespace android {
|
||||
namespace java {
|
||||
namespace lang {
|
||||
|
||||
class Float : private mbgl::util::noncopyable {
|
||||
public:
|
||||
static constexpr auto Name() { return "java/lang/Float"; };
|
||||
|
||||
static jni::Object<Float> valueOf(JNIEnv&, jfloat);
|
||||
|
||||
static jni::Class<Float> javaClass;
|
||||
|
||||
static void registerNative(jni::JNIEnv&);
|
||||
};
|
||||
|
||||
class Double : private mbgl::util::noncopyable {
|
||||
public:
|
||||
static constexpr auto Name() { return "java/lang/Double"; };
|
||||
|
||||
static jni::Object<Double> valueOf(JNIEnv&, jdouble);
|
||||
|
||||
static jni::Class<Double> javaClass;
|
||||
|
||||
static void registerNative(jni::JNIEnv&);
|
||||
};
|
||||
|
||||
class Long : private mbgl::util::noncopyable {
|
||||
public:
|
||||
static constexpr auto Name() { return "java/lang/Long"; };
|
||||
|
||||
static jni::Object<Long> valueOf(JNIEnv&, jlong);
|
||||
|
||||
static jni::Class<Long> javaClass;
|
||||
|
||||
static void registerNative(jni::JNIEnv&);
|
||||
};
|
||||
|
||||
class Boolean : private mbgl::util::noncopyable {
|
||||
public:
|
||||
static constexpr auto Name() { return "java/lang/Boolean"; };
|
||||
|
||||
static jni::Object<Boolean> valueOf(JNIEnv&, jboolean);
|
||||
|
||||
static jni::Class<Boolean> javaClass;
|
||||
|
||||
static void registerNative(jni::JNIEnv&);
|
||||
};
|
||||
|
||||
class Number : private mbgl::util::noncopyable {
|
||||
public:
|
||||
static constexpr auto Name() { return "java/lang/Number"; };
|
||||
|
||||
static jni::Class<Number> javaClass;
|
||||
|
||||
static void registerNative(jni::JNIEnv&);
|
||||
};
|
||||
|
||||
} // namespace lang
|
||||
} // namespace java
|
||||
} // namespace android
|
||||
} // namespace mbgl
|
||||
@@ -5,21 +5,14 @@ namespace android {
|
||||
namespace java {
|
||||
namespace util {
|
||||
|
||||
jni::Class<Arrays> Arrays::javaClass;
|
||||
jni::Class<List> List::javaClass;
|
||||
jni::Class<Set> Set::javaClass;
|
||||
jni::Class<Map> Map::javaClass;
|
||||
jni::Class<Map::Entry> Map::Entry::javaClass;
|
||||
|
||||
void registerNative(jni::JNIEnv& env) {
|
||||
Arrays::javaClass = *jni::Class<Arrays>::Find(env).NewGlobalRef(env).release();
|
||||
List::javaClass = *jni::Class<List>::Find(env).NewGlobalRef(env).release();
|
||||
Set::javaClass = *jni::Class<Set>::Find(env).NewGlobalRef(env).release();
|
||||
Map::javaClass = *jni::Class<Map>::Find(env).NewGlobalRef(env).release();
|
||||
Map::Entry::javaClass = *jni::Class<Map::Entry>::Find(env).NewGlobalRef(env).release();
|
||||
jni::Class<Arrays>::Singleton(env);
|
||||
jni::Class<List>::Singleton(env);
|
||||
jni::Class<Set>::Singleton(env);
|
||||
jni::Class<Map>::Singleton(env);
|
||||
jni::Class<Map::Entry>::Singleton(env);
|
||||
}
|
||||
|
||||
|
||||
} // namespace util
|
||||
} // namespace java
|
||||
} // namespace android
|
||||
|
||||
@@ -11,51 +11,43 @@ namespace util {
|
||||
|
||||
class List : private mbgl::util::noncopyable {
|
||||
public:
|
||||
|
||||
static constexpr auto Name() { return "java/util/List"; };
|
||||
|
||||
template<class T>
|
||||
static jni::Array<jni::Object<T>> toArray(jni::JNIEnv& env, jni::Object<List> list) {
|
||||
static auto toArray = List::javaClass.GetMethod<jni::Array<jni::Object<>> ()>(env, "toArray");
|
||||
static auto javaClass = jni::Class<List>::Singleton(env);
|
||||
static auto toArray = javaClass.GetMethod<jni::Array<jni::Object<>> ()>(env, "toArray");
|
||||
return (jni::Array<jni::Object<T>>) list.Call(env, toArray);
|
||||
};
|
||||
|
||||
static jni::Class<List> javaClass;
|
||||
|
||||
};
|
||||
|
||||
class Arrays : private mbgl::util::noncopyable {
|
||||
public:
|
||||
|
||||
static constexpr auto Name() { return "java/util/Arrays"; };
|
||||
|
||||
template <class T>
|
||||
static jni::Object<List> asList(jni::JNIEnv& env, jni::Array<jni::Object<T>> array) {
|
||||
static auto asList = Arrays::javaClass.GetStaticMethod<jni::Object<List>(jni::Array<jni::Object<>>)>(env, "asList");
|
||||
static auto javaClass = jni::Class<Arrays>::Singleton(env);
|
||||
static auto asList = javaClass.GetStaticMethod<jni::Object<List>(jni::Array<jni::Object<>>)>(env, "asList");
|
||||
return javaClass.Call(env, asList, (jni::Array<jni::Object<>>) array);
|
||||
}
|
||||
|
||||
static jni::Class<Arrays> javaClass;
|
||||
|
||||
};
|
||||
|
||||
class Set : private mbgl::util::noncopyable {
|
||||
public:
|
||||
|
||||
static constexpr auto Name() { return "java/util/Set"; };
|
||||
|
||||
template<class T>
|
||||
static jni::Array<jni::Object<T>> toArray(jni::JNIEnv& env, jni::Object<Set> list) {
|
||||
static auto toArray = Set::javaClass.GetMethod<jni::Array<jni::Object<>> ()>(env, "toArray");
|
||||
static auto javaClass = jni::Class<Set>::Singleton(env);
|
||||
static auto toArray = javaClass.GetMethod<jni::Array<jni::Object<>> ()>(env, "toArray");
|
||||
return (jni::Array<jni::Object<T>>) list.Call(env, toArray);
|
||||
};
|
||||
|
||||
static jni::Class<Set> javaClass;
|
||||
|
||||
};
|
||||
|
||||
class Map : private mbgl::util::noncopyable {
|
||||
public:
|
||||
static constexpr auto Name() { return "java/util/Map"; };
|
||||
|
||||
class Entry : private mbgl::util::noncopyable {
|
||||
public:
|
||||
@@ -63,27 +55,22 @@ public:
|
||||
|
||||
template <class T>
|
||||
static jni::Object<T> getKey(jni::JNIEnv& env, jni::Object<Entry> entry) {
|
||||
static auto method = Entry::javaClass.GetMethod<jni::Object<> ()>(env, "getKey");
|
||||
return (jni::Object<T>) entry.Call(env, method);
|
||||
static auto javaClass = jni::Class<Map::Entry>::Singleton(env);
|
||||
static auto method = javaClass.GetMethod<jni::Object<> ()>(env, "getKey");
|
||||
return jni::Cast(env, jni::Class<T>::Singleton(env), entry.Call(env, method));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
static jni::Object<T> getValue(jni::JNIEnv& env, jni::Object<Entry> entry) {
|
||||
static auto method = Entry::javaClass.GetMethod<jni::Object<> ()>(env, "getValue");
|
||||
return (jni::Object<T>) entry.Call(env, method).Get();
|
||||
static auto javaClass = jni::Class<Map::Entry>::Singleton(env);
|
||||
static auto method = javaClass.GetMethod<jni::Object<> ()>(env, "getValue");
|
||||
return jni::Cast(env, jni::Class<T>::Singleton(env), entry.Call(env, method));
|
||||
}
|
||||
|
||||
static jni::Class<Entry> javaClass;
|
||||
};
|
||||
|
||||
static constexpr auto Name() { return "java/util/Map"; };
|
||||
|
||||
static jni::Class<Map> javaClass;
|
||||
};
|
||||
|
||||
void registerNative(jni::JNIEnv&);
|
||||
|
||||
|
||||
} // namespace util
|
||||
} // namespace java
|
||||
} // namespace android
|
||||
|
||||
Reference in New Issue
Block a user