#pragma once #include #include /* 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 forLanguageTag(jni::JNIEnv&, jni::String); static jni::String toLanguageTag(jni::JNIEnv&, jni::Object); */ static jni::Local> getDefault(jni::JNIEnv&); static jni::Local getLanguage(jni::JNIEnv&, const jni::Object&); static jni::Local getCountry(jni::JNIEnv&, const jni::Object&); static jni::Local> New(jni::JNIEnv&, const jni::String&); static jni::Local> 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> getInstance(jni::JNIEnv&, const jni::Object&); static void setStrength(jni::JNIEnv&, const jni::Object&, jni::jint); static jni::jint compare(jni::JNIEnv&, const jni::Object&, const jni::String&, const jni::String&); static void registerNative(jni::JNIEnv&); }; } // namespace android } // namespace mbgl