diff options
| author | campbeb <bpcampbell@gmail.com> | 2012-08-17 18:41:00 +0900 |
|---|---|---|
| committer | campbeb <bpcampbell@gmail.com> | 2012-08-17 18:41:00 +0900 |
| commit | 42f6652ba1996d605e1fe33750b7ee1b998f1395 (patch) | |
| tree | d70f838420e774113eae5f34f697350ab6674250 | |
| parent | 1bc0c6323e5c640d5a53e501fee649f50bdebd5f (diff) | |
| download | cgeo-42f6652ba1996d605e1fe33750b7ee1b998f1395.zip cgeo-42f6652ba1996d605e1fe33750b7ee1b998f1395.tar.gz cgeo-42f6652ba1996d605e1fe33750b7ee1b998f1395.tar.bz2 | |
Allow searching OC geocodes on main screen
| -rw-r--r-- | main/src/cgeo/geocaching/SearchActivity.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/SearchActivity.java b/main/src/cgeo/geocaching/SearchActivity.java index ae350c0..e5cf679 100644 --- a/main/src/cgeo/geocaching/SearchActivity.java +++ b/main/src/cgeo/geocaching/SearchActivity.java @@ -1,6 +1,9 @@ package cgeo.geocaching; import cgeo.geocaching.activity.AbstractActivity; +import cgeo.geocaching.connector.ConnectorFactory; +import cgeo.geocaching.connector.IConnector; +import cgeo.geocaching.connector.capability.ISearchByGeocode; import cgeo.geocaching.connector.gc.GCConstants; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.geopoint.GeopointFormatter; @@ -98,14 +101,18 @@ public class SearchActivity extends AbstractActivity { * @return true if a search was performed, else false */ private boolean instantSearch(final String query, final boolean keywordSearch) { - final String geocode = BaseUtils.getMatch(query, GCConstants.PATTERN_GC_CODE, true, 0, "", false); - if (StringUtils.isNotBlank(geocode)) { + + // Check if any connector can handle the query as a geocode + final String geocode = StringUtils.deleteWhitespace(query); + final IConnector connector = ConnectorFactory.getConnector(geocode); + if (connector instanceof ISearchByGeocode) { final Intent cachesIntent = new Intent(this, CacheDetailActivity.class); cachesIntent.putExtra("geocode", geocode.toUpperCase()); startActivity(cachesIntent); return true; } + // 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); |
