package eu.ttbox.androgister.ui.person; import android.app.Activity; import android.app.Fragment; import android.app.SearchManager; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.SearchView; import eu.ttbox.androgister.R; public class PersonListActivity extends Activity { private static final String TAG = "PersonListActivity"; private PersonListFragment personListFragment; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.person_list_activity); handleIntent(getIntent()); } @Override public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); if (fragment instanceof PersonListFragment) { personListFragment = (PersonListFragment) fragment; } } @Override protected void onNewIntent(Intent intent) { handleIntent(intent); } protected void handleIntent(Intent intent) { if (intent == null) { return; } if (Log.isLoggable(TAG, Log.DEBUG)) { Log.d(TAG, "handleIntent for action : " + intent.getAction()); } if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY); doSearch(query); } else if (Intent.ACTION_VIEW.equals(intent.getAction())) { // TODO SetResult } } private void doSearch(String query) { personListFragment.doSearch(query); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); searchView.setOnQueryTextListener(personListFragment); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(false); } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.search: onSearchRequested(); return true; default: return false; } } }