Enable voice search in omnibox

  Bug: 6601348

Bring back voice search. Also fixes focus bug for fixed titlebar.

Change-Id: I83c8ad96957b62c23ad0bbb35685712687d11213
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index 426174b..79c8de6 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -32,10 +32,9 @@
 import android.widget.ImageView;
 
 import com.android.browser.UI.ComboViews;
+import com.android.browser.UrlInputView.StateListener;
 
-import java.util.List;
-
-public class NavigationBarTablet extends NavigationBarBase {
+public class NavigationBarTablet extends NavigationBarBase implements StateListener {
 
     private Drawable mStopDrawable;
     private Drawable mReloadDrawable;
@@ -51,6 +50,7 @@
     private ImageView mStopButton;
     private View mAllButton;
     private View mClearButton;
+    private View mVoiceButton;
     private View mNavButtons;
     private Drawable mFocusDrawable;
     private Drawable mUnfocusDrawable;
@@ -99,6 +99,7 @@
         mStopButton = (ImageView) findViewById(R.id.stop);
         mSearchButton = (ImageView) findViewById(R.id.search);
         mClearButton = findViewById(R.id.clear);
+        mVoiceButton = findViewById(R.id.voice);
         mUrlContainer = findViewById(R.id.urlbar_focused);
         mBackButton.setOnClickListener(this);
         mForwardButton.setOnClickListener(this);
@@ -107,7 +108,9 @@
         mStopButton.setOnClickListener(this);
         mSearchButton.setOnClickListener(this);
         mClearButton.setOnClickListener(this);
+        mVoiceButton.setOnClickListener(this);
         mUrlInput.setContainer(mUrlContainer);
+        mUrlInput.setStateListener(this);
     }
 
     public void onConfigurationChanged(Configuration config) {
@@ -176,6 +179,8 @@
             stopOrRefresh();
         } else if (mClearButton == v) {
             clearOrClose();
+        } else if (mVoiceButton == v) {
+            mUiController.startVoiceRecognizer();
         } else {
             super.onClick(v);
         }
@@ -217,14 +222,12 @@
             }
             mSearchButton.setVisibility(View.GONE);
             mStar.setVisibility(View.GONE);
-            mClearButton.setVisibility(View.VISIBLE);
             mUrlIcon.setImageResource(R.drawable.ic_search_holo_dark);
         } else {
             if (mHideNavButtons) {
                 showNavButtons();
             }
             showHideStar(mUiController.getCurrentTab());
-            mClearButton.setVisibility(View.GONE);
             if (mTitleBar.useQuickControls()) {
                 mSearchButton.setVisibility(View.GONE);
             } else {
@@ -289,6 +292,7 @@
             mAnimation.cancel();
         }
         mNavButtons.setVisibility(View.VISIBLE);
+        mNavButtons.setTranslationX(0);
         if (!mBaseUi.blockFocusAnimations()) {
             int awidth = mNavButtons.getMeasuredWidth();
             Animator anim1 = ObjectAnimator.ofFloat(mNavButtons,
@@ -316,4 +320,23 @@
         }
     }
 
+    @Override
+    public void onStateChanged(int state) {
+        switch(state) {
+        case STATE_NORMAL:
+            mClearButton.setVisibility(View.GONE);
+            mVoiceButton.setVisibility(View.GONE);
+
+            break;
+        case STATE_HIGHLIGHTED:
+            mClearButton.setVisibility(View.GONE);
+            mVoiceButton.setVisibility(View.VISIBLE);
+            break;
+        case STATE_EDITED:
+            mClearButton.setVisibility(View.VISIBLE);
+            mVoiceButton.setVisibility(View.GONE);
+            break;
+        }
+    }
+
 }