summaryrefslogtreecommitdiff
path: root/platform/android/src/i18n/collator_jni.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/i18n/collator_jni.hpp')
-rw-r--r--platform/android/src/i18n/collator_jni.hpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/platform/android/src/i18n/collator_jni.hpp b/platform/android/src/i18n/collator_jni.hpp
new file mode 100644
index 0000000000..612f9b49f3
--- /dev/null
+++ b/platform/android/src/i18n/collator_jni.hpp
@@ -0,0 +1,62 @@
+#pragma once
+
+#include <jni/jni.hpp>
+
+/*
+ android::Collator and android::Locale are
+ the JNI wrappers of
+ java/text/Collator and java/util/Locale
+
+ mbgl::Collator is the portable interface
+ Both implementations are in collator.cpp
+ */
+
+namespace mbgl {
+namespace android {
+
+class Locale {
+public:
+ static constexpr auto Name() { return "java/util/Locale"; };
+
+ /* Requires API level 21+ in order to support script/variant
+ static jni::Object<Locale> forLanguageTag(jni::JNIEnv&, jni::String);
+ static jni::String toLanguageTag(jni::JNIEnv&, jni::Object<Locale>);
+ */
+ static jni::Local<jni::Object<Locale>> getDefault(jni::JNIEnv&);
+ static jni::Local<jni::String> getLanguage(jni::JNIEnv&, const jni::Object<Locale>&);
+ static jni::Local<jni::String> getCountry(jni::JNIEnv&, const jni::Object<Locale>&);
+
+ static jni::Local<jni::Object<Locale>> New(jni::JNIEnv&, const jni::String&);
+ static jni::Local<jni::Object<Locale>> New(jni::JNIEnv&, const jni::String&, const jni::String&);
+
+
+ static void registerNative(jni::JNIEnv&);
+};
+
+class Collator {
+public:
+ static constexpr auto Name() { return "java/text/Collator"; };
+
+ static jni::Local<jni::Object<Collator>> getInstance(jni::JNIEnv&, const jni::Object<Locale>&);
+
+ static void setStrength(jni::JNIEnv&, const jni::Object<Collator>&, jni::jint);
+
+ static jni::jint compare(jni::JNIEnv&, const jni::Object<Collator>&, const jni::String&, const jni::String&);
+
+
+ static void registerNative(jni::JNIEnv&);
+};
+
+
+class StringUtils {
+public:
+ static constexpr auto Name() { return "com/mapbox/mapboxsdk/utils/StringUtils"; };
+
+ static jni::Local<jni::String> unaccent(jni::JNIEnv&, const jni::String&);
+
+
+ static void registerNative(jni::JNIEnv&);
+};
+
+} // namespace android
+} // namespace mbgl