From aed7528443b68ce8aced14130fc3622ddf8ec866 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sat, 30 Jun 2018 13:40:14 -0700 Subject: [PATCH] Android: add callback from Intent Right now all this does is add the device string to the log. Signed-off-by: Dirk Hohndel --- .../mobile/SubsurfaceMobileActivity.java | 2 ++ core/android.cpp | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/android-mobile/src/org/subsurfacedivelog/mobile/SubsurfaceMobileActivity.java b/android-mobile/src/org/subsurfacedivelog/mobile/SubsurfaceMobileActivity.java index 25bc08bc7..432785f3c 100644 --- a/android-mobile/src/org/subsurfacedivelog/mobile/SubsurfaceMobileActivity.java +++ b/android-mobile/src/org/subsurfacedivelog/mobile/SubsurfaceMobileActivity.java @@ -27,6 +27,7 @@ public class SubsurfaceMobileActivity extends QtActivity public static boolean isIntentPending; public static boolean isInitialized; private static final String TAG = "subsurfacedivelog.mobile"; + public static native void setDeviceString(String deviceString); // we need to provide two endpoints: // onNewIntent if we receive an Intent while running @@ -58,6 +59,7 @@ public class SubsurfaceMobileActivity extends QtActivity // Log.i(TAG + " onNewIntent product name", device.getProductName()); // } Log.i(TAG + " onNewIntent toString", device.toString()); + setDeviceString(device.toString()); super.onNewIntent(intent); setIntent(intent); // Intent will be processed, if all is initialized and Qt / QML can handle the event diff --git a/core/android.cpp b/core/android.cpp index f506868f0..7d8c89b9c 100644 --- a/core/android.cpp +++ b/core/android.cpp @@ -15,6 +15,10 @@ #include #include +#if defined(SUBSURFACE_MOBILE) +#include "mobile-widgets/qmlmanager.h" +#endif + #define USB_SERVICE "usb" extern "C" { @@ -152,6 +156,20 @@ int get_usb_fd(uint16_t idVendor, uint16_t idProduct) return fd; } +JNIEXPORT void JNICALL +Java_org_subsurfacedivelog_mobile_SubsurfaceMobileActivity_setDeviceString(JNIEnv *env, + jobject obj, + jstring javaDeviceString) +{ + const char *deviceString = env->GetStringUTFChars(javaDeviceString, NULL); + Q_UNUSED (obj) +#if defined(SUBSURFACE_MOBILE) + QMLManager::instance()->appendTextToLog(deviceString); +#endif + env->ReleaseStringUTFChars(javaDeviceString, deviceString); + return; +} + /* NOP wrappers to comform with windows.c */ int subsurface_rename(const char *path, const char *newpath) {