package net.osmand.plus.activities.search;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Comparator;
import net.osmand.data.LatLon;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.helpers.FileNameTranslationHelper;
import net.osmand.plus.resources.RegionAddressRepository;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast;
public class SearchRegionByNameActivity extends SearchByNameAbstractActivity<RegionAddressRepository> {
@Override
protected Comparator<? super RegionAddressRepository> createComparator() {
return new Comparator<RegionAddressRepository>() {
Collator col = Collator.getInstance();
@Override
public int compare(RegionAddressRepository lhs,
RegionAddressRepository rhs) {
return col.compare(getText(lhs), getText(rhs));
}
};
}
@Override
protected void reset() {
//This is really only a "clear input text field", hence do not reset settings here
//osmandSettings.setLastSearchedRegion("", null);
super.reset();
}
@Override
protected LatLon getLocation(RegionAddressRepository item) {
return item.getEstimatedRegionCenter();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setLabelText(R.string.choose_available_region);
if(((OsmandApplication)getApplication()).getResourceManager().getAddressRepositories().isEmpty()){
Toast.makeText(this, R.string.none_region_found, Toast.LENGTH_LONG).show();
}
initialListToFilter = new ArrayList<RegionAddressRepository>(((OsmandApplication)getApplication()).getResourceManager().getAddressRepositories());
NamesAdapter namesAdapter = new NamesAdapter(new ArrayList<RegionAddressRepository>(initialListToFilter),createComparator()); //$NON-NLS-1$
setListAdapter(namesAdapter);
}
@Override
public String getText(RegionAddressRepository obj) {
return FileNameTranslationHelper.getFileName(this,
getMyApplication().getResourceManager().getOsmandRegions(), obj.getFileName());
}
@Override
public String getAdditionalFilterText(RegionAddressRepository obj) {
return obj.getName();
}
@Override
public void itemSelected(RegionAddressRepository obj) {
((OsmandApplication) getApplication()).getSettings().setLastSearchedRegion(obj.getFileName(), obj.getEstimatedRegionCenter());
quitActivity(SearchCityByNameActivity.class);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
}