package net.osmand.plus.activities.search; import java.util.ArrayList; import java.util.List; import net.osmand.data.City; import net.osmand.data.PostCode; import net.osmand.data.Street; import net.osmand.plus.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.RegionAddressRepository; import net.osmand.plus.activities.OsmandApplication; import android.content.SharedPreferences; import android.os.Bundle; import android.widget.TextView; public class SearchStreetByNameActivity extends SearchByNameAbstractActivity<Street> { private RegionAddressRepository region; private City city; private PostCode postcode; @Override protected void onCreate(Bundle savedInstanceState) { SharedPreferences prefs = OsmandSettings.getPrefs(this); region = ((OsmandApplication)getApplication()).getResourceManager().getRegionRepository(OsmandSettings.getLastSearchedRegion(prefs)); if(region != null){ postcode = region.getPostcode(OsmandSettings.getLastSearchedPostcode(prefs)); if (postcode == null) { city = region.getCityById(OsmandSettings.getLastSearchedCity(prefs)); } } super.onCreate(savedInstanceState); ((TextView)findViewById(R.id.Label)).setText(R.string.incremental_search_street); } @Override public List<Street> getObjects(String filter) { List<Street> l = new ArrayList<Street>(); if (city != null || postcode != null) { region.fillWithSuggestedStreets(postcode == null ? city : postcode, filter, l); } return l; } @Override public void updateTextView(Street obj, TextView txt) { txt.setText(obj.getName(region.useEnglishNames())); } @Override public void itemSelected(Street obj) { OsmandSettings.setLastSearchedStreet(this, obj.getName(region.useEnglishNames())); finish(); } }