diff options
Diffstat (limited to 'apps/hosted')
| -rw-r--r-- | apps/hosted/keyboard.c | 18 | ||||
| -rw-r--r-- | apps/hosted/yesno.c | 14 |
2 files changed, 25 insertions, 7 deletions
diff --git a/apps/hosted/keyboard.c b/apps/hosted/keyboard.c index 6cc14d6..ab461cf 100644 --- a/apps/hosted/keyboard.c +++ b/apps/hosted/keyboard.c @@ -25,6 +25,7 @@ #include <stdbool.h> #include "string-extra.h" #include "kernel.h" +#include "lang.h" extern JNIEnv *env_ptr; static jclass RockboxKeyboardInput_class; @@ -67,7 +68,10 @@ static void kdb_init(void) RockboxKeyboardInput_class, constructor); kbd_inputfunc = e->GetMethodID(env_ptr, RockboxKeyboardInput_class, - "kbd_input", "(Ljava/lang/String;)V"); + "kbd_input", + "(Ljava/lang/String;" + "Ljava/lang/String;" + "Ljava/lang/String;)V"); kbd_is_usable = e->GetMethodID(env_ptr, RockboxKeyboardInput_class, "is_usable", "()Z"); } @@ -80,12 +84,15 @@ static void kdb_init(void) int kbd_input(char* text, int buflen) { - JNIEnv e = *env_ptr; - jstring str = e->NewStringUTF(env_ptr, text); + JNIEnv e = *env_ptr; + jstring str = e->NewStringUTF(env_ptr, text); + jstring ok_text = e->NewStringUTF(env_ptr, str(LANG_KBD_OK)); + jstring cancel_text = e->NewStringUTF(env_ptr, str(LANG_KBD_CANCEL)); const char *utf8_string; kdb_init(); - e->CallVoidMethod(env_ptr, RockboxKeyboardInput_instance,kbd_inputfunc,str); + e->CallVoidMethod(env_ptr, RockboxKeyboardInput_instance,kbd_inputfunc, + str, ok_text, cancel_text); wakeup_wait(&kbd_wakeup, TIMEOUT_BLOCK); @@ -96,6 +103,9 @@ int kbd_input(char* text, int buflen) e->ReleaseStringUTFChars(env_ptr, new_string, utf8_string); e->DeleteGlobalRef(env_ptr, new_string); } + e->DeleteGlobalRef(env_ptr, str); + e->DeleteGlobalRef(env_ptr, ok_text); + e->DeleteGlobalRef(env_ptr, cancel_text); return !accepted; /* return 0 on success */ } diff --git a/apps/hosted/yesno.c b/apps/hosted/yesno.c index 2a8c02e..d00cb06 100644 --- a/apps/hosted/yesno.c +++ b/apps/hosted/yesno.c @@ -62,7 +62,10 @@ static void yesno_init(void) RockboxYesno_class, constructor); yesno_func = e->GetMethodID(env_ptr, RockboxYesno_class, - "yesno_display", "(Ljava/lang/String;)V"); + "yesno_display", + "(Ljava/lang/String;" + "Ljava/lang/String;" + "Ljava/lang/String;)V"); yesno_is_usable = e->GetMethodID(env_ptr, RockboxYesno_class, "is_usable", "()Z"); } @@ -100,12 +103,17 @@ enum yesno_res gui_syncyesno_run(const struct text_message * main_message, JNIEnv e = *env_ptr; jstring message = build_message(main_message); - - e->CallVoidMethod(env_ptr, RockboxYesno_instance, yesno_func, message); + jstring yes = (*env_ptr)->NewStringUTF(env_ptr, str(LANG_SET_BOOL_YES)); + jstring no = (*env_ptr)->NewStringUTF(env_ptr, str(LANG_SET_BOOL_NO)); + + e->CallVoidMethod(env_ptr, RockboxYesno_instance, yesno_func, + message, yes, no); wakeup_wait(&yesno_wakeup, TIMEOUT_BLOCK); e->DeleteLocalRef(env_ptr, message); + e->DeleteLocalRef(env_ptr, yes); + e->DeleteLocalRef(env_ptr, no); return ret ? YESNO_YES : YESNO_NO; } |