aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/SearchActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/SearchActivity.java')
-rw-r--r--main/src/cgeo/geocaching/SearchActivity.java35
1 files changed, 18 insertions, 17 deletions
diff --git a/main/src/cgeo/geocaching/SearchActivity.java b/main/src/cgeo/geocaching/SearchActivity.java
index edd611a..ea91857 100644
--- a/main/src/cgeo/geocaching/SearchActivity.java
+++ b/main/src/cgeo/geocaching/SearchActivity.java
@@ -9,10 +9,11 @@ import cgeo.geocaching.connector.ConnectorFactory;
import cgeo.geocaching.connector.IConnector;
import cgeo.geocaching.connector.capability.ISearchByGeocode;
import cgeo.geocaching.connector.trackable.TrackableConnector;
-import cgeo.geocaching.geopoint.Geopoint;
-import cgeo.geocaching.geopoint.GeopointFormatter;
+import cgeo.geocaching.location.Geopoint;
+import cgeo.geocaching.location.GeopointFormatter;
import cgeo.geocaching.search.AutoCompleteAdapter;
-import cgeo.geocaching.sensors.IGeoData;
+import cgeo.geocaching.sensors.GeoData;
+import cgeo.geocaching.sensors.Sensors;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.ui.dialog.CoordinatesInputDialog;
import cgeo.geocaching.ui.dialog.Dialogs;
@@ -62,6 +63,8 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
@InjectView(R.id.trackable) protected AutoCompleteTextView trackableEditText;
@InjectView(R.id.display_trackable) protected Button buttonSearchTrackable;
+ private static final String GOOGLE_NOW_SEARCH_ACTION = "com.google.android.gms.actions.SEARCH_ACTION";
+
@Override
public final void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -81,8 +84,8 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
return;
}
- // search query
- if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
+ // search query, from search toolbar or from google now
+ if (Intent.ACTION_SEARCH.equals(intent.getAction()) || GOOGLE_NOW_SEARCH_ACTION.equals(intent.getAction())) {
hideKeyboard();
final String query = intent.getStringExtra(SearchManager.QUERY);
final boolean keywordSearch = intent.getBooleanExtra(Intents.EXTRA_KEYWORD_SEARCH, true);
@@ -124,7 +127,7 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
/**
* Performs a search for query either as geocode, trackable code or keyword
*
- * @param query
+ * @param nonTrimmedQuery
* String to search for
* @param keywordSearch
* Set to true if keyword search should be performed if query isn't GC or TB
@@ -142,7 +145,7 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
}
final IConnector connector = ConnectorFactory.getConnector(geocode);
- if (connector instanceof ISearchByGeocode) {
+ if (connector instanceof ISearchByGeocode && geocode != null) {
CacheDetailActivity.startActivity(this, geocode.toUpperCase(Locale.US));
return true;
}
@@ -159,7 +162,7 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
}
}
- if (trackableConnector != ConnectorFactory.UNKNOWN_TRACKABLE_CONNECTOR) {
+ if (trackableConnector != ConnectorFactory.UNKNOWN_TRACKABLE_CONNECTOR && geocode != null) {
final Intent trackablesIntent = new Intent(this, TrackableActivity.class);
trackablesIntent.putExtra(Intents.EXTRA_GEOCODE, geocode.toUpperCase(Locale.US));
startActivity(trackablesIntent);
@@ -291,7 +294,7 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
}
private void updateCoordinates() {
- final CoordinatesInputDialog coordsDialog = CoordinatesInputDialog.getInstance(null, null, app.currentGeo());
+ final CoordinatesInputDialog coordsDialog = CoordinatesInputDialog.getInstance(null, null, Sensors.getInstance().currentGeo());
coordsDialog.setCancelable(true);
coordsDialog.show(getSupportFragmentManager(), "wpedit_dialog");
}
@@ -307,14 +310,12 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
final String lonText = StringUtils.trim(buttonLongitude.getText().toString());
if (StringUtils.isEmpty(latText) || StringUtils.isEmpty(lonText)) {
- final IGeoData geo = app.currentGeo();
- if (geo.getCoords() != null) {
- buttonLatitude.setText(geo.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE));
- buttonLongitude.setText(geo.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE));
- }
+ final GeoData geo = Sensors.getInstance().currentGeo();
+ buttonLatitude.setText(geo.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE));
+ buttonLongitude.setText(geo.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE));
} else {
try {
- CacheListActivity.startActivityCoordinates(this, new Geopoint(latText, lonText));
+ CacheListActivity.startActivityCoordinates(this, new Geopoint(latText, lonText), null);
} catch (final Geopoint.ParseException e) {
showToast(res.getString(e.resource));
}
@@ -373,7 +374,7 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
}
private void findByGeocodeFn() {
- final String geocodeText = StringUtils.trim(geocodeEditText.getText().toString());
+ final String geocodeText = StringUtils.trimToEmpty(geocodeEditText.getText().toString());
if (StringUtils.isBlank(geocodeText) || geocodeText.equalsIgnoreCase("GC")) {
Dialogs.message(this, R.string.warn_search_help_title, R.string.warn_search_help_gccode);
@@ -384,7 +385,7 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin
}
private void findTrackableFn() {
- final String trackableText = StringUtils.trim(trackableEditText.getText().toString());
+ final String trackableText = StringUtils.trimToEmpty(trackableEditText.getText().toString());
if (StringUtils.isBlank(trackableText) || trackableText.equalsIgnoreCase("TB")) {
Dialogs.message(this, R.string.warn_search_help_title, R.string.warn_search_help_tb);