diff options
author | Mathew Inwood <mathewi@google.com> | 2011-09-02 14:16:25 +0100 |
---|---|---|
committer | Mathew Inwood <mathewi@google.com> | 2011-09-02 14:16:25 +0100 |
commit | a829d55e8af65d08d998b8166e42420dda8cf2ff (patch) | |
tree | 43828ec915d0c8ed93f4555c4ccc27e7b95e5a0f /src/com/android/browser/PreloadedTabControl.java | |
parent | e09305e4ad0430571efb8ae880762204ddeaeb33 (diff) | |
download | android_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.java | 18 |
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; |