diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-06-12 10:35:47 +0200 |
---|---|---|
committer | tobrun <tobrun.van.nuland@gmail.com> | 2018-06-12 10:35:47 +0200 |
commit | 8448b2717d4bf77856306495ca89132dbe0fc521 (patch) | |
tree | 11e01306188458b65613c71d8dd9559e67b580fc | |
parent | 7a76eb23ea1e47a8fdbd8cdc5220f01e8671c00a (diff) | |
download | qtlocation-mapboxgl-upstream/tvn-locale.tar.gz |
[android] - example of integrating forLanguageTagupstream/tvn-locale
-rw-r--r-- | platform/android/config.cmake | 4 | ||||
-rwxr-xr-x | platform/android/src/jni.cpp | 2 | ||||
-rw-r--r-- | platform/android/src/local.cpp | 19 | ||||
-rw-r--r-- | platform/android/src/local.hpp | 24 | ||||
-rwxr-xr-x | platform/android/src/native_map_view.cpp | 4 |
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); } /** |