summaryrefslogtreecommitdiff
path: root/platform/android/src/asset_manager_file_source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/asset_manager_file_source.cpp')
-rw-r--r--platform/android/src/asset_manager_file_source.cpp65
1 files changed, 0 insertions, 65 deletions
diff --git a/platform/android/src/asset_manager_file_source.cpp b/platform/android/src/asset_manager_file_source.cpp
deleted file mode 100644
index a8045a2b96..0000000000
--- a/platform/android/src/asset_manager_file_source.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "asset_manager_file_source.hpp"
-
-#include <mbgl/platform/settings.hpp>
-#include <mbgl/storage/file_source_request.hpp>
-#include <mbgl/storage/resource.hpp>
-#include <mbgl/storage/response.hpp>
-#include <mbgl/util/thread.hpp>
-#include <mbgl/util/url.hpp>
-#include <mbgl/util/util.hpp>
-
-#include <android/asset_manager.h>
-#include <android/asset_manager_jni.h>
-
-namespace mbgl {
-
-class AssetManagerFileSource::Impl {
-public:
- Impl(ActorRef<Impl>, AAssetManager* assetManager_) : assetManager(assetManager_) {
- }
-
- void request(const std::string& url, ActorRef<FileSourceRequest> req) {
- // Note: AssetManager already prepends "assets" to the filename.
- const std::string path = mbgl::util::percentDecode(url.substr(8));
-
- Response response;
-
- if (AAsset* asset = AAssetManager_open(assetManager, path.c_str(), AASSET_MODE_BUFFER)) {
- response.data = std::make_shared<std::string>(
- reinterpret_cast<const char*>(AAsset_getBuffer(asset)), AAsset_getLength64(asset));
- AAsset_close(asset);
- } else {
- response.error = std::make_unique<Response::Error>(Response::Error::Reason::NotFound,
- "Could not read asset");
- }
-
- req.invoke(&FileSourceRequest::setResponse, response);
- }
-
-private:
- AAssetManager* assetManager;
-};
-
-AssetManagerFileSource::AssetManagerFileSource(jni::JNIEnv& env,
- const jni::Object<android::AssetManager>& assetManager_)
- : assetManager(jni::NewGlobal(env, assetManager_)),
- impl(std::make_unique<util::Thread<Impl>>(
- util::makeThreadPrioritySetter(platform::EXPERIMENTAL_THREAD_PRIORITY_FILE),
- "AssetManagerFileSource",
- AAssetManager_fromJava(&env, jni::Unwrap(assetManager.get())))) {}
-
-AssetManagerFileSource::~AssetManagerFileSource() = default;
-
-std::unique_ptr<AsyncRequest> AssetManagerFileSource::request(const Resource& resource, Callback callback) {
- auto req = std::make_unique<FileSourceRequest>(std::move(callback));
-
- impl->actor().invoke(&Impl::request, resource.url, req->actor());
-
- return std::move(req);
-}
-
-bool AssetManagerFileSource::canRequest(const Resource& resource) const {
- return 0 == resource.url.rfind(mbgl::util::ASSET_PROTOCOL, 0);
-}
-
-} // namespace mbgl