diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-02-19 13:23:49 +0100 |
---|---|---|
committer | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-03-13 14:53:19 +0100 |
commit | 734b217cda0603cb9ea8303b5d719616e2f18155 (patch) | |
tree | 9dce25ec2961ba4ac1cb7c73dc08283e06cb8ec8 /platform/android/src | |
parent | 67e50df1ce16d8bdd7f6530e377c10ae94a543c9 (diff) | |
download | qtlocation-mapboxgl-upstream/lp-cp-13707-origin.tar.gz |
[android] when changing the resource path, recreate database instead of the whole FileSourceupstream/lp-cp-13707-origin
Diffstat (limited to 'platform/android/src')
-rw-r--r-- | platform/android/src/file_source.cpp | 12 | ||||
-rw-r--r-- | platform/android/src/file_source.hpp | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/platform/android/src/file_source.cpp b/platform/android/src/file_source.cpp index daddd0b9cd..4cfb545b84 100644 --- a/platform/android/src/file_source.cpp +++ b/platform/android/src/file_source.cpp @@ -19,11 +19,12 @@ FileSource::FileSource(jni::JNIEnv& _env, const jni::String& accessToken, const jni::String& _cachePath, const jni::Object<AssetManager>& assetManager) { - mapbox::sqlite::setTempPath(jni::Make<std::string>(_env, _cachePath)); + std::string path = jni::Make<std::string>(_env, _cachePath); + mapbox::sqlite::setTempPath(path); // Create a core default file source fileSource = std::make_unique<mbgl::DefaultFileSource>( - jni::Make<std::string>(_env, _cachePath) + "/mbgl-offline.db", + path + DATABASE_FILE, std::make_unique<AssetManagerFileSource>(_env, assetManager)); // Set access token @@ -69,6 +70,12 @@ void FileSource::setResourceTransform(jni::JNIEnv& env, const jni::Object<FileSo } } +void FileSource::setResourceCachePath(jni::JNIEnv& env, const jni::String& path) { + std::string newPath = jni::Make<std::string>(env, path); + mapbox::sqlite::setTempPath(newPath); + fileSource->setResourceCachePath(newPath + DATABASE_FILE); +} + void FileSource::resume(jni::JNIEnv&) { if (!activationCounter) { activationCounter = optional<int>(1) ; @@ -129,6 +136,7 @@ void FileSource::registerNative(jni::JNIEnv& env) { METHOD(&FileSource::setAccessToken, "setAccessToken"), METHOD(&FileSource::setAPIBaseUrl, "setApiBaseUrl"), METHOD(&FileSource::setResourceTransform, "setResourceTransform"), + METHOD(&FileSource::setResourceCachePath, "setResourceCachePath"), METHOD(&FileSource::resume, "activate"), METHOD(&FileSource::pause, "deactivate"), METHOD(&FileSource::isResumed, "isActivated") diff --git a/platform/android/src/file_source.hpp b/platform/android/src/file_source.hpp index 572ac647b7..575702120e 100644 --- a/platform/android/src/file_source.hpp +++ b/platform/android/src/file_source.hpp @@ -39,6 +39,8 @@ public: void setResourceTransform(jni::JNIEnv&, const jni::Object<FileSource::ResourceTransformCallback>&); + void setResourceCachePath(jni::JNIEnv&, const jni::String&); + void resume(jni::JNIEnv&); void pause(jni::JNIEnv&); @@ -52,6 +54,7 @@ public: static void registerNative(jni::JNIEnv&); private: + const std::string DATABASE_FILE = "/mbgl-offline.db"; optional<int> activationCounter; std::unique_ptr<Actor<ResourceTransform>> resourceTransform; std::unique_ptr<mbgl::DefaultFileSource> fileSource; |