package com.linroid.sky31radio.ui; import android.os.Bundle; import android.support.v7.widget.SearchView; import android.view.Menu; import android.view.MenuItem; import com.linroid.sky31radio.R; import com.linroid.sky31radio.module.SearchModule; import com.linroid.sky31radio.ui.base.InjectableActivity; import com.linroid.sky31radio.ui.fragment.SearchProgramListFragment; import java.util.Arrays; import java.util.List; import timber.log.Timber; public class SearchActivity extends InjectableActivity { SearchProgramListFragment resultFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); resultFragment = SearchProgramListFragment.newInstance(); } @Override protected int provideContentViewId() { return R.layout.activity_search; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_search, menu); MenuItem menuItem = menu.findItem(R.id.action_search); final SearchView searchView = (SearchView) menuItem.getActionView(); searchView.setQueryHint(getString(R.string.hint_action_search)); searchView.setFocusable(true); searchView.setIconified(false); searchView.requestFocusFromTouch(); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { Timber.d("onQueryTextSubmit, Query: %s", s); if(getSupportFragmentManager().findFragmentById(R.id.program_list_container)==null){ getSupportFragmentManager() .beginTransaction() .replace(R.id.program_list_container, resultFragment) .commit(); getSupportFragmentManager().executePendingTransactions(); } resultFragment.setKeyword(s); return false; } @Override public boolean onQueryTextChange(String s) { return false; } }); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } @Override public List<Object> getModules() { return Arrays.<Object>asList(new SearchModule(this)); } }