package com.mapzen.sample.pelias; import com.mapzen.pelias.BoundingBox; import com.mapzen.pelias.Pelias; import com.mapzen.pelias.PeliasLocationProvider; import com.mapzen.pelias.SuggestFilter; import com.mapzen.pelias.gson.Result; import com.mapzen.pelias.widget.AutoCompleteAdapter; import com.mapzen.pelias.widget.AutoCompleteListView; import com.mapzen.pelias.widget.PeliasSearchView; import com.mapzen.pelias.widget.SearchSubmitListener; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.util.Log; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; /** * Main entry point for Pelias sample. Displays a {@link PeliasSearchView} and allows user to view * autocomplete results. */ public class MainActivity extends AppCompatActivity { private static final String TAG = MainActivity.class.getSimpleName(); AutoCompleteListView listView; Pelias pelias; //Hard code to NYC for simplicity PeliasLocationProvider peliasLocationProvider = new PeliasLocationProvider() { @Override public double getLat() { return 40.74433; } @Override public double getLon() { return -73.9903; } @Override public BoundingBox getBoundingBox() { return new BoundingBox(40.74433, -73.9903, 40.741050, -73.996142); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setupPelias(); setupListView(); setupPeliasSearchView(); } private void setupPelias() { pelias = new Pelias(); pelias.setLocationProvider(peliasLocationProvider); } private void setupListView() { listView = (AutoCompleteListView) findViewById(R.id.list_view); AutoCompleteAdapter autocompleteAdapter = new AutoCompleteAdapter(this, android.R.layout.simple_list_item_1); listView.setAdapter(autocompleteAdapter); } private void setupPeliasSearchView() { PeliasSearchView searchView = new PeliasSearchView(this); ActionBar.LayoutParams lp = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT); getSupportActionBar().setCustomView(searchView, lp); getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); searchView.setAutoCompleteListView(listView); searchView.setPelias(pelias); searchView.setCallback(new Callback<Result>() { @Override public void onResponse(Call<Result> call, Response<Result> response) { Log.d(TAG, "Feature Count:" + response.body().getFeatures().size()); } @Override public void onFailure(Call<Result> call, Throwable t) { Log.d(TAG, "Failure:" + t.getMessage()); } }); searchView.setIconifiedByDefault(false); searchView.setQueryHint(this.getString(R.string.search_hint)); searchView.setSuggestFilter(new SuggestFilter() { @Override public String getCountryFilter() { return "FR"; } @Override public String getLayersFilter() { return "address,venue"; } @Override public String getSources() { return "wof,osm,oa,gn"; } }); searchView.setSearchSubmitListener(new SearchSubmitListener() { @Override public boolean searchOnSearchKeySubmit() { return false; } @Override public boolean hideAutocompleteOnSearchSubmit() { return false; } }); } }