summaryrefslogtreecommitdiff
path: root/src/libjvm-android.c
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2018-02-20 08:44:42 +0200
committerJari Vetoniemi <mailroxas@gmail.com>2018-02-20 08:44:42 +0200
commita0b1835621f7d3ed9fc0e142550cf29720615096 (patch)
tree5b8c903190c75f10e1753c1ec50a446c2192ceb0 /src/libjvm-android.c
parenta08dd25eb79ed44ae06db2b95d4b44d77ea68110 (diff)
Messy commit of hacks and implementations
Diffstat (limited to 'src/libjvm-android.c')
-rw-r--r--src/libjvm-android.c45
1 files changed, 44 insertions, 1 deletions
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"))));
+}