diff options
Diffstat (limited to 'src/libjvm-android.c')
-rw-r--r-- | src/libjvm-android.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/libjvm-android.c b/src/libjvm-android.c index e633347..7cece38 100644 --- a/src/libjvm-android.c +++ b/src/libjvm-android.c @@ -17,5 +17,32 @@ android_content_Context_getSharedPreferences(JNIEnv *env, jobject object, va_lis jstring str = va_arg(args, jstring); printf("%s::%d\n", (*env)->GetStringUTFChars(env, str, NULL), va_arg(args, jint)); va_end(args); - return (*env)->AllocObject(env, (*env)->FindClass(env, "android/content/SharedPreferences")); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "android/content/SharedPreferences")))); +} + +jobject +android_content_SharedPreferences_edit(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "android/content/SharedPreferences/Editor")))); +} + +jobject +android_content_SharedPreferences_getAll(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "java/util/Map")))); +} + +jobject +android_content_SharedPreferences_Editor_putInt(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)); + va_end(args); + return object; } |