diff --git a/android/jni/com/mapswithme/core/jni_helper.cpp b/android/jni/com/mapswithme/core/jni_helper.cpp index 44bfb80395..c0a0c3b4d3 100644 --- a/android/jni/com/mapswithme/core/jni_helper.cpp +++ b/android/jni/com/mapswithme/core/jni_helper.cpp @@ -63,9 +63,8 @@ namespace jni } */ - string ToNativeString(jstring str) + string ToNativeString(JNIEnv * env, jstring str) { - JNIEnv * env = GetEnv(); string result; char const * utfBuffer = env->GetStringUTFChars(str, 0); if (utfBuffer) @@ -76,9 +75,9 @@ namespace jni return result; } - jstring ToJavaString(string const & s) + jstring ToJavaString(JNIEnv * env, char const * s) { - return GetEnv()->NewStringUTF(s.c_str()); + return env->NewStringUTF(s); } JNIEnv * GetEnv() @@ -131,10 +130,9 @@ namespace jni jstring jErrorMsg = (jstring) env->CallObjectMethod(e, mid); - return ToNativeString(jErrorMsg); + return ToNativeString(env, jErrorMsg); } return ""; } - } // namespace jni diff --git a/android/jni/com/mapswithme/core/jni_helper.hpp b/android/jni/com/mapswithme/core/jni_helper.hpp index d0881beb61..732b36e32c 100644 --- a/android/jni/com/mapswithme/core/jni_helper.hpp +++ b/android/jni/com/mapswithme/core/jni_helper.hpp @@ -17,11 +17,21 @@ namespace jni //jobject CreateJavaObject(JNIEnv * env, char const * klass, char const * sig, ...); //@} - string ToNativeString(jstring str); - jstring ToJavaString(string const & s); JNIEnv * GetEnv(); JavaVM * GetJVM(); + string ToNativeString(JNIEnv * env, jstring str); + inline string ToNativeString(jstring str) + { + return ToNativeString(GetEnv(), str); + } + + jstring ToJavaString(JNIEnv * env, char const * s); + inline jstring ToJavaString(JNIEnv * env, string const & s) + { + return ToJavaString(env, s.c_str()); + } + string DescribeException(); shared_ptr make_global_ref(jobject obj); diff --git a/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp b/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp index 37e037f11a..3e3543e55e 100644 --- a/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp +++ b/android/jni/com/mapswithme/maps/DownloadResourcesActivity.cpp @@ -75,8 +75,8 @@ extern "C" g_totalBytesToDownload = 0; g_totalDownloadedBytes = 0; - //g_apkPath = jni::ToNativeString(apkPath); - string const path = jni::ToNativeString(sdcardPath); + //g_apkPath = jni::ToNativeString(env, apkPath); + string const path = jni::ToNativeString(env, sdcardPath); Platform & pl = GetPlatform(); ReaderStreamBuf buffer(pl.GetReader("external_resources.txt")); @@ -113,8 +113,7 @@ extern "C" } } - int res = HasSpaceForFiles(path, g_totalBytesToDownload); - + int const res = HasSpaceForFiles(path, g_totalBytesToDownload); switch (res) { case ERR_STORAGE_DISCONNECTED: @@ -244,8 +243,8 @@ extern "C" Java_com_mapswithme_maps_DownloadResourcesActivity_moveMaps(JNIEnv * env, jobject thiz, jstring fromPath, jstring toPath) { - string from = jni::ToNativeString(fromPath); - string to = jni::ToNativeString(toPath); + string const from = jni::ToNativeString(env, fromPath); + string const to = jni::ToNativeString(env, toPath); Platform & pl = GetPlatform(); Platform::FilesList files; diff --git a/android/jni/com/mapswithme/maps/MWMActivity.cpp b/android/jni/com/mapswithme/maps/MWMActivity.cpp index d3e92bcc45..383d80fb49 100644 --- a/android/jni/com/mapswithme/maps/MWMActivity.cpp +++ b/android/jni/com/mapswithme/maps/MWMActivity.cpp @@ -110,7 +110,8 @@ extern "C" JNIEXPORT void JNICALL Java_com_mapswithme_maps_MWMActivity_nativeSetString(JNIEnv * env, jobject thiz, jstring name, jstring value) { - g_framework->AddString(jni::ToNativeString(name), jni::ToNativeString(value)); + g_framework->AddString(jni::ToNativeString(env, name), + jni::ToNativeString(env, value)); } #define SETTINGS_PRO_VERSION_URL_KEY "ProVersionURL" @@ -130,7 +131,7 @@ extern "C" { string res; Settings::Get(SETTINGS_PRO_VERSION_URL_KEY, res); - return jni::ToJavaString(res); + return jni::ToJavaString(env, res); } void OnProVersionServerReply(downloader::HttpRequest & r, shared_ptr obj) @@ -181,7 +182,7 @@ extern "C" shouldCheck = true; //< value is corrupted or invalid, should re-check else { - uint64_t curTime = time(0); + uint64_t const curTime = time(0); if (curTime - lastCheckTime > PRO_VERSION_CHECK_INTERVAL) shouldCheck = true; //< last check was too long ago else @@ -194,7 +195,8 @@ extern "C" if (shouldCheck) { LOG(LDEBUG, ("checking for Pro version")); - downloader::HttpRequest::Get(jni::ToNativeString(proVersionServerURL), bind(&OnProVersionServerReply, _1, jni::make_global_ref(thiz))); + downloader::HttpRequest::Get(jni::ToNativeString(env, proVersionServerURL), + bind(&OnProVersionServerReply, _1, jni::make_global_ref(thiz))); } } @@ -203,7 +205,7 @@ extern "C" { string res; Settings::Get(SETTINGS_PRO_VERSION_URL_KEY, res); - return jni::ToJavaString(res); + return jni::ToJavaString(env, res); } JNIEXPORT void JNICALL diff --git a/android/jni/com/mapswithme/platform/Platform.cpp b/android/jni/com/mapswithme/platform/Platform.cpp index 5544ed1ff4..dab59abbb5 100644 --- a/android/jni/com/mapswithme/platform/Platform.cpp +++ b/android/jni/com/mapswithme/platform/Platform.cpp @@ -85,12 +85,12 @@ namespace android m_impl = new PlatformImpl(); - m_resourcesDir = jni::ToNativeString(apkPath); - m_writableDir = jni::ToNativeString(storagePath); - m_settingsDir = jni::ToNativeString(settingsPath); + m_resourcesDir = jni::ToNativeString(env, apkPath); + m_writableDir = jni::ToNativeString(env, storagePath); + m_settingsDir = jni::ToNativeString(env, settingsPath); - m_localTmpPath = jni::ToNativeString(tmpPath); - m_externalTmpPath = jni::ToNativeString(extTmpPath); + m_localTmpPath = jni::ToNativeString(env, tmpPath); + m_externalTmpPath = jni::ToNativeString(env, extTmpPath); // By default use external temporary folder m_tmpDir = m_externalTmpPath;