summaryrefslogtreecommitdiff
path: root/android/src/org/rockbox/RockboxKeyboardInput.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/src/org/rockbox/RockboxKeyboardInput.java')
-rw-r--r--android/src/org/rockbox/RockboxKeyboardInput.java58
1 files changed, 41 insertions, 17 deletions
diff --git a/android/src/org/rockbox/RockboxKeyboardInput.java b/android/src/org/rockbox/RockboxKeyboardInput.java
index 210cbbd..b7dd812 100644
--- a/android/src/org/rockbox/RockboxKeyboardInput.java
+++ b/android/src/org/rockbox/RockboxKeyboardInput.java
@@ -23,33 +23,57 @@ package org.rockbox;
import android.app.Activity;
-import android.content.Intent;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.text.Editable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.EditText;
public class RockboxKeyboardInput
{
- private String result;
-
- public RockboxKeyboardInput()
+ public void kbd_input(final String text)
{
- result = null;
- }
+ final Activity c = RockboxService.get_instance().get_activity();
- public void kbd_input(String text)
- {
- RockboxActivity a = (RockboxActivity) RockboxService.get_instance().get_activity();
- Intent kbd = new Intent(a, KeyboardActivity.class);
- kbd.putExtra("value", text);
- a.waitForActivity(kbd, new HostCallback()
- {
- public void onComplete(int resultCode, Intent data)
+ c.runOnUiThread(new Runnable() {
+ @Override
+ public void run()
{
- put_result(resultCode == Activity.RESULT_OK,
- data.getStringExtra("value"));
+ LayoutInflater inflater = LayoutInflater.from(c);
+ View addView = inflater.inflate(R.layout.keyboardinput, null);
+ EditText input = (EditText) addView.findViewById(R.id.KbdInput);
+ input.setText(text);
+ new AlertDialog.Builder(c)
+ .setTitle(R.string.KbdInputTitle)
+ .setView(addView)
+ .setIcon(R.drawable.icon)
+ .setCancelable(false)
+ .setPositiveButton(R.string.OK, new DialogInterface.OnClickListener()
+ {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ EditText input = (EditText)((Dialog)dialog)
+ .findViewById(R.id.KbdInput);
+ Editable s = input.getText();
+ put_result(true, s.toString());
+ }
+ })
+ .setNegativeButton(R.string.Cancel, new DialogInterface.OnClickListener()
+ {
+ public void onClick(DialogInterface dialog, int whichButton)
+ {
+ put_result(false, "");
+ }
+ })
+ .show();
}
});
}
-
+
private native void put_result(boolean accepted, String new_string);
+
+ @SuppressWarnings("unused")
public boolean is_usable()
{
return RockboxService.get_instance().get_activity() != null;