summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2018-06-30 13:40:14 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-08-11 11:14:22 -0700
commitaed7528443b68ce8aced14130fc3622ddf8ec866 (patch)
treeeffebf48082e60b641939064decdfeeac32cf2f2
parentd27777790ee956c532be1dcefb59332e424bedd2 (diff)
downloadsubsurface-aed7528443b68ce8aced14130fc3622ddf8ec866.tar.gz
Android: add callback from Intent
Right now all this does is add the device string to the log. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--android-mobile/src/org/subsurfacedivelog/mobile/SubsurfaceMobileActivity.java2
-rw-r--r--core/android.cpp18
2 files changed, 20 insertions, 0 deletions
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 <QtAndroidExtras/QAndroidJniObject>
#include <QtAndroid>
+#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)
{