forked from organicmaps/organicmaps
[android] Added native method for speed formatting.
This commit is contained in:
parent
cb4a8c2362
commit
044e69e8df
2 changed files with 42 additions and 23 deletions
|
@ -2,34 +2,50 @@
|
|||
|
||||
#include "indexer/search_string_utils.hpp"
|
||||
|
||||
#include "platform/measurement_utils.hpp"
|
||||
#include "platform/settings.hpp"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_util_StringUtils_nativeIsHtml(JNIEnv * env, jclass thiz, jstring text)
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_util_StringUtils_nativeIsHtml(JNIEnv * env, jclass thiz, jstring text)
|
||||
{
|
||||
return strings::IsHTML(jni::ToNativeString(env, text));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_util_StringUtils_nativeContainsNormalized(JNIEnv * env, jclass thiz, jstring str, jstring substr)
|
||||
{
|
||||
return search::ContainsNormalized(jni::ToNativeString(env, str), jni::ToNativeString(env, substr));
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_com_mapswithme_util_StringUtils_nativeFilterContainsNormalized(JNIEnv * env, jclass thiz, jobjectArray src, jstring jSubstr)
|
||||
{
|
||||
string substr = jni::ToNativeString(env, jSubstr);
|
||||
int const length = env->GetArrayLength(src);
|
||||
vector<string> filtered;
|
||||
filtered.reserve(length);
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
return strings::IsHTML(jni::ToNativeString(env, text));
|
||||
string str = jni::ToNativeString(env, (jstring) env->GetObjectArrayElement(src, i));
|
||||
if (search::ContainsNormalized(str, substr))
|
||||
filtered.push_back(str);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_util_StringUtils_nativeContainsNormalized(JNIEnv * env, jclass thiz, jstring str, jstring substr)
|
||||
{
|
||||
return search::ContainsNormalized(jni::ToNativeString(env, str), jni::ToNativeString(env, substr));
|
||||
}
|
||||
return jni::ToJavaStringArray(env, filtered);
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_com_mapswithme_util_StringUtils_nativeFilterContainsNormalized(JNIEnv * env, jclass thiz, jobjectArray src, jstring jSubstr)
|
||||
{
|
||||
string substr = jni::ToNativeString(env, jSubstr);
|
||||
int const length = env->GetArrayLength(src);
|
||||
vector<string> filtered;
|
||||
filtered.reserve(length);
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
string str = jni::ToNativeString(env, (jstring) env->GetObjectArrayElement(src, i));
|
||||
if (search::ContainsNormalized(str, substr))
|
||||
filtered.push_back(str);
|
||||
}
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_com_mapswithme_util_StringUtils_nativeFormatSpeedAndUnits(JNIEnv * env, jclass thiz, jdouble metersPerSecond)
|
||||
{
|
||||
static jclass const pairClass = jni::GetGlobalClassRef(env, "android/util/Pair");
|
||||
static jmethodID const pairCtor = jni::GetConstructorID(env, pairClass, "(Ljava/lang/Object;Ljava/lang/Object;)V");
|
||||
|
||||
return jni::ToJavaStringArray(env, filtered);
|
||||
}
|
||||
auto units = measurement_utils::Units::Metric;
|
||||
settings::Get(settings::kMeasurementUnits, units);
|
||||
return env->NewObject(pairClass, pairCtor,
|
||||
jni::ToJavaString(env, measurement_utils::FormatSpeed(metersPerSecond, units)),
|
||||
jni::ToJavaString(env, measurement_utils::FormatSpeedUnits(units)));
|
||||
}
|
||||
} // extern "C"
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.mapswithme.util;
|
|||
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Pair;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -20,6 +21,8 @@ public class StringUtils
|
|||
public static native boolean nativeContainsNormalized(String str, String substr);
|
||||
public static native String[] nativeFilterContainsNormalized(String[] strings, String substr);
|
||||
|
||||
public static native Pair<String, String> nativeFormatSpeedAndUnits(double metersPerSecond);
|
||||
|
||||
/**
|
||||
* Removes html tags, generated from edittext content after it's transformed to html.
|
||||
* In version 4.3.1 we converted descriptions, entered by users, to html automatically. Later html conversion was cancelled, but those converted descriptions should be converted back to
|
||||
|
|
Loading…
Add table
Reference in a new issue