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
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 3b283cc..8c9dc02 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -84,6 +84,7 @@
import java.util.LinkedList;
import java.util.Map;
import java.util.Vector;
+import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;
/**
@@ -175,7 +176,7 @@
/**
* See {@link #clearBackStackWhenItemAdded(String)}.
*/
- private String mClearHistoryMatchUrl;
+ private Pattern mClearHistoryUrlPattern;
private static synchronized Bitmap getDefaultFavicon(Context context) {
if (sDefaultFavicon == null) {
@@ -1391,17 +1392,20 @@
if (isInVoiceSearchMode()) {
item.setCustomData(mVoiceSearchData.mVoiceSearchIntent);
}
- if (mClearHistoryMatchUrl != null) {
+ if (mClearHistoryUrlPattern != null) {
+ boolean match =
+ mClearHistoryUrlPattern.matcher(item.getOriginalUrl()).matches();
if (LOGD_ENABLED) {
- Log.d(LOGTAG, "onNewHistoryItem:\n\t" + item.getUrl() + "\n\t"
- + mClearHistoryMatchUrl);
+ Log.d(LOGTAG, "onNewHistoryItem: match=" + match + "\n\t"
+ + item.getUrl() + "\n\t"
+ + mClearHistoryUrlPattern);
}
- if (TextUtils.equals(item.getOriginalUrl(), mClearHistoryMatchUrl)) {
+ if (match) {
if (mMainView != null) {
mMainView.clearHistory();
}
}
- mClearHistoryMatchUrl = null;
+ mClearHistoryUrlPattern = null;
}
}
@Override
@@ -2106,8 +2110,8 @@
* This is used to ensure that preloaded URLs that are not subsequently seen by the user do
* not appear in the back stack.
*/
- public void clearBackStackWhenItemAdded(String urlToMatch) {
- mClearHistoryMatchUrl = urlToMatch;
+ public void clearBackStackWhenItemAdded(Pattern urlPattern) {
+ mClearHistoryUrlPattern = urlPattern;
}
protected void persistThumbnail() {