Fix miscellaneous issues in Browser

- Fixed missing handlers, provider, filters and
  activity removed during browser package name change.
- Use overlay to read search engines.

Change-Id: I673d30cf65affdf5ac2e8c633deba3cde14bfe26
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index cb8dbc4..3ba817c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -40,6 +40,7 @@
     <uses-permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" />
     <uses-permission android:name="android.permission.SET_WALLPAPER" />
     <uses-permission android:name="android.permission.WAKE_LOCK"/>
+    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
@@ -61,7 +62,7 @@
                    android:label="@string/application_name"
                    android:icon="@mipmap/ic_launcher_browser"
                    android:backupAgent=".BrowserBackupAgent"
-                   android:hardwareAccelerated="false"
+                   android:hardwareAccelerated="true"
                    android:taskAffinity="android.task.browser" >
 
         <uses-library android:name="com.qrd.useragent"
@@ -215,7 +216,7 @@
                   android:configChanges="orientation|keyboardHidden|screenSize"
                   android:windowSoftInputMode="adjustResize">
             <intent-filter>
-                <action android:name="android.intent.action.BROWSER_DOWNLOAD" />
+                <action android:name="android.intent.action.BROWSERDOWNLOAD" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
@@ -224,6 +225,10 @@
         <activity android:name="AddBookmarkFolder" android:label="@string/save_bookmark_folder"
                   android:theme="@style/DialogWhenLarge"
                   android:configChanges="orientation|keyboardHidden|screenSize">
+                  <intent-filter>
+                      <category android:name="android.intent.category.DEFAULT" />
+                      <data android:mimeType="vnd.android.cursor.dir/bookmark"/>
+                  </intent-filter>
         </activity>
 
         <activity android:name="ComboViewActivity">
@@ -256,6 +261,12 @@
                 <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
             </intent-filter>
         </activity>
+        <!-- add or edit my navigation activity -->
+        <activity android:name=".mynavigation.AddMyNavigationPage"
+            android:label="@string/my_navigation_page_title"
+            android:configChanges="orientation|keyboardHidden"
+            android:windowSoftInputMode="stateHidden">
+        </activity>
 
         <!-- Makes .BrowserActivity the search target for any activity in Browser -->
         <meta-data android:name="android.app.default_searchable" android:value=".BrowserActivity" />
@@ -280,6 +291,12 @@
             </intent-filter>
         </receiver>
 
+         <receiver android:name=".MessagesReceiver">
+            <intent-filter>
+                <action android:name="com.android.mms.transaction.MESSAGE_RECEIVED" />
+            </intent-filter>
+        </receiver>
+
         <receiver android:name=".PreloadRequestReceiver"
              android:permission="com.android.browser.permission.PRELOAD" >
              <intent-filter>
@@ -291,6 +308,10 @@
         <provider android:name=".provider.SnapshotProvider"
                   android:authorities="com.android.browser.snapshots"
                   android:exported="false" />
+        <provider
+            android:name=".provider.MyNavigationProvider"
+            android:authorities="com.android.browser.mynavigation"
+            android:exported="false" />
 
         <service android:name="org.chromium.content.app.SandboxedProcessService0"
                  android:process=":sandboxed_process0"
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 27b3620..473845e 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -22,6 +22,8 @@
 import android.app.Dialog;
 import android.app.DownloadManager;
 import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.res.Resources;
 import android.content.ClipboardManager;
 import android.content.ContentResolver;
 import android.content.ContentUris;
@@ -358,12 +360,8 @@
                 }
                 Tab t = null;
                 if (urlData.isEmpty()) {
-                    Object[] params  = { new String("persist.env.c.browser.resource"),
-                                 new String("default")};
-                    Class[] type = new Class[] {String.class, String.class};
-                    String browserRes = (String)ReflectHelper.invokeStaticMethod(
-                        "android.os.SystemProperties", "get",
-                        type, params);
+                    Resources res = mActivity.getResources();
+                    String browserRes = res.getString(R.string.config_carrier_resource);
                     if (browserRes.equals(
                             "cmcc")) {
                         t = openTab(OFFLINE_PAGE, false, true, true);
diff --git a/src/com/android/browser/search/SearchEngines.java b/src/com/android/browser/search/SearchEngines.java
index dff5f62..c840afc 100644
--- a/src/com/android/browser/search/SearchEngines.java
+++ b/src/com/android/browser/search/SearchEngines.java
@@ -39,11 +39,8 @@
         ArrayList<SearchEngineInfo> searchEngineInfos = new ArrayList<SearchEngineInfo>();
         Resources res = context.getResources();
         String[] searchEngines = res.getStringArray(R.array.search_engines);
-        Object[] params  = { new String("persist.env.c.browser.resource"),
-                                 new String("default")};
-        Class[] type = new Class[] {String.class, String.class};
-        String browserRes = (String)ReflectHelper.invokeStaticMethod(
-                                "android.os.SystemProperties","get", type, params);
+        // add for carrier feature - preset search engine
+        String browserRes = res.getString(R.string.config_carrier_resource);
         for (int i = 0; i < searchEngines.length; i++) {
             String name = searchEngines[i];
             if ("cmcc".equals(browserRes)) {