From ee36ae14bbd2d435e34cfe659c2d62020611576a Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Sun, 20 May 2018 15:00:13 +0200 Subject: [PATCH] Add LogManager for reading the logs in react-native --- .../main/java/de/gotify/GotifyPackage.java | 22 +++++++++++++ .../src/main/java/de/gotify/LogManager.java | 32 +++++++++++++++++++ .../main/java/de/gotify/MainApplication.java | 1 + src/native/LogManager.js | 3 ++ src/native/LogReader.js | 0 5 files changed, 58 insertions(+) create mode 100644 android/app/src/main/java/de/gotify/GotifyPackage.java create mode 100644 android/app/src/main/java/de/gotify/LogManager.java create mode 100644 src/native/LogManager.js delete mode 100644 src/native/LogReader.js diff --git a/android/app/src/main/java/de/gotify/GotifyPackage.java b/android/app/src/main/java/de/gotify/GotifyPackage.java new file mode 100644 index 0000000..e99ea62 --- /dev/null +++ b/android/app/src/main/java/de/gotify/GotifyPackage.java @@ -0,0 +1,22 @@ +package de.gotify; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class GotifyPackage implements ReactPackage { + @Override + public List createNativeModules(ReactApplicationContext reactContext) { + return Arrays.asList(new LogManager(reactContext)); + } + + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } +} diff --git a/android/app/src/main/java/de/gotify/LogManager.java b/android/app/src/main/java/de/gotify/LogManager.java new file mode 100644 index 0000000..83aa0ce --- /dev/null +++ b/android/app/src/main/java/de/gotify/LogManager.java @@ -0,0 +1,32 @@ +package de.gotify; + +import com.facebook.react.bridge.Callback; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; + +public class LogManager extends ReactContextBaseJavaModule { + LogManager(final ReactApplicationContext reactContext) { + super(reactContext); + } + + @Override + public String getName() { + return "LogManager"; + } + + @ReactMethod + public void clear(Callback callback) { + Log.get().clear(); + callback.invoke(); + } + + @ReactMethod + public void getLog(Callback callback) { + StringBuilder log = new StringBuilder(); + for (String line : Log.get()) { + log.append(line).append("\n"); + } + callback.invoke(log.toString()); + } +} diff --git a/android/app/src/main/java/de/gotify/MainApplication.java b/android/app/src/main/java/de/gotify/MainApplication.java index 9d2f2db..2896e2c 100644 --- a/android/app/src/main/java/de/gotify/MainApplication.java +++ b/android/app/src/main/java/de/gotify/MainApplication.java @@ -29,6 +29,7 @@ public class MainApplication extends Application implements ReactApplication { new MainReactPackage(), new RNSharedPreferencesReactPackage(), new RNDeviceInfo(), + new GotifyPackage(), new VectorIconsPackage() ); } diff --git a/src/native/LogManager.js b/src/native/LogManager.js new file mode 100644 index 0000000..b576de2 --- /dev/null +++ b/src/native/LogManager.js @@ -0,0 +1,3 @@ +import {NativeModules} from 'react-native'; + +export default NativeModules.LogManager; \ No newline at end of file diff --git a/src/native/LogReader.js b/src/native/LogReader.js deleted file mode 100644 index e69de29..0000000