summaryrefslogtreecommitdiff
path: root/platform/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src')
-rw-r--r--platform/android/src/http_file_source.cpp2
-rwxr-xr-xplatform/android/src/jni.cpp4
-rw-r--r--platform/android/src/logger.cpp34
-rw-r--r--platform/android/src/logger.hpp24
-rw-r--r--platform/android/src/logging_android.cpp31
5 files changed, 68 insertions, 27 deletions
diff --git a/platform/android/src/http_file_source.cpp b/platform/android/src/http_file_source.cpp
index cda84209ea..fc7ffbec8c 100644
--- a/platform/android/src/http_file_source.cpp
+++ b/platform/android/src/http_file_source.cpp
@@ -20,7 +20,7 @@ public:
class HTTPRequest : public AsyncRequest {
public:
- static constexpr auto Name() { return "com/mapbox/mapboxsdk/http/HTTPRequest"; };
+ static constexpr auto Name() { return "com/mapbox/mapboxsdk/http/NativeHttpRequest"; };
HTTPRequest(jni::JNIEnv&, const Resource&, FileSource::Callback);
~HTTPRequest();
diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp
index 18b966e261..872d8bc89a 100755
--- a/platform/android/src/jni.cpp
+++ b/platform/android/src/jni.cpp
@@ -49,6 +49,7 @@
#include "text/collator_jni.hpp"
#include "text/local_glyph_rasterizer_jni.hpp"
#include "java/lang.hpp"
+#include "logger.hpp"
namespace mbgl {
namespace android {
@@ -192,6 +193,9 @@ void registerNatives(JavaVM *vm) {
LocalGlyphRasterizer::registerNative(env);
Locale::registerNative(env);
Collator::registerNative(env);
+
+ // Logger
+ Logger::registerNative(env);
}
} // namespace android
diff --git a/platform/android/src/logger.cpp b/platform/android/src/logger.cpp
new file mode 100644
index 0000000000..1cc7660716
--- /dev/null
+++ b/platform/android/src/logger.cpp
@@ -0,0 +1,34 @@
+#include "logger.hpp"
+#include "java_types.hpp"
+
+namespace mbgl {
+namespace android {
+
+void Logger::registerNative(jni::JNIEnv& env) {
+ _class = *jni::Class<Logger>::Find(env).NewGlobalRef(env).release();
+}
+
+jni::Class<Logger> Logger::_class;
+
+void Logger::log(jni::JNIEnv& env, EventSeverity severity, const std::string &msg) {
+ auto tag = jni::Make<jni::String>(env, "Mbgl");
+ auto message = jni::Make<jni::String>(env, msg);
+ using Signature = void(jni::String, jni::String);
+
+ if (severity == EventSeverity::Debug) {
+ auto static debug = _class.GetStaticMethod<Signature>(env, "d");
+ _class.Call(env, debug, tag, message);
+ } else if (severity == EventSeverity::Info) {
+ auto static info = _class.GetStaticMethod<Signature>(env, "i");
+ _class.Call(env, info, tag, message);
+ } else if(severity == EventSeverity::Warning) {
+ auto static warning = _class.GetStaticMethod<Signature>(env, "w");
+ _class.Call(env, warning, tag, message);
+ } else {
+ auto static error = _class.GetStaticMethod<Signature>(env, "e");
+ _class.Call(env, error, tag, message);
+ }
+}
+
+} // namespace android
+} // namespace mbgl \ No newline at end of file
diff --git a/platform/android/src/logger.hpp b/platform/android/src/logger.hpp
new file mode 100644
index 0000000000..d4805fccd8
--- /dev/null
+++ b/platform/android/src/logger.hpp
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <mbgl/util/event.hpp>
+#include <jni/jni.hpp>
+#include "bitmap.hpp"
+
+namespace mbgl {
+namespace android {
+
+class Logger {
+public:
+ static constexpr auto Name() {
+ return "com/mapbox/mapboxsdk/log/Logger";
+ };
+ static void registerNative(jni::JNIEnv&);
+
+ static void log(jni::JNIEnv&, EventSeverity severity, const std::string &msg);
+
+private:
+ static jni::Class<Logger> _class;
+};
+
+} // namespace android
+} // namespace mbgl \ No newline at end of file
diff --git a/platform/android/src/logging_android.cpp b/platform/android/src/logging_android.cpp
index 2e025c059f..1301367280 100644
--- a/platform/android/src/logging_android.cpp
+++ b/platform/android/src/logging_android.cpp
@@ -1,34 +1,13 @@
#include <mbgl/util/logging.hpp>
-#include <android/log.h>
+#include "logger.hpp"
+#include "attach_env.hpp"
namespace mbgl {
-namespace {
-
-int severityToPriority(EventSeverity severity) {
- switch(severity) {
- case EventSeverity::Debug:
- return ANDROID_LOG_DEBUG;
-
- case EventSeverity::Info:
- return ANDROID_LOG_INFO;
-
- case EventSeverity::Warning:
- return ANDROID_LOG_WARN;
-
- case EventSeverity::Error:
- return ANDROID_LOG_ERROR;
-
- default:
- return ANDROID_LOG_VERBOSE;
- }
-}
-
-} // namespace
-
void Log::platformRecord(EventSeverity severity, const std::string &msg) {
- __android_log_print(severityToPriority(severity), "mbgl", "%s", msg.c_str());
+ auto env{ android::AttachEnv() };
+ android::Logger::log(*env, severity, msg);
}
-}
+} \ No newline at end of file