summaryrefslogtreecommitdiff
path: root/platform/android/src/unaccent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/unaccent.cpp')
-rw-r--r--platform/android/src/unaccent.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/platform/android/src/unaccent.cpp b/platform/android/src/unaccent.cpp
new file mode 100644
index 0000000000..ad804b3aae
--- /dev/null
+++ b/platform/android/src/unaccent.cpp
@@ -0,0 +1,20 @@
+#include <unaccent.hpp>
+#include <string>
+#include <src/java/lang.hpp>
+#include "attach_env.hpp"
+#include "text/collator_jni.hpp"
+
+namespace mbgl {
+namespace platform {
+
+std::string unaccent(const std::string& str) {
+ android::UniqueEnv env = android::AttachEnv();
+ jni::String normalized = android::Normalizer::normalize(*env,jni::Make<jni::String>(*env, str));
+ jni::String unaccented = android::java::lang::String::replaceAll(*env, normalized,
+ jni::Make<jni::String>(*env, "\\p{InCombiningDiacriticalMarks}+"),
+ jni::Make<jni::String>(*env, ""));
+ return jni::Make<std::string>(*env, unaccented);
+}
+
+} // namespace platform
+} // namespace mbgl