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.java25
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);
}