From 8448b2717d4bf77856306495ca89132dbe0fc521 Mon Sep 17 00:00:00 2001 From: tobrun Date: Tue, 12 Jun 2018 10:35:47 +0200 Subject: [android] - example of integrating forLanguageTag --- platform/android/config.cmake | 4 +++- platform/android/src/jni.cpp | 2 ++ platform/android/src/local.cpp | 19 +++++++++++++++++++ platform/android/src/local.hpp | 24 ++++++++++++++++++++++++ platform/android/src/native_map_view.cpp | 4 ++++ 5 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 platform/android/src/local.cpp create mode 100644 platform/android/src/local.hpp 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::Find(env).NewGlobalRef(env).release(); +} + +jni::Class Locale::_class; + +jni::Object Locale::ForLanguageTag(jni::JNIEnv& env, jni::String languageTag) { + using Signature = jni::Object(jni::String); + auto method = _class.GetStaticMethod(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 + +#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 ForLanguageTag(jni::JNIEnv&, jni::String languageTag); + +private: + static jni::Class _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(height) }, pixelRatio, fileSource, *threadPool, MapMode::Continuous, ConstrainMode::HeightOnly, ViewportMode::Default); + + auto locale = Locale::ForLanguageTag(_env, jni::Make(_env, "en")); + assert(locale); } /** -- cgit v1.2.1