diff options
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/SearchActivity.java | 17 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgData.java | 29 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeoapplication.java | 4 |
3 files changed, 44 insertions, 6 deletions
diff --git a/main/src/cgeo/geocaching/SearchActivity.java b/main/src/cgeo/geocaching/SearchActivity.java index 562d5c3..5f2bddc 100644 --- a/main/src/cgeo/geocaching/SearchActivity.java +++ b/main/src/cgeo/geocaching/SearchActivity.java @@ -154,11 +154,7 @@ public class SearchActivity extends AbstractActivity { findByGeocodeFn(); } }); - final String[] geocodesInCache = app.geocodesInCache(); - if (geocodesInCache != null) { - final ArrayAdapter<String> geocodesAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, geocodesInCache); - geocodeEdit.setAdapter(geocodesAdapter); - } + addHistoryEntries(geocodeEdit, app.geocodesInCache()); final Button displayByGeocode = (Button) findViewById(R.id.display_geocode); displayByGeocode.setOnClickListener(new findByGeocodeListener()); @@ -202,7 +198,7 @@ public class SearchActivity extends AbstractActivity { } }); - EditText trackable = (EditText) findViewById(R.id.trackable); + AutoCompleteTextView trackable = (AutoCompleteTextView) findViewById(R.id.trackable); EditUtils.setActionListener(trackable, new Runnable() { @Override @@ -210,12 +206,21 @@ public class SearchActivity extends AbstractActivity { findTrackableFn(); } }); + addHistoryEntries(trackable, app.getTrackableCodes()); + disableSuggestions(trackable); final Button displayTrackable = (Button) findViewById(R.id.display_trackable); displayTrackable.setOnClickListener(new findTrackableListener()); } + private void addHistoryEntries(final AutoCompleteTextView textView, final String[] entries) { + if (entries != null) { + final ArrayAdapter<String> historyAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, entries); + textView.setAdapter(historyAdapter); + } + } + private final GeoDirHandler geoDirHandler = new GeoDirHandler() { @Override public void updateGeoData(final IGeoData geo) { diff --git a/main/src/cgeo/geocaching/cgData.java b/main/src/cgeo/geocaching/cgData.java index 5220f20..e2352b8 100644 --- a/main/src/cgeo/geocaching/cgData.java +++ b/main/src/cgeo/geocaching/cgData.java @@ -2968,4 +2968,33 @@ public class cgData { } } + public String[] getTrackableCodes() { + init(); + + final Cursor cursor = database.query( + dbTableTrackables, + new String[] { "tbcode" }, + null, + null, + null, + null, + "updated DESC", + "100"); + + final ArrayList<String> list = new ArrayList<String>(); + if (cursor != null) { + if (cursor.getCount() > 0) { + cursor.moveToFirst(); + + final int index = cursor.getColumnIndex("tbcode"); + do { + list.add(cursor.getString(index)); + } while (cursor.moveToNext()); + } + cursor.close(); + } + + return list.toArray(new String[list.size()]); + } + } diff --git a/main/src/cgeo/geocaching/cgeoapplication.java b/main/src/cgeo/geocaching/cgeoapplication.java index 9c63555..8a2e984 100644 --- a/main/src/cgeo/geocaching/cgeoapplication.java +++ b/main/src/cgeo/geocaching/cgeoapplication.java @@ -482,4 +482,8 @@ public class cgeoapplication extends Application { liveMapHintShown = true; } + public String[] getTrackableCodes() { + return storage.getTrackableCodes(); + } + } |
