Remove voice search handling

  Bug: 6439925

Change-Id: I1b7161a67fa0c20d87f147d6ed19c02e53093054
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 01c7da6..42c7206 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -500,19 +500,6 @@
     }
 
     @Override
-    public void showVoiceTitleBar(String title, List<String> results) {
-        mNavigationBar.setInVoiceMode(true, results);
-        mNavigationBar.setDisplayTitle(title);
-    }
-
-    @Override
-    public void revertVoiceTitleBar(Tab tab) {
-        mNavigationBar.setInVoiceMode(false, null);
-        String url = tab.getUrl();
-        mNavigationBar.setDisplayTitle(url);
-    }
-
-    @Override
     public void showComboView(ComboViews startingView, Bundle extras) {
         Intent intent = new Intent(mActivity, ComboViewActivity.class);
         intent.putExtra(ComboViewActivity.EXTRA_INITIAL_VIEW, startingView.name());
@@ -625,7 +612,6 @@
         if (TextUtils.isEmpty(title)) {
             title = url;
         }
-        if (tab.isInVoiceSearchMode()) return;
         if (tab.inForeground()) {
             mNavigationBar.setDisplayTitle(url);
         }
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index cddeda6..76dc48f 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -429,17 +429,6 @@
         String searchEngineName = getSearchEngineName();
         if (force || mSearchEngine == null ||
                 !mSearchEngine.getName().equals(searchEngineName)) {
-            if (mSearchEngine != null) {
-                if (mSearchEngine.supportsVoiceSearch()) {
-                     // One or more tabs could have been in voice search mode.
-                     // Clear it, since the new SearchEngine may not support
-                     // it, or may handle it differently.
-                     for (int i = 0; i < mController.getTabControl().getTabCount(); i++) {
-                         mController.getTabControl().getTab(i).revertVoiceSearchMode();
-                     }
-                 }
-                mSearchEngine.close();
-             }
             mSearchEngine = SearchEngines.get(mContext, searchEngineName);
          }
     }
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 0c86988..ba74e56 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -17,7 +17,6 @@
 package com.android.browser;
 
 import android.app.Activity;
-import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DownloadManager;
 import android.app.ProgressDialog;
@@ -56,7 +55,6 @@
 import android.provider.BrowserContract.Images;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Intents.Insert;
-import android.speech.RecognizerIntent;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Patterns;
@@ -1107,31 +1105,6 @@
         mUi.editUrl(false, true);
     }
 
