summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2018-07-12 14:45:18 +0200
committertobrun <tobrun.van.nuland@gmail.com>2018-07-12 14:45:18 +0200
commitaa66d2d9c0700bf89fd708ce72c4b2689a9f70d2 (patch)
treefcbd08269156f549cac365d86c86532c21a256ef
parentbf69f1a2d3ed4e6792b5ebc704b9cb70c02e6f57 (diff)
downloadqtlocation-mapboxgl-upstream/tvn-timber-log.tar.gz
[android] - enable error severity logging of timberupstream/tvn-timber-log
-rw-r--r--platform/android/config.cmake2
-rwxr-xr-xplatform/android/src/jni.cpp4
-rw-r--r--platform/android/src/logging_android.cpp7
-rwxr-xr-xplatform/android/src/native_map_view.cpp3
-rw-r--r--platform/android/src/timber.cpp20
-rw-r--r--platform/android/src/timber.hpp24
6 files changed, 59 insertions, 1 deletions
diff --git a/platform/android/config.cmake b/platform/android/config.cmake
index fa26987e5a..ce97bd8426 100644
--- a/platform/android/config.cmake
+++ b/platform/android/config.cmake
@@ -43,6 +43,8 @@ macro(mbgl_platform_core)
PRIVATE platform/android/src/text/local_glyph_rasterizer_jni.hpp
PRIVATE platform/android/src/logging_android.cpp
PRIVATE platform/android/src/thread.cpp
+ PRIVATE platform/android/src/timber.cpp
+ PRIVATE platform/android/src/timber.hpp
PRIVATE platform/default/string_stdlib.cpp
PRIVATE platform/default/bidi.cpp
PRIVATE platform/default/thread_local.cpp
diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp
index beb2c14eb3..43fad77b46 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 "timber.hpp"
namespace mbgl {
namespace android {
@@ -191,6 +192,9 @@ void registerNatives(JavaVM *vm) {
LocalGlyphRasterizer::registerNative(env);
Locale::registerNative(env);
Collator::registerNative(env);
+
+ // log
+ Timber::registerNative(env);
}
} // namespace android
diff --git a/platform/android/src/logging_android.cpp b/platform/android/src/logging_android.cpp
index 2e025c059f..786bb39c52 100644
--- a/platform/android/src/logging_android.cpp
+++ b/platform/android/src/logging_android.cpp
@@ -1,6 +1,8 @@
#include <mbgl/util/logging.hpp>
#include <android/log.h>
+#include "timber.hpp"
+#include "attach_env.hpp"
namespace mbgl {
@@ -29,6 +31,9 @@ int severityToPriority(EventSeverity severity) {
void Log::platformRecord(EventSeverity severity, const std::string &msg) {
__android_log_print(severityToPriority(severity), "mbgl", "%s", msg.c_str());
+ if(severity == EventSeverity::Error) {
+ auto env{ android::AttachEnv() };
+ android::Timber::logError(*env, jni::Make<jni::String>(*env, msg.c_str()));
+ }
}
-
}
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp
index c648a22893..b7c9cbb932 100755
--- a/platform/android/src/native_map_view.cpp
+++ b/platform/android/src/native_map_view.cpp
@@ -52,6 +52,7 @@
#include "map/image.hpp"
#include "style/light.hpp"
#include "bitmap_factory.hpp"
+#include "timber.hpp"
namespace mbgl {
namespace android {
@@ -72,6 +73,8 @@ NativeMapView::NativeMapView(jni::JNIEnv& _env,
return;
}
+ Timber::logError(_env, jni::Make<jni::String>(_env, "hello world"));
+
// Get native peer for file source
mbgl::FileSource& fileSource = mbgl::android::FileSource::getDefaultFileSource(_env, jFileSource);
diff --git a/platform/android/src/timber.cpp b/platform/android/src/timber.cpp
new file mode 100644
index 0000000000..1a96dc3c5e
--- /dev/null
+++ b/platform/android/src/timber.cpp
@@ -0,0 +1,20 @@
+#include "timber.hpp"
+#include "java_types.hpp"
+
+namespace mbgl {
+namespace android {
+
+void Timber::registerNative(jni::JNIEnv& env) {
+ _class = *jni::Class<Timber>::Find(env).NewGlobalRef(env).release();
+}
+
+jni::Class<Timber> Timber::_class;
+
+void Timber::logError(jni::JNIEnv& env, jni::String error) {
+ using Signature = void(jni::String, jni::Array<jni::Object<>>);
+ auto method = _class.GetStaticMethod<Signature>(env, "e");
+ return _class.Call(env, method, error, jni::Array<jni::Object<>>());
+}
+
+} // namespace android
+} // namespace mbgl
diff --git a/platform/android/src/timber.hpp b/platform/android/src/timber.hpp
new file mode 100644
index 0000000000..1acaf39c13
--- /dev/null
+++ b/platform/android/src/timber.hpp
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <jni/jni.hpp>
+
+#include "bitmap.hpp"
+
+namespace mbgl {
+namespace android {
+
+class Timber {
+public:
+ static constexpr auto Name() {
+ return "timber/log/Timber";
+ };
+ static void registerNative(jni::JNIEnv&);
+
+ static void logError(jni::JNIEnv&, jni::String error);
+
+ private:
+ static jni::Class<Timber> _class;
+ };
+
+} // namespace android
+} // namespace mbgl