Switch the phone to use the omnibox instead of qsb

 Initial changes, needs more work

Change-Id: Ic9bbe4eb8e95212baa7c40813217f01d9efdf286
diff --git a/src/com/android/browser/TitleBarBase.java b/src/com/android/browser/TitleBarBase.java
index 1e944f1..f62e0e4 100644
--- a/src/com/android/browser/TitleBarBase.java
+++ b/src/com/android/browser/TitleBarBase.java
@@ -16,13 +16,19 @@
 
 package com.android.browser;
 
+import com.android.browser.UrlInputView.UrlInputListener;
+
+import android.app.SearchManager;
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.LayerDrawable;
 import android.graphics.drawable.PaintDrawable;
+import android.os.Bundle;
+import android.speech.RecognizerResultsIntent;
 import android.view.Gravity;
 import android.view.View;
 import android.widget.AbsoluteLayout;
@@ -32,15 +38,21 @@
 /**
  * Base class for a title bar used by the browser.
  */
-public class TitleBarBase extends LinearLayout {
+public class TitleBarBase extends LinearLayout implements UrlInputListener {
     // These need to be set by the subclass.
     protected ImageView mFavicon;
     protected ImageView mLockIcon;
 
     protected Drawable mGenericFavicon;
+    protected UiController mUiController;
+    protected BaseUi mBaseUi;
+    protected UrlInputView mUrlInput;
+    protected boolean mInVoiceMode;
 
-    public TitleBarBase(Context context) {
+    public TitleBarBase(Context context, UiController controller, BaseUi ui) {
         super(context, null);
+        mUiController = controller;
+        mBaseUi = ui;
         mGenericFavicon = context.getResources().getDrawable(
                 R.drawable.app_web_browser_sm);
     }
@@ -98,4 +110,62 @@
         }
     }
 
+    // UrlInputListener implementation
+
+    /**
+     * callback from suggestion dropdown
+     * user selected a suggestion
+     */
+    @Override
+    public void onAction(String text, String extra, String source) {
+        mUiController.getCurrentTopWebView().requestFocus();
+        mBaseUi.hideTitleBar();
+        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;
+        }
+        i.setAction(action);
+        i.putExtra(SearchManager.QUERY, text);
+        if (extra != null) {
+            i.putExtra(SearchManager.EXTRA_DATA_KEY, extra);
+        }
+        if (source != null) {
+            Bundle appData = new Bundle();
+            appData.putString(com.android.common.Search.SOURCE, source);
+            i.putExtra(SearchManager.APP_DATA, appData);
+        }
+        mUiController.handleNewIntent(i);
+        setDisplayTitle(text);
+    }
+
+    @Override
+    public void onDismiss() {
+        final Tab currentTab = mBaseUi.getActiveTab();
+        mBaseUi.hideTitleBar();
+        post(new Runnable() {
+            public void run() {
+                clearFocus();
+                if ((currentTab != null) && !mInVoiceMode) {
+                    setDisplayTitle(currentTab.getUrl());
+                }
+            }
+        });
+    }
+
+    /**
+     * callback from the suggestion dropdown
+     * copy text to input field and stay in edit mode
+     */
+    @Override
+    public void onCopySuggestion(String text) {
+        mUrlInput.setText(text, true);
+        if (text != null) {
+            mUrlInput.setSelection(text.length());
+        }
+    }
+
 }