diff --git a/android/jni/com/mapswithme/core/jni_helper.cpp b/android/jni/com/mapswithme/core/jni_helper.cpp index 74a9c9106a..1236349687 100644 --- a/android/jni/com/mapswithme/core/jni_helper.cpp +++ b/android/jni/com/mapswithme/core/jni_helper.cpp @@ -29,6 +29,7 @@ jclass g_keyValueClazz; jclass g_httpUploaderClazz; jclass g_httpUploaderResultClazz; jclass g_networkPolicyClazz; +jclass g_storageUtilsClazz; extern "C" { @@ -55,6 +56,7 @@ JNI_OnLoad(JavaVM * jvm, void *) g_httpUploaderClazz = jni::GetGlobalClassRef(env, "com/mapswithme/util/HttpUploader"); g_httpUploaderResultClazz = jni::GetGlobalClassRef(env, "com/mapswithme/util/HttpUploader$Result"); g_networkPolicyClazz = jni::GetGlobalClassRef(env, "com/mapswithme/util/NetworkPolicy"); + g_storageUtilsClazz = jni::GetGlobalClassRef(env, "com/mapswithme/util/StorageUtils"); return JNI_VERSION_1_6; } @@ -79,6 +81,7 @@ JNI_OnUnload(JavaVM *, void *) env->DeleteGlobalRef(g_httpUploaderClazz); env->DeleteGlobalRef(g_httpUploaderResultClazz); env->DeleteGlobalRef(g_networkPolicyClazz); + env->DeleteGlobalRef(g_storageUtilsClazz); } } // extern "C" diff --git a/android/jni/com/mapswithme/core/jni_helper.hpp b/android/jni/com/mapswithme/core/jni_helper.hpp index 9db06924f0..c52878a482 100644 --- a/android/jni/com/mapswithme/core/jni_helper.hpp +++ b/android/jni/com/mapswithme/core/jni_helper.hpp @@ -27,6 +27,7 @@ extern jclass g_keyValueClazz; extern jclass g_httpUploaderClazz; extern jclass g_httpUploaderResultClazz; extern jclass g_networkPolicyClazz; +extern jclass g_storageUtilsClazz; namespace jni { diff --git a/android/jni/com/mapswithme/maps/MwmApplication.cpp b/android/jni/com/mapswithme/maps/MwmApplication.cpp index 13ef1fb70c..caea8707c8 100644 --- a/android/jni/com/mapswithme/maps/MwmApplication.cpp +++ b/android/jni/com/mapswithme/maps/MwmApplication.cpp @@ -11,13 +11,6 @@ crashlytics_context_t * g_crashlytics; extern "C" { - // static void nativePreparePlatform(String settingsPath); - JNIEXPORT void JNICALL - Java_com_mapswithme_maps_MwmApplication_nativePreparePlatform(JNIEnv * env, jclass clazz, jstring settingsPath) - { - android::Platform::Instance().SetSettingsDir(jni::ToNativeString(env, settingsPath)); - } - // void nativeInitPlatform(String apkPath, String storagePath, String privatePath, String tmpPath, // String obbGooglePath, String flavorName, String buildType, boolean isTablet); JNIEXPORT void JNICALL diff --git a/android/jni/com/mapswithme/platform/Platform.cpp b/android/jni/com/mapswithme/platform/Platform.cpp index cc70af3a1d..d4dc8b9ae1 100644 --- a/android/jni/com/mapswithme/platform/Platform.cpp +++ b/android/jni/com/mapswithme/platform/Platform.cpp @@ -119,6 +119,18 @@ platform::NetworkPolicy GetCurrentNetworkPolicy() namespace android { +Platform::Platform() +{ + auto env = jni::GetEnv(); + static auto const getSettingsPathId = + jni::GetStaticMethodID(env, g_storageUtilsClazz, "getSettingsPath", "()Ljava/lang/String;"); + + auto const settingsDir = + static_cast(env->CallStaticObjectMethod(g_storageUtilsClazz, getSettingsPathId)); + + SetSettingsDir(jni::ToNativeString(env, settingsDir)); +} + void Platform::Initialize(JNIEnv * env, jobject functorProcessObject, jstring apkPath, jstring storagePath, jstring privatePath, jstring tmpPath, jstring obbGooglePath, jstring flavorName, jstring buildType, diff --git a/android/jni/com/mapswithme/platform/Platform.hpp b/android/jni/com/mapswithme/platform/Platform.hpp index 73e8d6c9d6..7500ef9f20 100644 --- a/android/jni/com/mapswithme/platform/Platform.hpp +++ b/android/jni/com/mapswithme/platform/Platform.hpp @@ -17,6 +17,8 @@ namespace android class Platform : public ::Platform { public: + Platform(); + void Initialize(JNIEnv * env, jobject functorProcessObject, jstring apkPath, jstring storagePath, jstring privatePath, jstring tmpPath, jstring obbGooglePath, jstring flavorName, jstring buildType, bool isTablet); diff --git a/android/multidex-config.txt b/android/multidex-config.txt index ee6687d57e..06aa4f2264 100644 --- a/android/multidex-config.txt +++ b/android/multidex-config.txt @@ -11,5 +11,6 @@ com/mapswithme/util/HttpUploader.class com/mapswithme/util/HttpUploader$Result.class com/mapswithme/util/KeyValue.class com/mapswithme/util/NetworkPolicy.class +com/mapswithme/util/StorageUtils.class com/mapswithme/util/Utils.class com/my/tracker/MyTracker.class diff --git a/android/src/com/mapswithme/maps/MwmApplication.java b/android/src/com/mapswithme/maps/MwmApplication.java index bb005118c5..ff79b4a219 100644 --- a/android/src/com/mapswithme/maps/MwmApplication.java +++ b/android/src/com/mapswithme/maps/MwmApplication.java @@ -211,7 +211,6 @@ public class MwmApplication extends Application return; // First we need initialize paths and platform to have access to settings and other components. - nativePreparePlatform(settingsPath); nativeInitPlatform(StorageUtils.getApkPath(), StorageUtils.getStoragePath(settingsPath), filesPath, tempPath, StorageUtils.getObbGooglePath(), BuildConfig.FLAVOR, BuildConfig.BUILD_TYPE, UiUtils.isTablet()); @@ -410,7 +409,6 @@ public class MwmApplication extends Application mMainLoopHandler.sendMessage(m); } - private static native void nativePreparePlatform(String settingsPath); private native void nativeInitPlatform(String apkPath, String storagePath, String privatePath, String tmpPath, String obbGooglePath, String flavorName, String buildType, boolean isTablet);