From 739d76cfda5793256e849acd082d90f1e09c9494 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Sat, 6 Nov 2010 01:40:24 +0000 Subject: [PATCH] Android: Use our translations for the yes/no/ok/cancel buttons in the yesno and keyboard dialog. Second part of FS#11708. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28515 a1c6a512-1295-4272-9138-f99709370657 --- .../src/org/rockbox/RockboxKeyboardInput.java | 7 +++---- android/src/org/rockbox/RockboxYesno.java | 7 +++---- apps/hosted/keyboard.c | 18 ++++++++++++++---- apps/hosted/yesno.c | 14 +++++++++++--- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/android/src/org/rockbox/RockboxKeyboardInput.java b/android/src/org/rockbox/RockboxKeyboardInput.java index b7dd812f35..9cb5683a57 100644 --- a/android/src/org/rockbox/RockboxKeyboardInput.java +++ b/android/src/org/rockbox/RockboxKeyboardInput.java @@ -33,12 +33,11 @@ import android.widget.EditText; public class RockboxKeyboardInput { - public void kbd_input(final String text) + public void kbd_input(final String text, final String ok, final String cancel) { final Activity c = RockboxService.get_instance().get_activity(); c.runOnUiThread(new Runnable() { - @Override public void run() { LayoutInflater inflater = LayoutInflater.from(c); @@ -50,7 +49,7 @@ public class RockboxKeyboardInput .setView(addView) .setIcon(R.drawable.icon) .setCancelable(false) - .setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() + .setPositiveButton(ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { EditText input = (EditText)((Dialog)dialog) @@ -59,7 +58,7 @@ public class RockboxKeyboardInput put_result(true, s.toString()); } }) - .setNegativeButton(R.string.Cancel, new DialogInterface.OnClickListener() + .setNegativeButton(cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { diff --git a/android/src/org/rockbox/RockboxYesno.java b/android/src/org/rockbox/RockboxYesno.java index 9481d69d01..df8c54b7d9 100644 --- a/android/src/org/rockbox/RockboxYesno.java +++ b/android/src/org/rockbox/RockboxYesno.java @@ -28,12 +28,11 @@ import android.content.DialogInterface; public class RockboxYesno { @SuppressWarnings("unused") - private void yesno_display(final String text) + private void yesno_display(final String text, final String yes, final String no) { final Activity c = RockboxService.get_instance().get_activity(); c.runOnUiThread(new Runnable() { - @Override public void run() { new AlertDialog.Builder(c) @@ -41,14 +40,14 @@ public class RockboxYesno .setIcon(R.drawable.icon) .setCancelable(false) .setMessage(text) - .setPositiveButton(R.string.Yes, new DialogInterface.OnClickListener() + .setPositiveButton(yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { put_result(true); } }) - .setNegativeButton(R.string.No, new DialogInterface.OnClickListener() + .setNegativeButton(no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { diff --git a/apps/hosted/keyboard.c b/apps/hosted/keyboard.c index 6cc14d654f..ab461cf52d 100644 --- a/apps/hosted/keyboard.c +++ b/apps/hosted/keyboard.c @@ -25,6 +25,7 @@ #include #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 2a8c02edd5..d00cb063af 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; }