-    public void startVoiceSearch() {
-        Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
-        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
-                RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
-        intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
-                mActivity.getComponentName().flattenToString());
-        intent.putExtra(SEND_APP_ID_EXTRA, false);
-        intent.putExtra(RecognizerIntent.EXTRA_WEB_SEARCH_ONLY, true);
-        mActivity.startActivity(intent);
-    }
-
-    @Override
-    public void activateVoiceSearchMode(String title, List<String> results) {
-        mUi.showVoiceTitleBar(title, results);
-    }
-
-    public void revertVoiceSearchMode(Tab tab) {
-        mUi.revertVoiceTitleBar(tab);
-    }
-
-    public boolean supportsVoiceSearch() {
-        SearchEngine searchEngine = getSettings().getSearchEngine();
-        return (searchEngine != null && searchEngine.supportsVoiceSearch());
-    }
-
     public void showCustomView(Tab tab, View view, int requestedOrientation,
             WebChromeClient.CustomViewCallback callback) {
         if (tab.inForeground()) {
@@ -2541,9 +2514,7 @@
      */
     protected void loadUrlDataIn(Tab t, UrlData data) {
         if (data != null) {
-            if (data.mVoiceIntent != null) {
-                t.activateVoiceSearchMode(data.mVoiceIntent);
-            } else if (data.isPreloaded()) {
+            if (data.isPreloaded()) {
                 // this isn't called for preloaded tabs
             } else {
                 loadUrl(t, data.mUrl, data.mHeaders);
@@ -2601,47 +2572,6 @@
     }
 
     /**
-     * Feed the previously stored results strings to the BrowserProvider so that
-     * the SearchDialog will show them instead of the standard searches.
-     * @param result String to show on the editable line of the SearchDialog.
-     */
-    @Override
-    public void showVoiceSearchResults(String result) {
-        ContentProviderClient client = mActivity.getContentResolver()
-                .acquireContentProviderClient(Browser.BOOKMARKS_URI);
-        ContentProvider prov = client.getLocalContentProvider();
-        BrowserProvider bp = (BrowserProvider) prov;
-        bp.setQueryResults(mTabControl.getCurrentTab().getVoiceSearchResults());
-        client.release();
-
-        Bundle bundle = createGoogleSearchSourceBundle(
-                GOOGLE_SEARCH_SOURCE_SEARCHKEY);
-        bundle.putBoolean(SearchManager.CONTEXT_IS_VOICE, true);
-        startSearch(result, false, bundle, false);
-    }
-
-    private void startSearch(String initialQuery, boolean selectInitialQuery,
-            Bundle appSearchData, boolean globalSearch) {
-        if (appSearchData == null) {
-            appSearchData = createGoogleSearchSourceBundle(
-                    GOOGLE_SEARCH_SOURCE_TYPE);
-        }
-
-        SearchEngine searchEngine = mSettings.getSearchEngine();
-        if (searchEngine != null && !searchEngine.supportsVoiceSearch()) {
-            appSearchData.putBoolean(SearchManager.DISABLE_VOICE_SEARCH, true);
-        }
-        mActivity.startSearch(initialQuery, selectInitialQuery, appSearchData,
-                globalSearch);
-    }
-
-    private Bundle createGoogleSearchSourceBundle(String source) {
-        Bundle bundle = new Bundle();
-        bundle.putString(Search.SOURCE, source);
-        return bundle;
-    }
-
-    /**
      * helper method for key handler
      * returns the current tab if it can't advance
      */
diff --git a/src/com/android/browser/IntentHandler.java b/src/com/android/browser/IntentHandler.java
index b21c688..47cab70 100644
--- a/src/com/android/browser/IntentHandler.java
+++ b/src/com/android/browser/IntentHandler.java
@@ -28,14 +28,12 @@
 import android.os.Bundle;
 import android.provider.Browser;
 import android.provider.MediaStore;
-import android.speech.RecognizerResultsIntent;
 import android.text.TextUtils;
 import android.util.Patterns;
 
 import com.android.browser.UI.ComboViews;
 import com.android.browser.search.SearchEngine;
 import com.android.common.Search;
-import com.android.common.speech.LoggingEvents;
 
 import java.util.HashMap;
 import java.util.Iterator;
@@ -93,37 +91,11 @@
         // In case the SearchDialog is open.
         ((SearchManager) mActivity.getSystemService(Context.SEARCH_SERVICE))
                 .stopSearch();
-        boolean activateVoiceSearch = RecognizerResultsIntent
-                .ACTION_VOICE_SEARCH_RESULTS.equals(action);
         if (Intent.ACTION_VIEW.equals(action)
                 || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)
                 || Intent.ACTION_SEARCH.equals(action)
                 || MediaStore.INTENT_ACTION_MEDIA_SEARCH.equals(action)
-                || Intent.ACTION_WEB_SEARCH.equals(action)
-                || activateVoiceSearch) {
-            if (current.isInVoiceSearchMode()) {
-                String title = current.getVoiceDisplayTitle();
-                if (title != null && title.equals(intent.getStringExtra(
-                        SearchManager.QUERY))) {
-                    // The user submitted the same search as the last voice
-                    // search, so do nothing.
-                    return;
-                }
-                if (Intent.ACTION_SEARCH.equals(action)
-                        && current.voiceSearchSourceIsGoogle()) {
-                    Intent logIntent = new Intent(
-                            LoggingEvents.ACTION_LOG_EVENT);
-                    logIntent.putExtra(LoggingEvents.EXTRA_EVENT,
-                            LoggingEvents.VoiceSearch.QUERY_UPDATED);
-                    logIntent.putExtra(
-                            LoggingEvents.VoiceSearch.EXTRA_QUERY_UPDATED_VALUE,
-                            intent.getDataString());
-                    mActivity.sendBroadcast(logIntent);
-                    // Note, onPageStarted will revert the voice title bar
-                    // When http://b/issue?id=2379215 is fixed, we should update
-                    // the title bar here.
-                }
-            }
+                || Intent.ACTION_WEB_SEARCH.equals(action)) {
             // If this was a search request (e.g. search query directly typed into the address bar),
             // pass it on to the default web search provider.
             if (handleWebSearchIntent(mActivity, mController, intent)) {
@@ -143,11 +115,9 @@
             /*
              * TODO: Don't allow javascript URIs
              * 0) If this is a javascript: URI, *always* open a new tab
-             * 1) If this is a voice search, re-use tab for appId
-             *    If there is no appId, use current tab
-             * 2) If the URL is already opened, switch to that tab
-             * 3-phone) Reuse tab with same appId
-             * 3-tablet) Open new tab
+             * 1) If the URL is already opened, switch to that tab
+             * 2-phone) Reuse tab with same appId
+             * 2-tablet) Open new tab
              */
             final String appId = intent
                     .getStringExtra(Browser.EXTRA_APPLICATION_ID);
@@ -167,12 +137,9 @@
                     return;
                 }
             }
-            if ((Intent.ACTION_VIEW.equals(action)
-                    // If a voice search has no appId, it means that it came
-                    // from the browser.  In that case, reuse the current tab.
-                    || (activateVoiceSearch && appId != null))
-                    && !mActivity.getPackageName().equals(appId)) {
-                if (activateVoiceSearch || !BrowserActivity.isTablet(mActivity)) {
+            if (Intent.ACTION_VIEW.equals(action)
+                     && !mActivity.getPackageName().equals(appId)) {
+                if (!BrowserActivity.isTablet(mActivity)) {
                     Tab appTab = mTabControl.getTabFromAppId(appId);
                     if (appTab != null) {
                         mController.reuseTab(appTab, urlData);
@@ -301,10 +268,6 @@
 
         String url = null;
         final String action = intent.getAction();
-        if (RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS.equals(
-                action)) {
-            return false;
-        }
         if (Intent.ACTION_VIEW.equals(action)) {
             Uri data = intent.getData();
             if (data != null) url = data.toString();
@@ -369,14 +332,12 @@
     static class UrlData {
         final String mUrl;
         final Map<String, String> mHeaders;
-        final Intent mVoiceIntent;
         final PreloadedTabControl mPreloadedTab;
         final String mSearchBoxQueryToSubmit;
 
         UrlData(String url) {
             this.mUrl = url;
             this.mHeaders = null;
-            this.mVoiceIntent = null;
             this.mPreloadedTab = null;
             this.mSearchBoxQueryToSubmit = null;
         }
@@ -389,18 +350,12 @@
                 PreloadedTabControl preloaded, String searchBoxQueryToSubmit) {
             this.mUrl = url;
             this.mHeaders = headers;
-            if (RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS
-                    .equals(intent.getAction())) {
-                this.mVoiceIntent = intent;
-            } else {
-                this.mVoiceIntent = null;
-            }
             this.mPreloadedTab = preloaded;
             this.mSearchBoxQueryToSubmit = searchBoxQueryToSubmit;
         }
 
         boolean isEmpty() {
-            return mVoiceIntent == null && (mUrl == null || mUrl.length() == 0);
+            return (mUrl == null || mUrl.length() == 0);
         }
 
         boolean isPreloaded() {
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index d66c877..cf61c45 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -45,7 +45,6 @@
     protected TitleBar mTitleBar;
     protected UiController mUiController;
     protected UrlInputView mUrlInput;
-    protected boolean mInVoiceMode = false;
 
     private ImageView mFavicon;
     private ImageView mLockIcon;
@@ -108,9 +107,6 @@
         }
         if (hasFocus) {
             mBaseUi.showTitleBar();
-            if (mInVoiceMode) {
-                mUrlInput.forceFilter();
-            }
         } else if (!mUrlInput.needsUpdate()) {
             mUrlInput.dismissDropDown();
             mUrlInput.hideIME();
@@ -128,8 +124,6 @@
     protected void setFocusState(boolean focus) {
     }
 
-    protected void setSearchMode(boolean voiceSearchEnabled) {}
-
     public boolean isEditingUrl() {
         return mUrlInput.hasFocus();
     }
@@ -144,13 +138,6 @@
         }
     }
 
-    // voicesearch
-
-    public void setInVoiceMode(boolean voicemode, List<String> voiceResults) {
-        mInVoiceMode = voicemode;
-        mUrlInput.setVoiceResults(voiceResults);
-    }
-
     void setIncognitoMode(boolean incognito) {
         mUrlInput.setIncognitoMode(incognito);
     }
@@ -183,13 +170,7 @@
             }
         }
         Intent i = new Intent();
-        String action = null;
-        if (UrlInputView.VOICE.equals(source)) {
-            action = RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS;
-            source = null;
-        } else {
-            action = Intent.ACTION_SEARCH;
-        }
+        String action = Intent.ACTION_SEARCH;
         i.setAction(action);
         i.putExtra(SearchManager.QUERY, text);
         if (extra != null) {
@@ -211,7 +192,7 @@
         post(new Runnable() {
             public void run() {
                 clearFocus();
-                if ((currentTab != null) && !mInVoiceMode) {
+                if (currentTab != null) {
                     setDisplayTitle(currentTab.getUrl());
                 }
             }
@@ -258,8 +239,6 @@
         }
         if (clearInput) {
             mUrlInput.setText("");
-        } else if (mInVoiceMode) {
-            mUrlInput.showDropDown();
         }
         if (forceIME) {
             mUrlInput.showIME();
@@ -283,12 +262,7 @@
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
 
     @Override
-    public void onTextChanged(CharSequence s, int start, int before, int count) {
-        if (mUrlInput.hasFocus()) {
-            // clear voice mode when user types
-            setInVoiceMode(false, null);
-        }
-    }
+    public void onTextChanged(CharSequence s, int start, int before, int count) { }
 
     @Override
     public void afterTextChanged(Editable s) { }
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index 60b228d..2517d62 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -36,7 +36,6 @@
         StateListener, OnMenuItemClickListener, OnDismissListener {
 
     private ImageView mStopButton;
-    private ImageView mVoiceButton;
     private ImageView mMagnify;
     private ImageView mClearButton;
     private Drawable mStopDrawable;
@@ -70,8 +69,6 @@
         super.onFinishInflate();
         mStopButton = (ImageView) findViewById(R.id.stop);
         mStopButton.setOnClickListener(this);
-        mVoiceButton = (ImageView) findViewById(R.id.voice);
-        mVoiceButton.setOnClickListener(this);
         mClearButton = (ImageView) findViewById(R.id.clear);
         mClearButton.setOnClickListener(this);
         mMagnify = (ImageView) findViewById(R.id.magnify);
@@ -96,14 +93,6 @@
     }
 
     @Override
-    protected void setSearchMode(boolean voiceSearchEnabled) {
-        boolean showvoicebutton = voiceSearchEnabled &&
-                mUiController.supportsVoiceSearch();
-        mVoiceButton.setVisibility(showvoicebutton ? View.VISIBLE :
-                View.GONE);
-    }
-
-    @Override
     public void onProgressStarted() {
         super.onProgressStarted();
         if (mStopButton.getDrawable() != mStopDrawable) {
@@ -157,8 +146,6 @@
                     web.reload();
                 }
             }
-        } else if (v == mVoiceButton) {
-            mUiController.startVoiceSearch();
         } else if (v == mTabSwitcher) {
             ((PhoneUi) mBaseUi).toggleNavScreen();
         } else if (mMore == v) {
@@ -229,7 +216,6 @@
             mStopButton.setVisibility(View.GONE);
             mClearButton.setVisibility(View.GONE);
             mMagnify.setVisibility(View.GONE);
-            setSearchMode(mInVoiceMode);
             mTabSwitcher.setVisibility(View.VISIBLE);
             mTitleContainer.setBackgroundDrawable(null);
             mMore.setVisibility(mNeedsMenu ? View.VISIBLE : View.GONE);
@@ -239,7 +225,6 @@
             mStopButton.setVisibility(View.VISIBLE);
             mClearButton.setVisibility(View.GONE);
             mMagnify.setVisibility(View.GONE);
-            setSearchMode(true);
             mTabSwitcher.setVisibility(View.GONE);
             mMore.setVisibility(View.GONE);
             mTitleContainer.setBackgroundDrawable(mTextfieldBgDrawable);
@@ -249,7 +234,6 @@
             mStopButton.setVisibility(View.GONE);
             mClearButton.setVisibility(View.VISIBLE);
             mMagnify.setVisibility(View.VISIBLE);
-            setSearchMode(false);
             mTabSwitcher.setVisibility(View.GONE);
             mMore.setVisibility(View.GONE);
             mTitleContainer.setBackgroundDrawable(mTextfieldBgDrawable);
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index 37b1f17..b9c86e3 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -48,11 +48,9 @@
     private ImageView mStar;
     private ImageView mUrlIcon;
     private ImageView mSearchButton;
-    private View mGoButton;
     private ImageView mStopButton;
     private View mAllButton;
     private View mClearButton;
-    private ImageView mVoiceSearch;
     private View mNavButtons;
     private Drawable mFocusDrawable;
     private Drawable mUnfocusDrawable;
@@ -100,9 +98,7 @@
         mStar = (ImageView) findViewById(R.id.star);
         mStopButton = (ImageView) findViewById(R.id.stop);
         mSearchButton = (ImageView) findViewById(R.id.search);
-        mGoButton = findViewById(R.id.go);
         mClearButton = findViewById(R.id.clear);
-        mVoiceSearch = (ImageView) findViewById(R.id.voicesearch);
         mUrlContainer = findViewById(R.id.urlbar_focused);
         mBackButton.setOnClickListener(this);
         mForwardButton.setOnClickListener(this);
@@ -110,9 +106,7 @@
         mAllButton.setOnClickListener(this);
         mStopButton.setOnClickListener(this);
         mSearchButton.setOnClickListener(this);
-        mGoButton.setOnClickListener(this);
         mClearButton.setOnClickListener(this);
-        mVoiceSearch.setOnClickListener(this);
         mUrlInput.setContainer(mUrlContainer);
     }
 
@@ -177,18 +171,11 @@
         } else if (mAllButton == v) {
             mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mSearchButton == v) {
-            mBaseUi.editUrl(true, false);
+            mBaseUi.editUrl(true, true);
         } else if (mStopButton == v) {
             stopOrRefresh();
-        } else if (mGoButton == v) {
-            if (!TextUtils.isEmpty(mUrlInput.getText())) {
-                onAction(mUrlInput.getText().toString(), null,
-                        UrlInputView.TYPED);
-            }
         } else if (mClearButton == v) {
             clearOrClose();
-        } else if (mVoiceSearch == v) {
-            mUiController.startVoiceSearch();
         } else {
             super.onClick(v);
         }
@@ -214,14 +201,10 @@
         if (mUrlInput.hasFocus()) {
             mUrlIcon.setImageResource(R.drawable.ic_search_holo_dark);
         } else {
-            if (mInVoiceMode) {
-                mUrlIcon.setImageResource(R.drawable.ic_search_holo_dark);
-            } else {
-                if (mFaviconDrawable == null) {
-                    mFaviconDrawable = mBaseUi.getFaviconDrawable(null);
-                }
-                mUrlIcon.setImageDrawable(mFaviconDrawable);
+            if (mFaviconDrawable == null) {
+                mFaviconDrawable = mBaseUi.getFaviconDrawable(null);
             }
+            mUrlIcon.setImageDrawable(mFaviconDrawable);
         }
     }
 
@@ -236,13 +219,10 @@
             mStar.setVisibility(View.GONE);
             mClearButton.setVisibility(View.VISIBLE);
             mUrlIcon.setImageResource(R.drawable.ic_search_holo_dark);
-            updateSearchMode(false);
         } else {
             if (mHideNavButtons) {
                 showNavButtons();
             }
-            mGoButton.setVisibility(View.GONE);
-            mVoiceSearch.setVisibility(View.GONE);
             showHideStar(mUiController.getCurrentTab());
             mClearButton.setVisibility(View.GONE);
             if (mTitleBar.useQuickControls()) {
@@ -279,28 +259,6 @@
         mStopButton.setContentDescription(mRefreshDescription);
     }
 
-    protected void updateSearchMode(boolean userEdited) {
-        setSearchMode(!userEdited || TextUtils.isEmpty(mUrlInput.getText()));
-    }
-
-    @Override
-    protected void setSearchMode(boolean voiceSearchEnabled) {
-        boolean showvoicebutton = voiceSearchEnabled &&
-                mUiController.supportsVoiceSearch();
-        mVoiceSearch.setVisibility(showvoicebutton ? View.VISIBLE :
-                View.GONE);
-        mGoButton.setVisibility(voiceSearchEnabled ? View.GONE :
-                View.VISIBLE);
-    }
-
-    @Override
-    public void setInVoiceMode(boolean voicemode, List<String> voiceResults) {
-        super.setInVoiceMode(voicemode, voiceResults);
-        if (voicemode) {
-            mUrlIcon.setImageDrawable(mSearchButton.getDrawable());
-        }
-    }
-
     private void hideNavButtons() {
         int awidth = mNavButtons.getMeasuredWidth();
         Animator anim1 = ObjectAnimator.ofFloat(mNavButtons, View.TRANSLATION_X, 0, - awidth);
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index ed63daa..eb6032d 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -146,11 +146,6 @@
         } else {
             view.setTitleBar(mTitleBar);
         }
-        if (tab.isInVoiceSearchMode()) {
-            showVoiceTitleBar(tab.getVoiceDisplayTitle(), tab.getVoiceSearchResults());
-        } else {
-            revertVoiceTitleBar(tab);
-        }
         // update nav bar state
         mNavigationBar.onStateChanged(StateListener.STATE_NORMAL);
         updateLockIconToLatest(tab);
diff --git a/src/com/android/browser/PreloadController.java b/src/com/android/browser/PreloadController.java
index 66b89f4..a7feaee 100644
--- a/src/com/android/browser/PreloadController.java
+++ b/src/com/android/browser/PreloadController.java
@@ -31,8 +31,6 @@
 import android.webkit.WebChromeClient.CustomViewCallback;
 import android.webkit.WebView;
 
-import java.util.List;
-
 public class PreloadController implements WebViewController {
 
     private static final boolean LOGD_ENABLED = false;
@@ -194,16 +192,6 @@
     }
 
     @Override
-    public void activateVoiceSearchMode(String title, List<String> results) {
-        if (LOGD_ENABLED) Log.d(LOGTAG, "activateVoiceSearchMode()");
-    }
-
-    @Override
-    public void revertVoiceSearchMode(Tab tab) {
-        if (LOGD_ENABLED) Log.d(LOGTAG, "revertVoiceSearchMode()");
-    }
-
-    @Override
     public boolean shouldShowErrorConsole() {
         if (LOGD_ENABLED) Log.d(LOGTAG, "shouldShowErrorConsole()");
         return false;
diff --git a/src/com/android/browser/SuggestionsAdapter.java b/src/com/android/browser/SuggestionsAdapter.java
index 7400b5d..9f66e3c 100644
--- a/src/com/android/browser/SuggestionsAdapter.java
+++ b/src/com/android/browser/SuggestionsAdapter.java
@@ -16,10 +16,6 @@
 
 package com.android.browser;
 
-import com.android.browser.provider.BrowserProvider2;
-import com.android.browser.provider.BrowserProvider2.OmniboxSuggestions;
-import com.android.browser.search.SearchEngine;
-
 import android.app.SearchManager;
 import android.content.Context;
 import android.database.Cursor;
@@ -38,6 +34,9 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.android.browser.provider.BrowserProvider2.OmniboxSuggestions;
+import com.android.browser.search.SearchEngine;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -52,7 +51,6 @@
     public static final int TYPE_SUGGEST_URL = 2;
     public static final int TYPE_SEARCH = 3;
     public static final int TYPE_SUGGEST = 4;
-    public static final int TYPE_VOICE_SEARCH = 5;
 
     private static final String[] COMBINED_PROJECTION = {
             OmniboxSuggestions._ID,
@@ -74,7 +72,6 @@
     final int mLinesPortrait;
     final int mLinesLandscape;
     final Object mResultsLock = new Object();
-    List<String> mVoiceResults;
     boolean mIncognitoMode;
     BrowserSettings mSettings;
 
@@ -99,11 +96,6 @@
         addSource(new CombinedCursor());
     }
 
-    void setVoiceResults(List<String> voiceResults) {
-        mVoiceResults = voiceResults;
-        notifyDataSetChanged();
-    }
-
     public void setLandscapeMode(boolean mode) {
         mLandscapeMode = mode;
         notifyDataSetChanged();
@@ -135,20 +127,11 @@
 
     @Override
     public int getCount() {
-        if (mVoiceResults != null) {
-            return mVoiceResults.size();
-        }
         return (mMixedResults == null) ? 0 : mMixedResults.getLineCount();
     }
 
     @Override
     public SuggestItem getItem(int position) {
-        if (mVoiceResults != null) {
-            SuggestItem item = new SuggestItem(mVoiceResults.get(position),
-                    null, TYPE_VOICE_SEARCH);
-            item.extra = Integer.toString(position);
-            return item;
-        }
         if (mMixedResults == null) {
             return null;
         }
@@ -192,7 +175,6 @@
         switch (item.type) {
             case TYPE_SUGGEST:
             case TYPE_SEARCH:
-            case TYPE_VOICE_SEARCH:
                 id = R.drawable.ic_search_category_suggest;
                 break;
             case TYPE_BOOKMARK:
@@ -211,8 +193,7 @@
             ic1.setImageDrawable(mContext.getResources().getDrawable(id));
         }
         ic2.setVisibility(((TYPE_SUGGEST == item.type)
-                || (TYPE_SEARCH == item.type)
-                || (TYPE_VOICE_SEARCH == item.type))
+                || (TYPE_SEARCH == item.type))
                 ? View.VISIBLE : View.GONE);
         div.setVisibility(ic2.getVisibility());
         ic2.setOnClickListener(this);
@@ -292,30 +273,25 @@
         @Override
         protected FilterResults performFiltering(CharSequence constraint) {
             FilterResults res = new FilterResults();
-            if (mVoiceResults == null) {
-                if (TextUtils.isEmpty(constraint) && !shouldProcessEmptyQuery()) {
-                    res.count = 0;
-                    res.values = null;
-                    return res;
-                }
-                startSuggestionsAsync(constraint);
-                List<SuggestItem> filterResults = new ArrayList<SuggestItem>();
-                if (constraint != null) {
-                    for (CursorSource sc : mSources) {
-                        sc.runQuery(constraint);
-                    }
-                    mixResults(filterResults);
-                }
-                synchronized (mResultsLock) {
-                    mFilterResults = filterResults;
-                }
-                SuggestionResults mixed = buildSuggestionResults();
-                res.count = mixed.getLineCount();
-                res.values = mixed;
-            } else {
-                res.count = mVoiceResults.size();
-                res.values = mVoiceResults;
+            if (TextUtils.isEmpty(constraint) && !shouldProcessEmptyQuery()) {
+                res.count = 0;
+                res.values = null;
+                return res;
             }
+            startSuggestionsAsync(constraint);
+            List<SuggestItem> filterResults = new ArrayList<SuggestItem>();
+            if (constraint != null) {
+                for (CursorSource sc : mSources) {
+                    sc.runQuery(constraint);
+                }
+                mixResults(filterResults);
+            }
+            synchronized (mResultsLock) {
+                mFilterResults = filterResults;
+            }
+            SuggestionResults mixed = buildSuggestionResults();
+            res.count = mixed.getLineCount();
+            res.values = mixed;
             return res;
         }
 
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 73f5b9e..712e30a 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -18,13 +18,11 @@
 
 import android.app.Activity;
 import android.app.AlertDialog;
-import android.app.SearchManager;
 import android.content.ContentResolver;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnCancelListener;
-import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Bitmap.CompressFormat;
 import android.graphics.BitmapFactory;
@@ -42,7 +40,6 @@
 import android.os.SystemClock;
 import android.security.KeyChain;
 import android.security.KeyChainAliasCallback;
-import android.speech.RecognizerResultsIntent;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -73,16 +70,12 @@
 import com.android.browser.TabControl.OnThumbnailUpdatedListener;
 import com.android.browser.homepages.HomeProvider;
 import com.android.browser.provider.SnapshotProvider.Snapshots;
-import com.android.common.speech.LoggingEvents;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.Map;
 import java.util.UUID;
@@ -256,234 +249,6 @@
     static final String USERAGENT = "useragent";
     static final String CLOSEFLAG = "closeOnBack";
 
-    // -------------------------------------------------------------------------
-
-    /**
-     * Private information regarding the latest voice search.  If the Tab is not
-     * in voice search mode, this will be null.
-     */
-    private VoiceSearchData mVoiceSearchData;
-    /**
-     * Remove voice search mode from this tab.
-     */
-    public void revertVoiceSearchMode() {
-        if (mVoiceSearchData != null) {
-            mVoiceSearchData = null;
-            if (mInForeground) {
-                mWebViewController.revertVoiceSearchMode(this);
-            }
-        }
-    }
-
-    /**
-     * Return whether the tab is in voice search mode.
-     */
-    public boolean isInVoiceSearchMode() {
-        return mVoiceSearchData != null;
-    }
-    /**
-     * Return true if the Tab is in voice search mode and the voice search
-     * Intent came with a String identifying that Google provided the Intent.
-     */
-    public boolean voiceSearchSourceIsGoogle() {
-        return mVoiceSearchData != null && mVoiceSearchData.mSourceIsGoogle;
-    }
-    /**
-     * Get the title to display for the current voice search page.  If the Tab
-     * is not in voice search mode, return null.
-     */
-    public String getVoiceDisplayTitle() {
-        if (mVoiceSearchData == null) return null;
-        return mVoiceSearchData.mLastVoiceSearchTitle;
-    }
-    /**
-     * Get the latest array of voice search results, to be passed to the
-     * BrowserProvider.  If the Tab is not in voice search mode, return null.
-     */
-    public ArrayList<String> getVoiceSearchResults() {
-        if (mVoiceSearchData == null) return null;
-        return mVoiceSearchData.mVoiceSearchResults;
-    }
-    /**
-     * Activate voice search mode.
-     * @param intent Intent which has the results to use, or an index into the
-     *      results when reusing the old results.
-     */
-    /* package */ void activateVoiceSearchMode(Intent intent) {
-        int index = 0;
-        ArrayList<String> results = intent.getStringArrayListExtra(
-                    RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_STRINGS);
-        if (results != null) {
-            ArrayList<String> urls = intent.getStringArrayListExtra(
-                        RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_URLS);
-            ArrayList<String> htmls = intent.getStringArrayListExtra(
-                        RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_HTML);
-            ArrayList<String> baseUrls = intent.getStringArrayListExtra(
-                        RecognizerResultsIntent
-                        .EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS);
-            // This tab is now entering voice search mode for the first time, or
-            // a new voice search was done.
-            int size = results.size();
-            if (urls == null || size != urls.size()) {
-                throw new AssertionError("improper extras passed in Intent");
-            }
-            if (htmls == null || htmls.size() != size || baseUrls == null ||
-                    (baseUrls.size() != size && baseUrls.size() != 1)) {
-                // If either of these arrays are empty/incorrectly sized, ignore
-                // them.
-                htmls = null;
-                baseUrls = null;
-            }
-            mVoiceSearchData = new VoiceSearchData(results, urls, htmls,
-                    baseUrls);
-            mVoiceSearchData.mHeaders = intent.getParcelableArrayListExtra(
-                    RecognizerResultsIntent
-                    .EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS);
-            mVoiceSearchData.mSourceIsGoogle = intent.getBooleanExtra(
-                    VoiceSearchData.SOURCE_IS_GOOGLE, false);
-            mVoiceSearchData.mVoiceSearchIntent = new Intent(intent);
-        }
-        String extraData = intent.getStringExtra(
-                SearchManager.EXTRA_DATA_KEY);
-        if (extraData != null) {
-            index = Integer.parseInt(extraData);
-            if (index >= mVoiceSearchData.mVoiceSearchResults.size()) {
-                throw new AssertionError("index must be less than "
-                        + "size of mVoiceSearchResults");
-            }
-            if (mVoiceSearchData.mSourceIsGoogle) {
-                Intent logIntent = new Intent(
-                        LoggingEvents.ACTION_LOG_EVENT);
-                logIntent.putExtra(LoggingEvents.EXTRA_EVENT,
-                        LoggingEvents.VoiceSearch.N_BEST_CHOOSE);
-                logIntent.putExtra(
-                        LoggingEvents.VoiceSearch.EXTRA_N_BEST_CHOOSE_INDEX,
-                        index);
-                mContext.sendBroadcast(logIntent);
-            }
-            if (mVoiceSearchData.mVoiceSearchIntent != null) {
-                // Copy the Intent, so that each history item will have its own
-                // Intent, with different (or none) extra data.
-                Intent latest = new Intent(mVoiceSearchData.mVoiceSearchIntent);
-                latest.putExtra(SearchManager.EXTRA_DATA_KEY, extraData);
-                mVoiceSearchData.mVoiceSearchIntent = latest;
-            }
-        }
-        mVoiceSearchData.mLastVoiceSearchTitle
-                = mVoiceSearchData.mVoiceSearchResults.get(index);
-        if (mInForeground) {
-            mWebViewController.activateVoiceSearchMode(
-                    mVoiceSearchData.mLastVoiceSearchTitle,
-                    mVoiceSearchData.mVoiceSearchResults);
-        }
-        if (mVoiceSearchData.mVoiceSearchHtmls != null) {
-            // When index was found it was already ensured that it was valid
-            String uriString = mVoiceSearchData.mVoiceSearchHtmls.get(index);
-            if (uriString != null) {
-                Uri dataUri = Uri.parse(uriString);
-                if (RecognizerResultsIntent.URI_SCHEME_INLINE.equals(
-                        dataUri.getScheme())) {
-                    // If there is only one base URL, use it.  If there are
-                    // more, there will be one for each index, so use the base
-                    // URL corresponding to the index.
-                    String baseUrl = mVoiceSearchData.mVoiceSearchBaseUrls.get(
-                            mVoiceSearchData.mVoiceSearchBaseUrls.size() > 1 ?
-                            index : 0);
-                    mVoiceSearchData.mLastVoiceSearchUrl = baseUrl;
-                    mMainView.loadDataWithBaseURL(baseUrl,
-                            uriString.substring(RecognizerResultsIntent
-                            .URI_SCHEME_INLINE.length() + 1), "text/html",
-                            "utf-8", baseUrl);
-                    return;
-                }
-            }
-        }
-        mVoiceSearchData.mLastVoiceSearchUrl
-                = mVoiceSearchData.mVoiceSearchUrls.get(index);
-        if (null == mVoiceSearchData.mLastVoiceSearchUrl) {
-            mVoiceSearchData.mLastVoiceSearchUrl = UrlUtils.smartUrlFilter(
-                    mVoiceSearchData.mLastVoiceSearchTitle);
-        }
-        Map<String, String> headers = null;
-        if (mVoiceSearchData.mHeaders != null) {
-            int bundleIndex = mVoiceSearchData.mHeaders.size() == 1 ? 0
-                    : index;
-            Bundle bundle = mVoiceSearchData.mHeaders.get(bundleIndex);
-            if (bundle != null && !bundle.isEmpty()) {
-                Iterator<String> iter = bundle.keySet().iterator();
-                headers = new HashMap<String, String>();
-                while (iter.hasNext()) {
-                    String key = iter.next();
-                    headers.put(key, bundle.getString(key));
-                }
-            }
-        }
-        mMainView.loadUrl(mVoiceSearchData.mLastVoiceSearchUrl, headers);
-    }
-    /* package */ static class VoiceSearchData {
-        public VoiceSearchData(ArrayList<String> results,
-                ArrayList<String> urls, ArrayList<String> htmls,
-                ArrayList<String> baseUrls) {
-            mVoiceSearchResults = results;
-            mVoiceSearchUrls = urls;
-            mVoiceSearchHtmls = htmls;
-            mVoiceSearchBaseUrls = baseUrls;
-        }
-        /*
-         * ArrayList of suggestions to be displayed when opening the
-         * SearchManager
-         */
-        public ArrayList<String> mVoiceSearchResults;
-        /*
-         * ArrayList of urls, associated with the suggestions in
-         * mVoiceSearchResults.
-         */
-        public ArrayList<String> mVoiceSearchUrls;
-        /*
-         * ArrayList holding content to load for each item in
-         * mVoiceSearchResults.
-         */
-        public ArrayList<String> mVoiceSearchHtmls;
-        /*
-         * ArrayList holding base urls for the items in mVoiceSearchResults.
-         * If non null, this will either have the same size as
-         * mVoiceSearchResults or have a size of 1, in which case all will use
-         * the same base url
-         */
-        public ArrayList<String> mVoiceSearchBaseUrls;
-        /*
-         * The last url provided by voice search.  Used for comparison to see if
-         * we are going to a page by some method besides voice search.
-         */
-        public String mLastVoiceSearchUrl;
-        /**
-         * The last title used for voice search.  Needed to update the title bar
-         * when switching tabs.
-         */
-        public String mLastVoiceSearchTitle;
-        /**
-         * Whether the Intent which turned on voice search mode contained the
-         * String signifying that Google was the source.
-         */
-        public boolean mSourceIsGoogle;
-        /**
-         * List of headers to be passed into the WebView containing location
-         * information
-         */
-        public ArrayList<Bundle> mHeaders;
-        /**
-         * The Intent used to invoke voice search.  Placed on the
-         * WebHistoryItem so that when coming back to a previous voice search
-         * page we can again activate voice search.
-         */
-        public Intent mVoiceSearchIntent;
-        /**
-         * String used to identify Google as the source of voice search.
-         */
-        public static String SOURCE_IS_GOOGLE
-                = "android.speech.extras.SOURCE_IS_GOOGLE";
-    }
-
     // Container class for the next error dialog that needs to be displayed
     private class ErrorDialog {
         public final int mTitle;
@@ -573,16 +338,6 @@
             mCurrentState = new PageState(mContext,
                     view.isPrivateBrowsingEnabled(), url, favicon);
             mLoadStartTime = SystemClock.uptimeMillis();
-            if (mVoiceSearchData != null
-                    && providersDiffer(url, mVoiceSearchData.mLastVoiceSearchUrl)) {
-                if (mVoiceSearchData.mSourceIsGoogle) {
-                    Intent i = new Intent(LoggingEvents.ACTION_LOG_EVENT);
-                    i.putExtra(LoggingEvents.EXTRA_FLUSH, true);
-                    mContext.sendBroadcast(i);
-                }
-                revertVoiceSearchMode();
-            }
-
 
             // If we start a touch icon load and then load a new page, we don't
             // want to cancel the current touch icon loader. But, we do want to
@@ -626,18 +381,6 @@
         // return true if want to hijack the url to let another app to handle it
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, String url) {
-            if (voiceSearchSourceIsGoogle()) {
-                // This method is called when the user clicks on a link.
-                // VoiceSearchMode is turned off when the user leaves the
-                // Google results page, so at this point the user must be on
-                // that page.  If the user clicked a link on that page, assume
-                // that the voice search was effective, and broadcast an Intent
-                // so a receiver can take note of that fact.
-                Intent logIntent = new Intent(LoggingEvents.ACTION_LOG_EVENT);
-                logIntent.putExtra(LoggingEvents.EXTRA_EVENT,
-                        LoggingEvents.VoiceSearch.RESULT_CLICKED);
-                mContext.sendBroadcast(logIntent);
-            }
             if (mInForeground) {
                 return mWebViewController.shouldOverrideUrlLoading(Tab.this,
                         view, url);
@@ -1420,9 +1163,6 @@
         mWebBackForwardListClient = new WebBackForwardListClient() {
             @Override
             public void onNewHistoryItem(WebHistoryItem item) {
-                if (isInVoiceSearchMode()) {
-                    item.setCustomData(mVoiceSearchData.mVoiceSearchIntent);
-                }
                 if (mClearHistoryUrlPattern != null) {
                     boolean match =
                         mClearHistoryUrlPattern.matcher(item.getOriginalUrl()).matches();
@@ -1439,13 +1179,6 @@
                     mClearHistoryUrlPattern = null;
                 }
             }
-            @Override
-            public void onIndexChanged(WebHistoryItem item, int index) {
-                Object data = item.getCustomData();
-                if (data != null && data instanceof Intent) {
-                    activateVoiceSearchMode((Intent) data);
-                }
-            }
         };
 
         mCaptureWidth = mContext.getResources().getDimensionPixelSize(
diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java
index 034f136..aeab746 100644
--- a/src/com/android/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -93,10 +93,6 @@
 
     public boolean isCustomViewShowing();
 
-    public void showVoiceTitleBar(String title, List<String> results);
-
-    public void revertVoiceTitleBar(Tab tab);
-
     public boolean onPrepareOptionsMenu(Menu menu);
 
     public void updateMenuState(Tab tab, Menu menu);
diff --git a/src/com/android/browser/UiController.java b/src/com/android/browser/UiController.java
index 46c0432..5be2343 100644
--- a/src/com/android/browser/UiController.java
+++ b/src/com/android/browser/UiController.java
@@ -67,12 +67,6 @@
 
     void bookmarkCurrentPage();
 
-    void startVoiceSearch();
-
-    boolean supportsVoiceSearch();
-
-    void showVoiceSearchResults(String title);
-
     void editUrl();
 
     void handleNewIntent(Intent intent);
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 1ba26fe..02bba3c 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -55,7 +55,6 @@
 
     static final String TYPED = "browser-type";
     static final String SUGGESTED = "browser-suggest";
-    static final String VOICE = "voice-search";
 
     static final int POST_DELAY = 100;
 
@@ -195,10 +194,6 @@
         return mState;
     }
 
-    void setVoiceResults(List<String> voiceResults) {
-        mAdapter.setVoiceResults(voiceResults);
-    }
-
     @Override
     protected void onConfigurationChanged(Configuration config) {
         super.onConfigurationChanged(config);
@@ -298,8 +293,7 @@
 
     @Override
     public void onSelect(String url, int type, String extra) {
-        finishInput(url, extra, (type == SuggestionsAdapter.TYPE_VOICE_SEARCH)
-                ? VOICE : SUGGESTED);
+        finishInput(url, extra, SUGGESTED);
     }
 
     @Override
diff --git a/src/com/android/browser/WebViewController.java b/src/com/android/browser/WebViewController.java
index 235fe97..fef6964 100644
--- a/src/com/android/browser/WebViewController.java
+++ b/src/com/android/browser/WebViewController.java
@@ -89,10 +89,6 @@
 
     void onUserCanceledSsl(Tab tab);
 
-    void activateVoiceSearchMode(String title, List<String> results);
-
-    void revertVoiceSearchMode(Tab tab);
-
     boolean shouldShowErrorConsole();
 
     void onUpdatedSecurityState(Tab tab);
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index 8e874e9..3b8245a 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -156,11 +156,6 @@
             return;
         }
         mTabBar.onSetActiveTab(tab);
-        if (tab.isInVoiceSearchMode()) {
-            showVoiceTitleBar(tab.getVoiceDisplayTitle(), tab.getVoiceSearchResults());
-        } else {
-            revertVoiceTitleBar(tab);
-        }
         updateLockIconToLatest(tab);
         mTitleBar.setSkipTitleBarAnimations(false);
     }
diff --git a/src/com/android/browser/provider/BrowserProvider.java b/src/com/android/browser/provider/BrowserProvider.java
index b55b84a..744032c 100644
--- a/src/com/android/browser/provider/BrowserProvider.java
+++ b/src/com/android/browser/provider/BrowserProvider.java
@@ -16,10 +16,6 @@
 
 package com.android.browser.provider;
 
-import com.android.browser.BrowserSettings;
-import com.android.browser.R;
-import com.android.browser.search.SearchEngine;
-
 import android.app.SearchManager;
 import android.app.backup.BackupManager;
 import android.content.ContentProvider;
@@ -42,14 +38,16 @@
 import android.preference.PreferenceManager;
 import android.provider.Browser;
 import android.provider.Browser.BookmarkColumns;
-import android.speech.RecognizerResultsIntent;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Patterns;
 
+import com.android.browser.BrowserSettings;
+import com.android.browser.R;
+import com.android.browser.search.SearchEngine;
+
 import java.io.File;
 import java.io.FilenameFilter;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -751,105 +749,6 @@
 
     }
 
-    private static class ResultsCursor extends AbstractCursor {
-        // Array indices for RESULTS_COLUMNS
-        private static final int RESULT_ACTION_ID = 1;
-        private static final int RESULT_DATA_ID = 2;
-        private static final int RESULT_TEXT_ID = 3;
-        private static final int RESULT_ICON_ID = 4;
-        private static final int RESULT_EXTRA_ID = 5;
-
-        private static final String[] RESULTS_COLUMNS = new String[] {
-                "_id",
-                SearchManager.SUGGEST_COLUMN_INTENT_ACTION,
-                SearchManager.SUGGEST_COLUMN_INTENT_DATA,
-                SearchManager.SUGGEST_COLUMN_TEXT_1,
-                SearchManager.SUGGEST_COLUMN_ICON_1,
-                SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA
-        };
-        private final ArrayList<String> mResults;
-        public ResultsCursor(ArrayList<String> results) {
-            mResults = results;
-        }
-        @Override
-        public int getCount() { return mResults.size(); }
-
-        @Override
-        public String[] getColumnNames() {
-            return RESULTS_COLUMNS;
-        }
-
-        @Override
-        public String getString(int column) {
-            switch (column) {
-                case RESULT_ACTION_ID:
-                    return RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS;
-                case RESULT_TEXT_ID:
-                // The data is used when the phone is in landscape mode.  We
-                // still want to show the result string.
-                case RESULT_DATA_ID:
-                    return mResults.get(mPos);
-                case RESULT_EXTRA_ID:
-                    // The Intent's extra data will store the index into
-                    // mResults so the BrowserActivity will know which result to
-                    // use.
-                    return Integer.toString(mPos);
-                case RESULT_ICON_ID:
-                    return Integer.valueOf(R.drawable.magnifying_glass)
-                            .toString();
-                default:
-                    return null;
-            }
-        }
-        @Override
-        public short getShort(int column) {
-            throw new UnsupportedOperationException();
-        }
-        @Override
-        public int getInt(int column) {
-            throw new UnsupportedOperationException();
-        }
-        @Override
-        public long getLong(int column) {
-            if ((mPos != -1) && column == 0) {
-                return mPos;        // use row# as the _id
-            }
-            throw new UnsupportedOperationException();
-        }
-        @Override
-        public float getFloat(int column) {
-            throw new UnsupportedOperationException();
-        }
-        @Override
-        public double getDouble(int column) {
-            throw new UnsupportedOperationException();
-        }
-        @Override
-        public boolean isNull(int column) {
-            throw new UnsupportedOperationException();
-        }
-    }
-
-    /** Contains custom suggestions results set by the UI */
-    private ResultsCursor mResultsCursor;
-    /** Locks access to {@link #mResultsCursor} */
-    private Object mResultsCursorLock = new Object();
-
-    /**
-     * Provide a set of results to be returned to query, intended to be used
-     * by the SearchDialog when the BrowserActivity is in voice search mode.
-     * @param results Strings to display in the dropdown from the SearchDialog
-     */
-    public /* package */ void setQueryResults(ArrayList<String> results) {
-        synchronized (mResultsCursorLock) {
-            if (results == null) {
-                mResultsCursor = null;
-            } else {
-                mResultsCursor = new ResultsCursor(results);
-            }
-        }
-    }
-
     @Override
     public Cursor query(Uri url, String[] projectionIn, String selection,
             String[] selectionArgs, String sortOrder)
@@ -859,15 +758,6 @@
             throw new IllegalArgumentException("Unknown URL");
         }
 
-        // If results for the suggestion are already ready just return them directly
-        synchronized (mResultsCursorLock) {
-            if (match == URI_MATCH_SUGGEST && mResultsCursor != null) {
-                Cursor results = mResultsCursor;
-                mResultsCursor = null;
-                return results;
-            }
-        }
-
         if (match == URI_MATCH_SUGGEST || match == URI_MATCH_BOOKMARKS_SUGGEST) {
             // Handle suggestions
             return doSuggestQuery(selection, selectionArgs, match == URI_MATCH_BOOKMARKS_SUGGEST);
diff --git a/src/com/android/browser/search/DefaultSearchEngine.java b/src/com/android/browser/search/DefaultSearchEngine.java
index a575404..e4e0e96 100644
--- a/src/com/android/browser/search/DefaultSearchEngine.java
+++ b/src/com/android/browser/search/DefaultSearchEngine.java
@@ -118,10 +118,6 @@
     public void close() {
     }
 
-    public boolean supportsVoiceSearch() {
-        return getName().equals(SearchEngine.GOOGLE);
-    }
-
     @Override
     public String toString() {
         return "ActivitySearchEngine{" + mSearchable + "}";
diff --git a/src/com/android/browser/search/OpenSearchSearchEngine.java b/src/com/android/browser/search/OpenSearchSearchEngine.java
index 50585c0..e600aa9 100644
--- a/src/com/android/browser/search/OpenSearchSearchEngine.java
+++ b/src/com/android/browser/search/OpenSearchSearchEngine.java
@@ -195,10 +195,6 @@
         mHttpClient.close();
     }
 
-    public boolean supportsVoiceSearch() {
-        return getName().equals(SearchEngine.GOOGLE);
-    }
-
     private boolean isNetworkConnected(Context context) {
         NetworkInfo networkInfo = getActiveNetworkInfo(context);
         return networkInfo != null && networkInfo.isConnected();
diff --git a/src/com/android/browser/search/SearchEngine.java b/src/com/android/browser/search/SearchEngine.java
index 3643005..8f2d58d 100644
--- a/src/com/android/browser/search/SearchEngine.java
+++ b/src/com/android/browser/search/SearchEngine.java
@@ -58,11 +58,6 @@
     public void close();
 
     /**
-     * Checks whether this search engine supports voice search.
-     */
-    public boolean supportsVoiceSearch();
-
-    /**
      * Checks whether this search engine should be sent zero char query.
      */
     public boolean wantsEmptyQuery();