summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2018-06-12 10:35:47 +0200
committertobrun <tobrun.van.nuland@gmail.com>2018-06-12 10:35:47 +0200
commit8448b2717d4bf77856306495ca89132dbe0fc521 (patch)
tree11e01306188458b65613c71d8dd9559e67b580fc
parent7a76eb23ea1e47a8fdbd8cdc5220f01e8671c00a (diff)
downloadqtlocation-mapboxgl-upstream/tvn-locale.tar.gz
[android] - example of integrating forLanguageTagupstream/tvn-locale
-rw-r--r--platform/android/config.cmake4
-rwxr-xr-xplatform/android/src/jni.cpp2
-rw-r--r--platform/android/src/local.cpp19
-rw-r--r--platform/android/src/local.hpp24
-rwxr-xr-xplatform/android/src/native_map_view.cpp4
5 files changed, 52 insertions, 1 deletions
diff --git a/platform/android/config.cmake b/platform/android/config.cmake
index c25e48de05..6d418ef7d2 100644
--- a/platform/android/config.cmake
+++ b/platform/android/config.cmake
@@ -53,7 +53,9 @@ macro(mbgl_platform_core)
PRIVATE platform/android/src/bitmap_factory.cpp
PRIVATE platform/android/src/bitmap_factory.hpp
PRIVATE platform/android/src/image.cpp
-
+ PRIVATE platform/android/src/local.hpp
+ PRIVATE platform/android/src/local.cpp
+
# Thread pool
PRIVATE platform/default/mbgl/util/shared_thread_pool.cpp
PRIVATE platform/default/mbgl/util/shared_thread_pool.hpp
diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp
index 2f6ed96ab0..542dc56415 100755
--- a/platform/android/src/jni.cpp
+++ b/platform/android/src/jni.cpp
@@ -48,6 +48,7 @@
#include "snapshotter/map_snapshot.hpp"
#include "text/local_glyph_rasterizer_jni.hpp"
#include "java/lang.hpp"
+#include "local.hpp"
namespace mbgl {
namespace android {
@@ -159,6 +160,7 @@ void registerNatives(JavaVM *vm) {
// Bitmap
Bitmap::registerNative(env);
BitmapFactory::registerNative(env);
+ Locale::registerNative(env);
// Style
TransitionOptions::registerNative(env);
diff --git a/platform/android/src/local.cpp b/platform/android/src/local.cpp
new file mode 100644
index 0000000000..4594833c95
--- /dev/null
+++ b/platform/android/src/local.cpp
@@ -0,0 +1,19 @@
+#include "local.hpp"
+
+namespace mbgl {
+namespace android {
+
+void Locale::registerNative(jni::JNIEnv& env) {
+ _class = *jni::Class<Locale>::Find(env).NewGlobalRef(env).release();
+}
+
+jni::Class<Locale> Locale::_class;
+
+jni::Object<Locale> Locale::ForLanguageTag(jni::JNIEnv& env, jni::String languageTag) {
+ using Signature = jni::Object<Locale>(jni::String);
+ auto method = _class.GetStaticMethod<Signature>(env, "forLanguageTag");
+ return _class.Call(env, method, languageTag);
+}
+
+} // namespace android
+} // namespace mbgl
diff --git a/platform/android/src/local.hpp b/platform/android/src/local.hpp
new file mode 100644
index 0000000000..55e50078c8
--- /dev/null
+++ b/platform/android/src/local.hpp
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <jni/jni.hpp>
+
+#include "local.hpp"
+
+namespace mbgl {
+namespace android {
+
+class Locale {
+public:
+ static constexpr auto Name() {
+ return "java/util/Locale";
+ };
+ static void registerNative(jni::JNIEnv&);
+
+ static jni::Object<Locale> ForLanguageTag(jni::JNIEnv&, jni::String languageTag);
+
+private:
+ static jni::Class<Locale> _class;
+};
+
+} // namespace android
+} // namespace mbgl
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp
index eecb76213b..448f0c85ce 100755
--- a/platform/android/src/native_map_view.cpp
+++ b/platform/android/src/native_map_view.cpp
@@ -52,6 +52,7 @@
#include "map/image.hpp"
#include "style/light.hpp"
#include "bitmap_factory.hpp"
+#include "local.hpp"
namespace mbgl {
namespace android {
@@ -84,6 +85,9 @@ NativeMapView::NativeMapView(jni::JNIEnv& _env,
static_cast<uint32_t>(height) }, pixelRatio,
fileSource, *threadPool, MapMode::Continuous,
ConstrainMode::HeightOnly, ViewportMode::Default);
+
+ auto locale = Locale::ForLanguageTag(_env, jni::Make<jni::String>(_env, "en"));
+ assert(locale);
}
/**