aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2011-12-18 18:20:05 +0100
committerBananeweizen <bananeweizen@gmx.de>2011-12-18 18:20:05 +0100
commit439bcd63ead65c48ead621a209b37017a3cf2858 (patch)
treede05e29ee71ab2ce38506957b1fbb6fccf446f7a /main/src
parent0ffc68892d75a9d6570354d0f04b0cfda7d978cd (diff)
downloadcgeo-439bcd63ead65c48ead621a209b37017a3cf2858.zip
cgeo-439bcd63ead65c48ead621a209b37017a3cf2858.tar.gz
cgeo-439bcd63ead65c48ead621a209b37017a3cf2858.tar.bz2
fix #606: Use enter key to invoke action in one line input fields
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/cgeoadvsearch.java131
-rw-r--r--main/src/cgeo/geocaching/utils/EditUtils.java40
2 files changed, 83 insertions, 88 deletions
diff --git a/main/src/cgeo/geocaching/cgeoadvsearch.java b/main/src/cgeo/geocaching/cgeoadvsearch.java
index 054277c..0951b31 100644
--- a/main/src/cgeo/geocaching/cgeoadvsearch.java
+++ b/main/src/cgeo/geocaching/cgeoadvsearch.java
@@ -4,6 +4,7 @@ import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.GeopointFormatter;
import cgeo.geocaching.geopoint.GeopointParser;
+import cgeo.geocaching.utils.EditUtils;
import org.apache.commons.lang3.StringUtils;
@@ -12,17 +13,14 @@ import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
-import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
-import android.view.inputmethod.EditorInfo;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
-import android.widget.TextView;
import java.util.regex.Pattern;
@@ -150,13 +148,25 @@ public class cgeoadvsearch extends AbstractActivity {
final Button findByCoords = (Button) findViewById(R.id.search_coordinates);
findByCoords.setOnClickListener(new findByCoordsListener());
- ((EditText) findViewById(R.id.address)).setOnEditorActionListener(new findByAddressAction());
+ EditUtils.setActionListener((EditText) findViewById(R.id.address), new Runnable() {
+
+ @Override
+ public void run() {
+ findByAddressFn();
+ }
+ });
final Button findByAddress = (Button) findViewById(R.id.search_address);
findByAddress.setOnClickListener(new findByAddressListener());
final AutoCompleteTextView geocodeEdit = (AutoCompleteTextView) findViewById(R.id.geocode);
- geocodeEdit.setOnEditorActionListener(new findByGeocodeAction());
+ EditUtils.setActionListener(geocodeEdit, new Runnable() {
+
+ @Override
+ public void run() {
+ findByGeocodeFn();
+ }
+ });
geocodesInCache = app.geocodesInCache();
if (geocodesInCache != null) {
final ArrayAdapter<String> geocodesAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, geocodesInCache);
@@ -166,17 +176,35 @@ public class cgeoadvsearch extends AbstractActivity {
final Button displayByGeocode = (Button) findViewById(R.id.display_geocode);
displayByGeocode.setOnClickListener(new findByGeocodeListener());
- ((EditText) findViewById(R.id.keyword)).setOnEditorActionListener(new findByKeywordAction());
+ EditUtils.setActionListener((EditText) findViewById(R.id.keyword), new Runnable() {
+
+ @Override
+ public void run() {
+ findByKeywordFn();
+ }
+ });
final Button findByKeyword = (Button) findViewById(R.id.search_keyword);
findByKeyword.setOnClickListener(new findByKeywordListener());
- ((EditText) findViewById(R.id.username)).setOnEditorActionListener(new findByUsernameAction());
+ EditUtils.setActionListener((EditText) findViewById(R.id.username), new Runnable() {
+
+ @Override
+ public void run() {
+ findByUsernameFn();
+ }
+ });
final Button findByUserName = (Button) findViewById(R.id.search_username);
findByUserName.setOnClickListener(new findByUsernameListener());
- ((EditText) findViewById(R.id.owner)).setOnEditorActionListener(new findByOwnerAction());
+ EditUtils.setActionListener((EditText) findViewById(R.id.owner), new Runnable() {
+
+ @Override
+ public void run() {
+ findByOwnerFn();
+ }
+ });
final Button findByOwner = (Button) findViewById(R.id.search_owner);
findByOwner.setOnClickListener(new OnClickListener() {
@@ -188,7 +216,13 @@ public class cgeoadvsearch extends AbstractActivity {
});
EditText trackable = (EditText) findViewById(R.id.trackable);
- trackable.setOnEditorActionListener(new findTrackableAction());
+ EditUtils.setActionListener(trackable, new Runnable() {
+
+ @Override
+ public void run() {
+ findTrackableFn();
+ }
+ });
disableSuggestions(trackable);
final Button displayTrackable = (Button) findViewById(R.id.display_trackable);
@@ -269,19 +303,6 @@ public class cgeoadvsearch extends AbstractActivity {
}
}
- private class findByKeywordAction implements TextView.OnEditorActionListener {
-
- @Override
- public boolean onEditorAction(TextView view, int action, KeyEvent event) {
- if (action == EditorInfo.IME_ACTION_GO) {
- findByKeywordFn();
- return true;
- }
-
- return false;
- }
- }
-
private class findByKeywordListener implements View.OnClickListener {
public void onClick(View arg0) {
@@ -301,21 +322,7 @@ public class cgeoadvsearch extends AbstractActivity {
cgeocaches.startActivityKeyword(this, keyText);
}
- private class findByAddressAction implements TextView.OnEditorActionListener {
-
- @Override
- public boolean onEditorAction(TextView view, int action, KeyEvent event) {
- if (action == EditorInfo.IME_ACTION_GO) {
- findByAddressFn();
- return true;
- }
-
- return false;
- }
- }
-
private class findByAddressListener implements View.OnClickListener {
-
public void onClick(View arg0) {
findByAddressFn();
}
@@ -334,19 +341,6 @@ public class cgeoadvsearch extends AbstractActivity {
startActivity(addressesIntent);
}
- private class findByUsernameAction implements TextView.OnEditorActionListener {
-
- @Override
- public boolean onEditorAction(TextView view, int action, KeyEvent event) {
- if (action == EditorInfo.IME_ACTION_GO) {
- findByUsernameFn();
- return true;
- }
-
- return false;
- }
- }
-
private class findByUsernameListener implements View.OnClickListener {
public void onClick(View arg0) {
@@ -365,19 +359,6 @@ public class cgeoadvsearch extends AbstractActivity {
cgeocaches.startActivityUserName(this, usernameText);
}
- private class findByOwnerAction implements TextView.OnEditorActionListener {
-
- @Override
- public boolean onEditorAction(TextView view, int action, KeyEvent event) {
- if (action == EditorInfo.IME_ACTION_GO) {
- findByOwnerFn();
- return true;
- }
-
- return false;
- }
- }
-
private void findByOwnerFn() {
findByOwnerFn(((EditText) findViewById(R.id.owner)).getText().toString());
}
@@ -393,19 +374,6 @@ public class cgeoadvsearch extends AbstractActivity {
cgeocaches.startActivityOwner(this, usernameText);
}
- private class findByGeocodeAction implements TextView.OnEditorActionListener {
-
- @Override
- public boolean onEditorAction(TextView view, int action, KeyEvent event) {
- if (action == EditorInfo.IME_ACTION_GO) {
- findByGeocodeFn();
- return true;
- }
-
- return false;
- }
- }
-
private class findByGeocodeListener implements View.OnClickListener {
public void onClick(View arg0) {
@@ -424,19 +392,6 @@ public class cgeoadvsearch extends AbstractActivity {
CacheDetailActivity.startActivity(this, geocodeText);
}
- private class findTrackableAction implements TextView.OnEditorActionListener {
-
- @Override
- public boolean onEditorAction(TextView view, int action, KeyEvent event) {
- if (action == EditorInfo.IME_ACTION_GO) {
- findTrackableFn();
- return true;
- }
-
- return false;
- }
- }
-
private class findTrackableListener implements View.OnClickListener {
public void onClick(View arg0) {
diff --git a/main/src/cgeo/geocaching/utils/EditUtils.java b/main/src/cgeo/geocaching/utils/EditUtils.java
new file mode 100644
index 0000000..f2f89e7
--- /dev/null
+++ b/main/src/cgeo/geocaching/utils/EditUtils.java
@@ -0,0 +1,40 @@
+package cgeo.geocaching.utils;
+
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
+import android.widget.TextView;
+
+public final class EditUtils {
+
+ public static void setActionListener(final EditText editText, final Runnable runnable) {
+ editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+
+ @Override
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if (actionId == EditorInfo.IME_ACTION_GO) {
+ runnable.run();
+ return true;
+ }
+
+ return false;
+ }
+ });
+
+ editText.setOnKeyListener(new View.OnKeyListener() {
+
+ @Override
+ public boolean onKey(View v, int keyCode, KeyEvent event) {
+ // If the event is a key-down event on the "enter" button
+ if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
+ runnable.run();
+ return true;
+ }
+ return false;
+ }
+ });
+
+ }
+
+}