summaryrefslogtreecommitdiff
path: root/platform/android/src/java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/java')
-rw-r--r--platform/android/src/java/lang.cpp14
-rw-r--r--platform/android/src/java/lang.hpp12
2 files changed, 26 insertions, 0 deletions
diff --git a/platform/android/src/java/lang.cpp b/platform/android/src/java/lang.cpp
index 9e98410448..47bdc451c5 100644
--- a/platform/android/src/java/lang.cpp
+++ b/platform/android/src/java/lang.cpp
@@ -5,6 +5,15 @@ namespace android {
namespace java {
namespace lang {
+// CharSequence
+
+void CharSequence::registerNative(jni::JNIEnv &env) {
+ // Lookup the class
+ javaClass = *jni::Class<CharSequence>::Find(env).NewGlobalRef(env).release();
+}
+
+jni::Class<CharSequence> CharSequence::javaClass;
+
// String
jni::String String::toUpperCase(JNIEnv& env, jni::String value) {
@@ -17,6 +26,11 @@ jni::String String::toLowerCase(JNIEnv& env, jni::String value) {
return value.Call(env, method);
}
+jni::String String::replaceAll(JNIEnv& env, jni::String value, jni::String regex, jni::String replaceValue) {
+ static auto method = javaClass.GetMethod<jni::String (jni::String, jni::String)>(env, "replaceAll");
+ return value.Call(env, method, regex, replaceValue);
+}
+
void String::registerNative(jni::JNIEnv& env) {
// Lookup the class
javaClass = *jni::Class<jni::StringTag>::Find(env).NewGlobalRef(env).release();
diff --git a/platform/android/src/java/lang.hpp b/platform/android/src/java/lang.hpp
index 893d84dad1..0f3d650095 100644
--- a/platform/android/src/java/lang.hpp
+++ b/platform/android/src/java/lang.hpp
@@ -8,12 +8,24 @@ namespace android {
namespace java {
namespace lang {
+
+class CharSequence : private mbgl::util::noncopyable {
+public:
+ static constexpr auto Name() { return "java/lang/CharSequence"; };
+
+ static jni::Class<CharSequence> javaClass;
+
+ static void registerNative(jni::JNIEnv&);
+};
+
class String : private mbgl::util::noncopyable {
public:
static jni::String toUpperCase(JNIEnv&, jni::String);
static jni::String toLowerCase(JNIEnv&, jni::String);
+ static jni::String replaceAll(JNIEnv&, jni::String, jni::String, jni::String);
+
static jni::Class<jni::StringTag> javaClass;
static void registerNative(jni::JNIEnv&);