implement URL opening using libportal

This commit is contained in:
Julian Winkler
2023-09-01 16:03:31 +02:00
parent 0461834be0
commit b35cbea099
8 changed files with 69 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
#include <gtk/gtk.h>
#include <libportal/portal.h>
#include <jni.h>
@@ -106,3 +107,14 @@ JNIEXPORT void JNICALL Java_android_app_Activity_nativeFinish(JNIEnv *env, jobje
JNIEXPORT void JNICALL Java_android_app_Activity_nativeStartActivity(JNIEnv *env, jclass class, jobject activity) {
activity_start(env, activity);
}
static XdpPortal *portal = NULL;
JNIEXPORT void JNICALL Java_android_app_Activity_nativeOpenURI(JNIEnv *env, jclass class, jstring uriString) {
if (!portal) {
portal = xdp_portal_new();
}
const char* uri = (*env)->GetStringUTFChars(env, uriString, NULL);
xdp_portal_open_uri(portal, NULL, uri, XDP_OPEN_URI_FLAG_NONE, NULL, NULL, NULL);
(*env)->ReleaseStringUTFChars(env, uriString, uri);
}

View File

@@ -25,6 +25,14 @@ JNIEXPORT void JNICALL Java_android_app_Activity_nativeFinish
JNIEXPORT void JNICALL Java_android_app_Activity_nativeStartActivity
(JNIEnv *, jclass, jobject);
/*
* Class: android_app_Activity
* Method: nativeOpenURI
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_android_app_Activity_nativeOpenURI
(JNIEnv *, jclass, jstring);
#ifdef __cplusplus
}
#endif