summaryrefslogtreecommitdiff
path: root/platform/android/src/java/util.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/java/util.hpp')
-rw-r--r--platform/android/src/java/util.hpp39
1 files changed, 13 insertions, 26 deletions
diff --git a/platform/android/src/java/util.hpp b/platform/android/src/java/util.hpp
index c6b07acac5..808f14be15 100644
--- a/platform/android/src/java/util.hpp
+++ b/platform/android/src/java/util.hpp
@@ -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