/** {@inheritDoc} */
 @Override
 public boolean onQueryTextSubmit(final String query) {
   if (TextUtils.isEmpty(query)) {
     return false;
   }
   // When the search is "committed" by the user, then hide the keyboard so
   // the user can
   // more easily browse the list of results.
   if (mSearchView != null) {
     final InputMethodManager imm =
         (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
     if (imm != null) {
       imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0);
     }
     mSearchView.clearFocus();
   }
   // Action bar subtitle
   mResources.setSubtitle("\"" + mFilterString + "\"");
   return true;
 }
  /** {@inheritDoc} */
  @SuppressWarnings("deprecation")
  @Override
  protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Title bar shows up in gingerbread, I'm too tired to figure out why.
    if (!ApolloUtils.hasHoneycomb()) {
      requestWindowFeature(Window.FEATURE_NO_TITLE);
    }
    // Initialze the theme resources
    mResources = new ThemeUtils(this);
    // Set the overflow style
    mResources.setOverflowStyle(this);

    // Fade it in
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

    // Control the media volume
    setVolumeControlStream(AudioManager.STREAM_MUSIC);

    // Bind Apollo's service
    mToken = MusicUtils.bindToService(this, this);

    // Theme the action bar
    final ActionBar actionBar = getSupportActionBar();
    mResources.themeActionBar(actionBar, getString(R.string.app_name));
    actionBar.setDisplayHomeAsUpEnabled(true);

    // Set the layout
    setContentView(R.layout.grid_base);

    // Give the background a little UI
    final FrameLayout background = (FrameLayout) findViewById(R.id.grid_base_container);
    background.setBackgroundDrawable(getResources().getDrawable(R.drawable.pager_background));

    // Get the query
    final String query = getIntent().getStringExtra(SearchManager.QUERY);
    mFilterString = !TextUtils.isEmpty(query) ? query : null;

    // Action bar subtitle
    mResources.setSubtitle("\"" + mFilterString + "\"");

    // Initialize the adapter
    mAdapter = new SearchAdapter(this);
    // Set the prefix
    mAdapter.setPrefix(mFilterString);
    // Initialze the list
    mGridView = (GridView) findViewById(R.id.grid_base);
    // Bind the data
    mGridView.setAdapter(mAdapter);
    // Recycle the data
    mGridView.setRecyclerListener(new RecycleHolder());
    // Seepd up scrolling
    mGridView.setOnScrollListener(this);
    mGridView.setOnItemClickListener(this);
    if (ApolloUtils.isLandscape(this)) {
      mGridView.setNumColumns(TWO);
    } else {
      mGridView.setNumColumns(ONE);
    }
    // Prepare the loader. Either re-connect with an existing one,
    // or start a new one.
    getSupportLoaderManager().initLoader(0, null, this);
  }