diff options
Diffstat (limited to 'main/src/cgeo/geocaching/SearchActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/SearchActivity.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/main/src/cgeo/geocaching/SearchActivity.java b/main/src/cgeo/geocaching/SearchActivity.java index 5f2bddc..4c9a230 100644 --- a/main/src/cgeo/geocaching/SearchActivity.java +++ b/main/src/cgeo/geocaching/SearchActivity.java @@ -28,6 +28,8 @@ import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.EditText; +import java.util.Locale; + public class SearchActivity extends AbstractActivity { private static final String EXTRAS_KEYWORDSEARCH = "keywordsearch"; @@ -98,13 +100,18 @@ public class SearchActivity extends AbstractActivity { * @return true if a search was performed, else false */ private boolean instantSearch(final String query, final boolean keywordSearch) { + // first check if this was a scanned URL + String geocode = ConnectorFactory.getGeocodeFromURL(query); + + // otherwise see if this is a pure geocode + if (StringUtils.isEmpty(geocode)) { + geocode = StringUtils.trim(query); + } - // Check if any connector can handle the query as a geocode - final String geocode = StringUtils.trim(query); final IConnector connector = ConnectorFactory.getConnector(geocode); if (connector instanceof ISearchByGeocode) { final Intent cachesIntent = new Intent(this, CacheDetailActivity.class); - cachesIntent.putExtra("geocode", geocode.toUpperCase()); + cachesIntent.putExtra("geocode", geocode.toUpperCase(Locale.US)); startActivity(cachesIntent); return true; } @@ -112,8 +119,8 @@ public class SearchActivity extends AbstractActivity { // Check if the query is a TB code final String trackable = BaseUtils.getMatch(query, GCConstants.PATTERN_TB_CODE, true, 0, "", false); if (StringUtils.isNotBlank(trackable)) { - final Intent trackablesIntent = new Intent(this, cgeotrackable.class); - trackablesIntent.putExtra("geocode", trackable.toUpperCase()); + final Intent trackablesIntent = new Intent(this, TrackableActivity.class); + trackablesIntent.putExtra("geocode", trackable.toUpperCase(Locale.US)); startActivity(trackablesIntent); return true; } @@ -154,7 +161,7 @@ public class SearchActivity extends AbstractActivity { findByGeocodeFn(); } }); - addHistoryEntries(geocodeEdit, app.geocodesInCache()); + addHistoryEntries(geocodeEdit, cgData.getRecentGeocodesForSearch()); final Button displayByGeocode = (Button) findViewById(R.id.display_geocode); displayByGeocode.setOnClickListener(new findByGeocodeListener()); @@ -206,7 +213,7 @@ public class SearchActivity extends AbstractActivity { findTrackableFn(); } }); - addHistoryEntries(trackable, app.getTrackableCodes()); + addHistoryEntries(trackable, cgData.getTrackableCodes()); disableSuggestions(trackable); @@ -401,8 +408,8 @@ public class SearchActivity extends AbstractActivity { return; } - final Intent trackablesIntent = new Intent(this, cgeotrackable.class); - trackablesIntent.putExtra("geocode", trackableText.toUpperCase()); + final Intent trackablesIntent = new Intent(this, TrackableActivity.class); + trackablesIntent.putExtra("geocode", trackableText.toUpperCase(Locale.US)); startActivity(trackablesIntent); } |
