From a0b1835621f7d3ed9fc0e142550cf29720615096 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Tue, 20 Feb 2018 08:44:42 +0200 Subject: Messy commit of hacks and implementations --- src/libjvm-android.c | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'src/libjvm-android.c') diff --git a/src/libjvm-android.c b/src/libjvm-android.c index fd4e7d5..9b53db6 100644 --- a/src/libjvm-android.c +++ b/src/libjvm-android.c @@ -10,12 +10,20 @@ android_content_Context_getPackageName(JNIEnv *env, jobject object, va_list args return (*env)->NewStringUTF(env, "com.gnu.linux"); } +jstring +android_content_Context_getPackageCodePath(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + return (*env)->NewStringUTF(env, "."); +} + jobject android_content_Context_getSharedPreferences(JNIEnv *env, jobject object, va_list args) { assert(env && object); jstring str = va_arg(args, jstring); - printf("%s::%d\n", (*env)->GetStringUTFChars(env, str, NULL), va_arg(args, jint)); + (*env)->GetStringUTFChars(env, str, NULL); + printf("%d\n", va_arg(args, jint)); va_end(args); static jobject sv; return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "android/content/SharedPreferences")))); @@ -62,3 +70,38 @@ android_content_SharedPreferences_Editor_apply(JNIEnv *env, jobject object, va_l { assert(env && object); } + +jobject +android_content_Context_getExternalFilesDir(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + // FIXME: add mechanism that allows us to implement these objects and then + // use `$XDG_DATA_HOME/android2gnulinux/appid` for the path + jstring str = va_arg(args, jstring); + (*env)->GetStringUTFChars(env, str, NULL); + va_end(args); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "java/io/File")))); +} + +jobject +android_content_Context_getFilesDir(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "java/io/File")))); +} + +jobject +android_app_ApplicationErrorReport_getErrorReportReceiver(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + jobject obj = va_arg(args, jobject); // android.content.Context + jstring str = va_arg(args, jstring); + jint flags = va_arg(args, jint); + (*env)->GetStringUTFChars(env, str, NULL); + printf("%p, %d\n", obj, flags); + va_end(args); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "android/content/ComponentName")))); +} -- cgit v1.2.3