summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/PreloadedTabControl.java
diff options
context:
space:
mode:
authorMathew Inwood <mathewi@google.com>2011-09-02 14:16:25 +0100
committerMathew Inwood <mathewi@google.com>2011-09-02 14:16:25 +0100
commita829d55e8af65d08d998b8166e42420dda8cf2ff (patch)
tree43828ec915d0c8ed93f4555c4ccc27e7b95e5a0f /src/com/android/browser/PreloadedTabControl.java
parente09305e4ad0430571efb8ae880762204ddeaeb33 (diff)
downloadandroid_packages_apps_Gello-a829d55e8af65d08d998b8166e42420dda8cf2ff.tar.gz
android_packages_apps_Gello-a829d55e8af65d08d998b8166e42420dda8cf2ff.tar.bz2
android_packages_apps_Gello-a829d55e8af65d08d998b8166e42420dda8cf2ff.zip
Clear back stack after submitted query into preloaded page.
This ensures that the blank searchbox page does not appear in the back stack. Bug: 5252128 Change-Id: I93e2e7f7c1c69e6e0e93b38acf1c7c9dc887ec19
Diffstat (limited to 'src/com/android/browser/PreloadedTabControl.java')
-rw-r--r--src/com/android/browser/PreloadedTabControl.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/com/android/browser/PreloadedTabControl.java b/src/com/android/browser/PreloadedTabControl.java
index ed066f27..4ffe6b47 100644
--- a/src/com/android/browser/PreloadedTabControl.java
+++ b/src/com/android/browser/PreloadedTabControl.java
@@ -21,6 +21,7 @@ import android.util.Log;
import android.webkit.SearchBox;
import java.util.Map;
+import java.util.regex.Pattern;
/**
* Class to manage the controlling of preloaded tab.
@@ -74,6 +75,7 @@ public class PreloadedTabControl {
}
maybeSetQuery(query, sb);
if (LOGD_ENABLED) Log.d(LOGTAG, "Submitting query " + query);
+ final String currentUrl = mTab.getUrl();
sb.onsubmit(new SearchBox.SearchBoxListener() {
@Override
public void onSubmitComplete(boolean called) {
@@ -83,7 +85,21 @@ public class PreloadedTabControl {
if (LOGD_ENABLED) Log.d(LOGTAG, "Query not submitted; falling back");
loadUrl(fallbackUrl, fallbackHeaders);
// make sure that the failed, preloaded URL is cleared from the back stack
- mTab.clearBackStackWhenItemAdded(fallbackUrl);
+ mTab.clearBackStackWhenItemAdded(Pattern.compile(
+ "^" + Pattern.quote(fallbackUrl) + "$"));
+ } else {
+ // ignore the next fragment change, to avoid leaving a blank page in the browser
+ // after the query has been submitted.
+ String currentWithoutFragment = Uri.parse(currentUrl)
+ .buildUpon()
+ .fragment(null)
+ .toString();
+ mTab.clearBackStackWhenItemAdded(
+ Pattern.compile(
+ "^" +
+ Pattern.quote(currentWithoutFragment) +
+ "(\\#.*)?" +
+ "$"));
}
}});
return true;