Browser: add to support search engine preset

1. Set Baidu search engine as the default search engine.
2. Add 139 search engine for carrier.

CRs-fixed: 507955

Change-Id: Idccc86f2d9ac439dcfff5f65e853bb4618fed361
diff --git a/res/values-zh-rCN/donottranslate-search_engines.xml b/res/values-zh-rCN/donottranslate-search_engines.xml
index c38055c..b85a2b5 100644
--- a/res/values-zh-rCN/donottranslate-search_engines.xml
+++ b/res/values-zh-rCN/donottranslate-search_engines.xml
@@ -23,8 +23,10 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
   <string-array name="search_engines" translatable="false">
     <item>google</item>
-    <item>baidu</item>
+    <item>baidu_cn</item>
+    <item>cmcc_cn</item>
     <item>yahoo_cn</item>
     <item>bing_zh_CN</item>
   </string-array>
+  <string name="default_search_engine_value">baidu_cn</string>
 </resources>
diff --git a/res/values/all_search_engines.xml b/res/values/all_search_engines.xml
index bbba0ee..4fee10a 100644
--- a/res/values/all_search_engines.xml
+++ b/res/values/all_search_engines.xml
@@ -116,7 +116,7 @@
     <item>ISO-8859-1</item>
     <item></item>
   </string-array>
-  <string-array name="baidu" translatable="false">
+  <string-array name="baidu_cn" translatable="false">
     <item>&#x767e;&#x5ea6;</item>
     <item>baidu.com</item>
     <item>http://www.baidu.com/favicon.ico</item>
@@ -124,6 +124,14 @@
     <item>GB2312</item>
     <item></item>
   </string-array>
+  <string-array name="baidu" translatable="false">
+    <item>Baidu</item>
+    <item>baidu.com</item>
+    <item>http://www.baidu.com/favicon.ico</item>
+    <item>http://www.baidu.com/s?wd={searchTerms}</item>
+    <item>UTF-8</item>
+    <item></item>
+  </string-array>
   <string-array name="yahoo_ch" translatable="false">
     <item>Yahoo! Suche</item>
     <item>ch.yahoo.com</item>
@@ -140,6 +148,23 @@
     <item>UTF-8</item>
     <item>http://api.bing.com/osjson.aspx?query={searchTerms}&amp;language={language}</item>
   </string-array>
+  <string-array name="cmcc_cn" translatable="false">
+    <item>&#x79FB;&#x52A8;&#x641C;&#x7D22;</item>
+    <item>s.139.com</item>
+    <item>http://s.139.com/favicon.ico</item>
+    <item>http://s.139.com/search.do?q={searchTerms}&amp;category=downloadable|web|browseable&amp;tid=2123,2124,2125,2126&amp;fr=portalcustom2</item>
+    <item>GB2312</item>
+    <item></item>
+  </string-array>
+
+  <string-array name="cmcc" translatable="false">
+    <item>139 Search</item>
+    <item>s.139.com</item>
+    <item>http://s.139.com/favicon.ico</item>
+    <item>http://s.139.com/search.do?q={searchTerms}&amp;category=downloadable|web|browseable&amp;tid=2123,2124,2125,2126&amp;fr=portalcustom2</item>
+    <item>UTF-8</item>
+    <item></item>
+  </string-array>
   <string-array name="yahoo_cn" translatable="false">
     <item>&#x4e2d;&#x56fd;&#x96c5;&#x864e;</item>
     <item>cn.yahoo.com</item>
diff --git a/res/values/donottranslate-search_engines.xml b/res/values/donottranslate-search_engines.xml
index c6ed9ca..081efc0 100644
--- a/res/values/donottranslate-search_engines.xml
+++ b/res/values/donottranslate-search_engines.xml
@@ -23,7 +23,10 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
   <string-array name="search_engines" translatable="false">
     <item>google</item>
+    <item>baidu</item>
+    <item>cmcc</item>
     <item>yahoo</item>
     <item>bing</item>
   </string-array>
+  <string name="default_search_engine_value">baidu</string>
 </resources>
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 17e2001..0b415be 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -757,7 +757,11 @@
     // -----------------------------
 
     public String getSearchEngineName() {
-        return mPrefs.getString(PREF_SEARCH_ENGINE, SearchEngine.GOOGLE);
+        String defaultSearchEngineValue = mContext.getString(R.string.default_search_engine_value);
+        if (defaultSearchEngineValue == null) {
+            defaultSearchEngineValue = SearchEngine.GOOGLE;
+        }
+        return mPrefs.getString(PREF_SEARCH_ENGINE, defaultSearchEngineValue);
     }
 
     public boolean allowAppTabs() {
diff --git a/src/com/android/browser/search/SearchEnginePreference.java b/src/com/android/browser/search/SearchEnginePreference.java
index 18ce495..62ce97b 100644
--- a/src/com/android/browser/search/SearchEnginePreference.java
+++ b/src/com/android/browser/search/SearchEnginePreference.java
@@ -57,6 +57,14 @@
 
         setEntryValues(entryValues.toArray(new CharSequence[entryValues.size()]));
         setEntries(entries.toArray(new CharSequence[entries.size()]));
-    }
 
+        //for other language the default search engine is google,but for English and
+        //Chinese the default search engine should be Baidu.
+        String language = context.getResources().getConfiguration().locale.toString();
+        if (language.equals("zh_CN")) {
+            setDefaultValue("baidu_cn");
+        } else if (language.equals("en_US")) {
+            setDefaultValue("baidu");
+        }
+    }
 }
diff --git a/src/com/android/browser/search/SearchEngines.java b/src/com/android/browser/search/SearchEngines.java
index 433e877..2484ce0 100644
--- a/src/com/android/browser/search/SearchEngines.java
+++ b/src/com/android/browser/search/SearchEngines.java
@@ -19,6 +19,7 @@
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.os.SystemProperties;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -37,10 +38,16 @@
         ArrayList<SearchEngineInfo> searchEngineInfos = new ArrayList<SearchEngineInfo>();
         Resources res = context.getResources();
         String[] searchEngines = res.getStringArray(R.array.search_engines);
+        String browserRes = SystemProperties.get("persist.env.c.browser.resource", "default");
         for (int i = 0; i < searchEngines.length; i++) {
             String name = searchEngines[i];
-            SearchEngineInfo info = new SearchEngineInfo(context, name);
-            searchEngineInfos.add(info);
+            if ("cmcc".equals(browserRes)) {
+                SearchEngineInfo info = new SearchEngineInfo(context, name);
+                searchEngineInfos.add(info);
+            } else if (!name.startsWith("cmcc")) {
+                SearchEngineInfo info = new SearchEngineInfo(context, name);
+                searchEngineInfos.add(info);
+            }
         }
         return searchEngineInfos;
     }