summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/browser/BrowserActivity.java5
-rw-r--r--src/com/android/browser/TabControl.java10
2 files changed, 8 insertions, 7 deletions
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 1c136b38a..1f969afaf 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -460,7 +460,10 @@ public class BrowserActivity extends Activity
final String appId = intent
.getStringExtra(Browser.EXTRA_APPLICATION_ID);
- if ((Intent.ACTION_VIEW.equals(action) || activateVoiceSearch)
+ 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))
&& !getPackageName().equals(appId)
&& (flags & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
Tab appTab = mTabControl.getTabFromId(appId);
diff --git a/src/com/android/browser/TabControl.java b/src/com/android/browser/TabControl.java
index de32b033d..4be777d62 100644
--- a/src/com/android/browser/TabControl.java
+++ b/src/com/android/browser/TabControl.java
@@ -497,12 +497,10 @@ class TabControl {
final String url = urlData.mUrl;
final WebView w = t.getWebView();
if (w != null) {
- if (urlData.mVoiceIntent != null) {
- // In the case of a voice search, we do not want to destroy the
- // back forward list, so that we can go back to the prior search
- return true;
- }
- if (url != null && url.equals(t.getOriginalUrl())) {
+ if (url != null && url.equals(t.getOriginalUrl())
+ // Treat a voice intent as though it is a different URL,
+ // since it most likely is.
+ && urlData.mVoiceIntent == null) {
// The original url matches the current url. Just go back to the
// first history item so we can load it faster than if we
// rebuilt the WebView.