private void search(SearchResult result, boolean resultClicked) {
   if (!searchWithoutSuggestions && getNumberOfResults() == 0) return;
   setSearchString(result.title);
   if (!TextUtils.isEmpty(getSearchText())) {
     setLogoTextInt(result.title);
     if (listener != null) {
       if (resultClicked) listener.onResultClick(result);
       else listener.onSearch(result.title);
     }
   } else {
     setLogoTextInt(logoText);
   }
   toggleSearch();
 }
 /** * Clear all the results */
 public void clearResults() {
   if (resultList != null) {
     resultList.clear();
     mAdapter.notifyDataSetChanged();
   }
   listener.onSearchCleared();
 }
 /** * Mandatory method for the onClick event */
 public void micClick() {
   if (!isMic) {
     setSearchString("");
     listener.onSearchCleared();
   } else {
     startVoiceRecognition();
   }
 }
 private void closeSearch() {
   if (animateDrawerLogo) {
     this.materialMenu.animateState(IconState.BURGER);
     this.drawerLogo.setVisibility(View.VISIBLE);
   }
   this.logo.setVisibility(View.VISIBLE);
   this.search.setVisibility(View.GONE);
   this.results.setVisibility(View.GONE);
   if (tint != null && rootLayout != null) {
     rootLayout.removeView(tint);
   }
   if (listener != null) listener.onSearchClosed();
   micStateChanged(true);
   mic.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_action_mic));
   InputMethodManager inputMethodManager =
       (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
   inputMethodManager.hideSoftInputFromWindow(getApplicationWindowToken(), 0);
   searchOpen = false;
 }
  private void openSearch(Boolean openKeyboard) {
    if (animateDrawerLogo) {
      this.materialMenu.animateState(IconState.ARROW);
      this.drawerLogo.setVisibility(View.GONE);
    }
    this.logo.setVisibility(View.GONE);
    this.search.setVisibility(View.VISIBLE);
    search.requestFocus();
    this.results.setVisibility(View.VISIBLE);
    animate = true;
    setAdapter(new SearchAdapter(context, resultList, search));
    searchOpen = true;
    results.setOnItemClickListener(
        new OnItemClickListener() {

          @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            SearchResult result = resultList.get(arg2);
            search(result, true);
          }
        });
    if (initialResults != null) {
      setInitialResults();
    } else {
      updateResults();
    }

    if (listener != null) listener.onSearchOpened();
    if (getSearchText().length() > 0) {
      micStateChanged(false);
      mic.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_clear));
    }
    if (openKeyboard) {
      InputMethodManager inputMethodManager =
          (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
      inputMethodManager.toggleSoftInputFromWindow(
          getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);
    }
  }