Code drop from //branches/cupcake/...@124589
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8129851..9668483 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,41 +17,59 @@
 ** limitations under the License.
 */
 -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.android.launcher"
-          android:sharedUserId="android.uid.shared">
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.launcher"
+    android:sharedUserId="android.uid.shared">
 
-    <permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
-                android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
-                android:protectionLevel="normal"
-                android:label="@string/permlab_install_shortcut"
-                android:description="@string/permdesc_install_shortcut"/>
-    <permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"
-                android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
-                android:protectionLevel="normal"
-                android:label="@string/permlab_uninstall_shortcut"
-                android:description="@string/permdesc_uninstall_shortcut"/>    
+    <permission
+        android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
+        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+        android:protectionLevel="normal"
+        android:label="@string/permlab_install_shortcut"
+        android:description="@string/permdesc_install_shortcut" />
+    <permission
+        android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"
+        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+        android:protectionLevel="normal"
+        android:label="@string/permlab_uninstall_shortcut"
+        android:description="@string/permdesc_uninstall_shortcut"/>
+    <permission
+        android:name="com.android.launcher.permission.READ_SETTINGS"
+        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+        android:protectionLevel="normal"
+        android:label="@string/permlab_read_settings"
+        android:description="@string/permdesc_read_settings"/>
+    <permission
+        android:name="com.android.launcher.permission.WRITE_SETTINGS"
+        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+        android:protectionLevel="normal"
+        android:label="@string/permlab_write_settings"
+        android:description="@string/permdesc_write_settings"/>
 
-    <uses-permission android:name="android.permission.CALL_PHONE"/>
-    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
-    <uses-permission android:name="android.permission.GET_TASKS"/>
+    <uses-permission android:name="android.permission.CALL_PHONE" />
+    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
+    <uses-permission android:name="android.permission.GET_TASKS" />
     <uses-permission android:name="android.permission.READ_CONTACTS"/>
     <uses-permission android:name="android.permission.SET_WALLPAPER" />
     <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
-    <uses-permission android:name="android.permission.VIBRATE"/>
-    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
+    <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
+    <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
 
     <application
+        android:name="LauncherApplication"
         android:process="android.process.acore"
         android:label="@string/application_name"
         android:icon="@drawable/ic_launcher_home">
 
-        <activity android:name="Launcher"
-                android:launchMode="singleTask"
-                android:clearTaskOnLaunch="true"
-                android:stateNotNeeded="true"
-                android:theme="@style/Theme"
-                android:configChanges="mcc|mnc">
+        <activity
+            android:name="Launcher"
+            android:launchMode="singleTask"
+            android:clearTaskOnLaunch="true"
+            android:stateNotNeeded="true"
+            android:theme="@style/Theme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.HOME"/>
@@ -60,7 +78,8 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="WallpaperChooser"
+        <activity
+            android:name="WallpaperChooser"
             android:label="@string/pick_wallpaper"
             android:icon="@drawable/ic_launcher_gallery">
             <intent-filter>
@@ -70,21 +89,34 @@
         </activity>
         
         <!-- Enable system-default search mode for any activity in Home -->
-        <meta-data android:name="android.app.default_searchable" android:value="*" />
+        <meta-data
+            android:name="android.app.default_searchable"
+            android:value="*" />
 
-        <receiver android:name=".InstallShortcutReceiver"
-                android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
+        <!-- Intent received used to install shortcuts from other applications -->
+        <receiver
+            android:name=".InstallShortcutReceiver"
+            android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
             <intent-filter>
                 <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
             </intent-filter>
         </receiver>
 
-        <receiver android:name=".UninstallShortcutReceiver"
-                android:permission="com.android.launcher.permission.UNINSTALL_SHORTCUT">
+        <!-- Intent received used to uninstall shortcuts from other applications -->
+        <receiver
+            android:name=".UninstallShortcutReceiver"
+            android:permission="com.android.launcher.permission.UNINSTALL_SHORTCUT">
             <intent-filter>
                 <action android:name="com.android.launcher.action.UNINSTALL_SHORTCUT" />
             </intent-filter>
         </receiver>
 
+        <!-- The settings provider contains Home's data, like the workspace favorites -->
+        <provider
+            android:name="LauncherProvider"
+            android:authorities="com.android.launcher.settings"
+            android:writePermission="com.android.launcher.permission.WRITE_SETTINGS"
+            android:readPermission="com.android.launcher.permission.READ_SETTINGS" />
+
     </application>
 </manifest>