1 package net.minetest.minetest;
3 import android.app.Activity;
4 import android.app.AlertDialog;
5 import android.content.DialogInterface;
6 import android.content.Intent;
7 import android.os.Bundle;
8 import android.text.InputType;
9 import android.view.KeyEvent;
10 import android.view.View;
11 import android.view.View.OnKeyListener;
12 import android.widget.EditText;
14 public class MinetestTextEntry extends Activity {
15 private final int MultiLineTextInput = 1;
16 private final int SingleLineTextInput = 2;
17 private final int SingleLinePasswordInput = 3;
18 private AlertDialog mTextInputDialog;
19 private EditText mTextInputWidget;
22 public void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 Bundle b = getIntent().getExtras();
25 String acceptButton = b.getString("EnterButton");
26 String hint = b.getString("hint");
27 String current = b.getString("current");
28 int editType = b.getInt("editType");
30 AlertDialog.Builder builder = new AlertDialog.Builder(this);
31 mTextInputWidget = new EditText(this);
32 mTextInputWidget.setHint(hint);
33 mTextInputWidget.setText(current);
34 mTextInputWidget.setMinWidth(300);
35 if (editType == SingleLinePasswordInput) {
36 mTextInputWidget.setInputType(InputType.TYPE_CLASS_TEXT |
37 InputType.TYPE_TEXT_VARIATION_PASSWORD);
39 mTextInputWidget.setInputType(InputType.TYPE_CLASS_TEXT);
42 builder.setView(mTextInputWidget);
44 if (editType == MultiLineTextInput) {
45 builder.setPositiveButton(acceptButton, new DialogInterface.OnClickListener() {
46 public void onClick(DialogInterface dialog, int whichButton) {
47 pushResult(mTextInputWidget.getText().toString());
52 builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
53 public void onCancel(DialogInterface dialog) {
58 mTextInputWidget.setOnKeyListener(new OnKeyListener() {
60 public boolean onKey(View view, int KeyCode, KeyEvent event) {
61 if (KeyCode == KeyEvent.KEYCODE_ENTER) {
63 pushResult(mTextInputWidget.getText().toString());
70 mTextInputDialog = builder.create();
71 mTextInputDialog.show();
74 private void pushResult(String text) {
75 Intent resultData = new Intent();
76 resultData.putExtra("text", text);
77 setResult(Activity.RESULT_OK, resultData);
78 mTextInputDialog.dismiss();
82 private void cancelDialog() {
83 setResult(Activity.RESULT_CANCELED);
84 mTextInputDialog.dismiss();