summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/TitleBarBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/TitleBarBase.java')
-rw-r--r--src/com/android/browser/TitleBarBase.java74
1 files changed, 72 insertions, 2 deletions
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 @@ import android.widget.LinearLayout;
/**
* 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 @@ public class TitleBarBase extends LinearLayout {
}
}
+ // 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());
+ }
+ }
+
}