Merge "Special case searching in incognito mode" into honeycomb
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 0214843..02c9f4c 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -18,11 +18,15 @@
import com.android.browser.SuggestionsAdapter.CompletionListener;
import com.android.browser.SuggestionsAdapter.SuggestItem;
+import com.android.browser.search.SearchEngine;
+import com.android.browser.search.SearchEngineInfo;
+import com.android.browser.search.SearchEngines;
import android.content.Context;
import android.content.res.Configuration;
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.util.Patterns;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnFocusChangeListener;
@@ -55,6 +59,7 @@
private View mContainer;
private boolean mLandscape;
private boolean mInVoiceMode;
+ private boolean mIncognitoMode;
public UrlInputView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
@@ -174,10 +179,33 @@
if (TextUtils.isEmpty(url)) {
mListener.onDismiss();
} else {
+ if (mIncognitoMode && isSearch(url)) {
+ // To prevent logging, intercept this request
+ // TODO: This is a quick hack, refactor this
+ SearchEngine searchEngine = BrowserSettings.getInstance()
+ .getSearchEngine();
+ if (searchEngine == null) return;
+ SearchEngineInfo engineInfo = SearchEngines
+ .getSearchEngineInfo(mContext, searchEngine.getName());
+ if (engineInfo == null) return;
+ url = engineInfo.getSearchUriForQuery(url);
+ // mLister.onAction can take it from here without logging
+ }
mListener.onAction(url, extra, source);
}
}
+ boolean isSearch(String inUrl) {
+ String url = UrlUtils.fixUrl(inUrl).trim();
+ if (TextUtils.isEmpty(url)) return false;
+
+ if (Patterns.WEB_URL.matcher(url).matches()
+ || UrlUtils.ACCEPTED_URI_SCHEMA.matcher(url).matches()) {
+ return false;
+ }
+ return true;
+ }
+
// Completion Listener
@Override
@@ -224,7 +252,8 @@
}
public void setIncognitoMode(boolean incognito) {
- mAdapter.setIncognitoMode(incognito);
+ mIncognitoMode = incognito;
+ mAdapter.setIncognitoMode(mIncognitoMode);
}
}
diff --git a/src/com/android/browser/search/SearchEngines.java b/src/com/android/browser/search/SearchEngines.java
index 62690e7..a6ba3de 100644
--- a/src/com/android/browser/search/SearchEngines.java
+++ b/src/com/android/browser/search/SearchEngines.java
@@ -61,7 +61,7 @@
return new OpenSearchSearchEngine(context, searchEngineInfo);
}
- private static SearchEngineInfo getSearchEngineInfo(Context context, String name) {
+ public static SearchEngineInfo getSearchEngineInfo(Context context, String name) {
try {
return new SearchEngineInfo(context, name);
} catch (IllegalArgumentException exception) {