Merge "Storing the widget item views in Widget holder, to avoid looks on every bind/recycle" into ub-launcher3-calgary
diff --git a/Android.mk b/Android.mk
index dc43f7e..9a3b09e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -28,7 +28,9 @@
     android-support-v7-recyclerview \
     android-support-v7-palette
 
-LOCAL_SRC_FILES := $(call all-java-files-under, src) \
+LOCAL_SRC_FILES := \
+    $(call all-java-files-under, src) \
+    $(call all-java-files-under, src_config) \
     $(call all-proto-files-under, protos)
 
 LOCAL_RESOURCE_DIR := \
@@ -48,6 +50,8 @@
 LOCAL_PACKAGE_NAME := Launcher3
 LOCAL_OVERRIDES_PACKAGES := Home Launcher2
 
+LOCAL_FULL_LIBS_MANIFEST_FILES := $(LOCAL_PATH)/AndroidManifest-common.xml
+
 include $(BUILD_PACKAGE)
 
 #
diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml
new file mode 100644
index 0000000..3da3535
--- /dev/null
+++ b/AndroidManifest-common.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2016, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.launcher3">
+    <uses-sdk android:targetSdkVersion="23" android:minSdkVersion="21"/>
+
+    <!--
+    The manifest defines the common entries that should be present in any derivative of Launcher3.
+    The components should generally not require any changes.
+
+    Rest of the components are defined in AndroidManifest.xml which is merged with this manifest
+    at compile time. Note that the components defined in AndroidManifest.xml are also required,
+    with some minor changed based on the derivative app.
+    -->
+    <permission
+        android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
+        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+        android:protectionLevel="dangerous"
+        android:label="@string/permlab_install_shortcut"
+        android:description="@string/permdesc_install_shortcut" />
+
+    <uses-permission android:name="android.permission.CALL_PHONE" />
+    <uses-permission android:name="android.permission.SET_WALLPAPER" />
+    <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
+    <uses-permission android:name="android.permission.BIND_APPWIDGET" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+
+    <application
+        android:backupAgent="com.android.launcher3.LauncherBackupAgent"
+        android:fullBackupOnly="true"
+        android:fullBackupContent="@xml/backupscheme"
+        android:hardwareAccelerated="true"
+        android:icon="@mipmap/ic_launcher_home"
+        android:label="@string/app_name"
+        android:largeHeap="@bool/config_largeHeap"
+        android:restoreAnyVersion="true"
+        android:supportsRtl="true" >
+
+        <!-- Intent received used to install shortcuts from other applications -->
+        <receiver
+            android:name="com.android.launcher3.InstallShortcutReceiver"
+            android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
+            <intent-filter>
+                <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
+            </intent-filter>
+        </receiver>
+
+        <!-- Intent received used to initialize a restored widget -->
+        <receiver android:name="com.android.launcher3.AppWidgetsRestoredReceiver" >
+            <intent-filter>
+                <action android:name="android.appwidget.action.APPWIDGET_HOST_RESTORED"/>
+            </intent-filter>
+        </receiver>
+
+        <service android:name="com.android.launcher3.dynamicui.ColorExtractionService"
+            android:exported="false"
+            android:process=":wallpaper_chooser">
+        </service>
+
+        <meta-data android:name="android.nfc.disable_beam_default"
+                       android:value="true" />
+
+    </application>
+</manifest>
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 75b81d0..eb7ea0c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,13 +21,16 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.launcher3">
     <uses-sdk android:targetSdkVersion="23" android:minSdkVersion="21"/>
+    <!--
+    Manifest entries specific to Launcher3. This is merged with AndroidManifest-common.xml.
+    Refer comments around specific entries on how to extend individual components.
+    -->
 
-    <permission
-        android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
-        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
-        android:protectionLevel="dangerous"
-        android:label="@string/permlab_install_shortcut"
-        android:description="@string/permdesc_install_shortcut" />
+    <!--
+    Permissions required for read/write access to the workspace data. These permission name
+    should not conflict with that defined in other apps, as such an app should embed its package
+    name in the permissions. eq com.mypackage.permission.READ_SETTINGS
+    -->
     <permission
         android:name="com.android.launcher3.permission.READ_SETTINGS"
         android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
@@ -41,28 +44,17 @@
         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.SET_WALLPAPER" />
-    <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
-    <uses-permission android:name="android.permission.BIND_APPWIDGET" />
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
     <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
     <uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
     <uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS" />
 
-    <application
-        android:backupAgent="com.android.launcher3.LauncherBackupAgent"
-        android:fullBackupOnly="true"
-        android:fullBackupContent="@xml/backupscheme"
-        android:hardwareAccelerated="true"
-        android:icon="@mipmap/ic_launcher_home"
-        android:label="@string/app_name"
-        android:largeHeap="@bool/config_largeHeap"
-        android:restoreAnyVersion="true"
-        android:supportsRtl="true" >
+    <application>
 
+        <!--
+        Main launcher activity. When extending only change the name, and keep all the
+        attributes and intent filters the same
+        -->
         <activity
             android:name="com.android.launcher3.Launcher"
             android:launchMode="singleTask"
@@ -83,6 +75,9 @@
             </intent-filter>
         </activity>
 
+        <!--
+        The settings activity. When extending keep the intent filter present
+        -->
         <activity
             android:name="com.android.launcher3.SettingsActivity"
             android:label="@string/settings_button_text"
@@ -93,28 +88,11 @@
             </intent-filter>
         </activity>
 
-        <!-- Intent received used to install shortcuts from other applications -->
-        <receiver
-            android:name="com.android.launcher3.InstallShortcutReceiver"
-            android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
-            <intent-filter>
-                <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
-            </intent-filter>
-        </receiver>
-
-        <!-- Intent received used to initialize a restored widget -->
-        <receiver android:name="com.android.launcher3.AppWidgetsRestoredReceiver" >
-            <intent-filter>
-                <action android:name="android.appwidget.action.APPWIDGET_HOST_RESTORED"/>
-            </intent-filter>
-        </receiver>
-
-        <service android:name=".dynamicui.ColorExtractionService"
-            android:exported="false"
-            android:process=":wallpaper_chooser">
-        </service>
-
-        <!-- The settings provider contains Home's data, like the workspace favorites -->
+        <!--
+        The settings provider contains Home's data, like the workspace favorites. The permissions
+        should be changed to what is defined above. The authorities should also be changed to
+        represent the package name.
+        -->
         <provider
             android:name="com.android.launcher3.LauncherProvider"
             android:authorities="com.android.launcher3.settings"
@@ -122,9 +100,6 @@
             android:writePermission="com.android.launcher3.permission.WRITE_SETTINGS"
             android:readPermission="com.android.launcher3.permission.READ_SETTINGS" />
 
-        <meta-data android:name="android.nfc.disable_beam_default"
-                       android:value="true" />
-
         <!-- ENABLE_FOR_TESTING
 
         <activity
diff --git a/build.gradle b/build.gradle
index 2efbec4..899767f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,8 +12,8 @@
 apply plugin: 'com.google.protobuf'
 
 android {
-    compileSdkVersion 23
-    buildToolsVersion "22.0.1"
+    compileSdkVersion 'android-N'
+    buildToolsVersion '24.0.0-rc3'
 
     defaultConfig {
         applicationId "com.android.launcher3"
@@ -33,7 +33,7 @@
     sourceSets {
         main {
             res.srcDirs = ['res']
-            java.srcDirs = ['src']
+            java.srcDirs = ['src', 'src_config']
             manifest.srcFile 'AndroidManifest.xml'
             proto.srcDirs 'protos/'
         }
diff --git a/res/drawable-hdpi/ic_arrow_back_grey.png b/res/drawable-hdpi/ic_arrow_back_grey.png
deleted file mode 100755
index 7d7bfb1..0000000
--- a/res/drawable-hdpi/ic_arrow_back_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_pageindicator_default.png b/res/drawable-hdpi/ic_pageindicator_default.png
deleted file mode 100644
index 19945a5..0000000
--- a/res/drawable-hdpi/ic_pageindicator_default.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_pageindicator_default_folder.png b/res/drawable-hdpi/ic_pageindicator_default_folder.png
deleted file mode 100644
index 4710374..0000000
--- a/res/drawable-hdpi/ic_pageindicator_default_folder.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_search_grey.png b/res/drawable-hdpi/ic_search_grey.png
deleted file mode 100755
index bc50a47..0000000
--- a/res/drawable-hdpi/ic_search_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_arrow_back_grey.png b/res/drawable-mdpi/ic_arrow_back_grey.png
deleted file mode 100755
index 97999af..0000000
--- a/res/drawable-mdpi/ic_arrow_back_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_pageindicator_default.png b/res/drawable-mdpi/ic_pageindicator_default.png
deleted file mode 100644
index 9c44afc..0000000
--- a/res/drawable-mdpi/ic_pageindicator_default.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_pageindicator_default_folder.png b/res/drawable-mdpi/ic_pageindicator_default_folder.png
deleted file mode 100644
index f462558..0000000
--- a/res/drawable-mdpi/ic_pageindicator_default_folder.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_search_grey.png b/res/drawable-mdpi/ic_search_grey.png
deleted file mode 100755
index c386dbb..0000000
--- a/res/drawable-mdpi/ic_search_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-nodpi/ic_migration.png b/res/drawable-nodpi/ic_migration.png
deleted file mode 100644
index 14f8721..0000000
--- a/res/drawable-nodpi/ic_migration.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_arrow_back_grey.png b/res/drawable-xhdpi/ic_arrow_back_grey.png
deleted file mode 100755
index 22854bf..0000000
--- a/res/drawable-xhdpi/ic_arrow_back_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_pageindicator_default.png b/res/drawable-xhdpi/ic_pageindicator_default.png
deleted file mode 100644
index 0cde8f4..0000000
--- a/res/drawable-xhdpi/ic_pageindicator_default.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_pageindicator_default_folder.png b/res/drawable-xhdpi/ic_pageindicator_default_folder.png
deleted file mode 100644
index 7c22d41..0000000
--- a/res/drawable-xhdpi/ic_pageindicator_default_folder.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_search_grey.png b/res/drawable-xhdpi/ic_search_grey.png
deleted file mode 100755
index e63182d..0000000
--- a/res/drawable-xhdpi/ic_search_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_arrow_back_grey.png b/res/drawable-xxhdpi/ic_arrow_back_grey.png
deleted file mode 100755
index a3ed052..0000000
--- a/res/drawable-xxhdpi/ic_arrow_back_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_pageindicator_default.png b/res/drawable-xxhdpi/ic_pageindicator_default.png
deleted file mode 100644
index 3bee96f..0000000
--- a/res/drawable-xxhdpi/ic_pageindicator_default.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_pageindicator_default_folder.png b/res/drawable-xxhdpi/ic_pageindicator_default_folder.png
deleted file mode 100644
index 46ff473..0000000
--- a/res/drawable-xxhdpi/ic_pageindicator_default_folder.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_search_grey.png b/res/drawable-xxhdpi/ic_search_grey.png
deleted file mode 100755
index 33b4ea9..0000000
--- a/res/drawable-xxhdpi/ic_search_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_arrow_back_grey.png b/res/drawable-xxxhdpi/ic_arrow_back_grey.png
deleted file mode 100755
index 6b42051..0000000
--- a/res/drawable-xxxhdpi/ic_arrow_back_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_search_grey.png b/res/drawable-xxxhdpi/ic_search_grey.png
deleted file mode 100755
index d957186..0000000
--- a/res/drawable-xxxhdpi/ic_search_grey.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/bg_migration_cling.xml b/res/drawable/bg_migration_cling.xml
deleted file mode 100644
index bfff5a4..0000000
--- a/res/drawable/bg_migration_cling.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval" >
-
-    <gradient
-        android:endColor="#00ffeb3a"
-        android:gradientRadius="50%p"
-        android:startColor="#80ffeb3a"
-        android:type="radial" />
-
-</shape>
\ No newline at end of file
diff --git a/res/layout-land/migration_cling.xml b/res/layout-land/migration_cling.xml
deleted file mode 100644
index 269c1ae..0000000
--- a/res/layout-land/migration_cling.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:launcher="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/migration_cling"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    launcher:layout_ignoreInsets="true"
-    android:background="#FF009688"
-    android:baselineAligned="false"
-    android:gravity="center_vertical" >
-
-    <FrameLayout
-        android:layout_width="0dp"
-        android:layout_height="match_parent"
-        android:layout_weight="1" >
-
-        <ImageView
-            android:layout_width="@dimen/cling_migration_bg_size"
-            android:layout_height="@dimen/cling_migration_bg_size"
-            android:layout_gravity="center"
-            android:background="@drawable/bg_migration_cling" />
-
-        <ImageView
-            android:layout_width="@dimen/cling_migration_logo_width"
-            android:layout_height="@dimen/cling_migration_logo_height"
-            android:layout_gravity="center"
-            android:src="@drawable/ic_migration" />
-    </FrameLayout>
-
-    <LinearLayout
-        android:layout_width="@dimen/cling_migration_content_width"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/cling_migration_content_margin"
-        android:layout_marginRight="@dimen/cling_migration_content_margin"
-        android:orientation="vertical"
-        android:paddingLeft="24dp"
-        android:paddingRight="24dp" >
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingBottom="8dp"
-            android:text="@string/first_run_cling_title"
-            android:textColor="#E1000000"
-            android:textSize="34sp" />
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:fontFamily="sans-serif-medium"
-            android:text="@string/migration_cling_title"
-            android:textColor="#E1000000"
-            android:textSize="20sp" />
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingBottom="24dp"
-            android:text="@string/migration_cling_description"
-            android:textColor="#99000000"
-            android:textSize="16sp" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content" >
-
-            <Button
-                android:id="@+id/cling_dismiss_migration_copy_apps"
-                style="?android:attr/buttonBarButtonStyle"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:fontFamily="sans-serif-medium"
-                android:text="@string/migration_cling_copy_apps"
-                android:textColor="#FFFFFFFF"
-                android:textSize="14sp" />
-
-            <Button
-                android:id="@+id/cling_dismiss_migration_use_default"
-                style="?android:attr/buttonBarButtonStyle"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:fontFamily="sans-serif-medium"
-                android:text="@string/migration_cling_use_default"
-                android:textColor="#deFFFFFF"
-                android:textSize="14sp" />
-        </LinearLayout>
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-port/migration_cling.xml b/res/layout-port/migration_cling.xml
deleted file mode 100644
index 3f696a2..0000000
--- a/res/layout-port/migration_cling.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:launcher="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/migration_cling"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    launcher:layout_ignoreInsets="true"
-    android:background="#FF009688" >
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical" >
-
-        <ImageView
-            android:layout_width="@dimen/cling_migration_bg_size"
-            android:layout_height="@dimen/cling_migration_bg_size"
-            android:layout_below="@+id/ic_cling_migration"
-            android:layout_centerHorizontal="true"
-            android:layout_marginTop="@dimen/cling_migration_bg_shift"
-            android:src="@drawable/bg_migration_cling" />
-
-        <ImageView
-            android:id="@+id/ic_cling_migration"
-            android:layout_width="@dimen/cling_migration_logo_width"
-            android:layout_height="@dimen/cling_migration_logo_height"
-            android:layout_alignParentTop="true"
-            android:layout_centerHorizontal="true"
-            android:src="@drawable/ic_migration" />
-
-        <LinearLayout
-            android:layout_width="@dimen/cling_migration_content_width"
-            android:layout_height="wrap_content"
-            android:layout_below="@+id/ic_cling_migration"
-            android:layout_marginStart="@dimen/cling_migration_content_margin"
-            android:layout_marginLeft="@dimen/cling_migration_content_margin"
-            android:orientation="vertical"
-            android:paddingLeft="24dp"
-            android:paddingRight="24dp" >
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingBottom="8dp"
-                android:text="@string/first_run_cling_title"
-                android:textColor="#E1000000"
-                android:textSize="34sp" />
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:fontFamily="sans-serif-medium"
-                android:text="@string/migration_cling_title"
-                android:textColor="#E1000000"
-                android:textSize="20sp" />
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingBottom="24dp"
-                android:text="@string/migration_cling_description"
-                android:textColor="#99000000"
-                android:textSize="16sp" />
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" >
-
-                <Button
-                    android:id="@+id/cling_dismiss_migration_copy_apps"
-                    style="?android:attr/buttonBarButtonStyle"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:fontFamily="sans-serif-medium"
-                    android:text="@string/migration_cling_copy_apps"
-                    android:textColor="#FFFFFFFF"
-                    android:textSize="14sp" />
-
-                <Button
-                    android:id="@+id/cling_dismiss_migration_use_default"
-                    style="?android:attr/buttonBarButtonStyle"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:fontFamily="sans-serif-medium"
-                    android:text="@string/migration_cling_use_default"
-                    android:textColor="#deFFFFFF"
-                    android:textSize="14sp" />
-            </LinearLayout>
-        </LinearLayout>
-    </RelativeLayout>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/all_apps_container.xml b/res/layout/all_apps_container.xml
deleted file mode 100644
index c0525ee..0000000
--- a/res/layout/all_apps_container.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<!-- Both android:focusable and android:focusableInTouchMode are needed for
-     the view to get focus change events. -->
-<com.android.launcher3.allapps.AllAppsRecyclerViewContainerView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:elevation="15dp"
-    android:focusable="true"
-    android:focusableInTouchMode="true">
-
-    <!-- DO NOT CHANGE THE ID -->
-    <com.android.launcher3.allapps.AllAppsRecyclerView
-        android:id="@+id/apps_list_view"
-        android:theme="@style/CustomOverscroll.Light"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center_horizontal|top"
-        android:clipToPadding="false"
-        android:focusable="true"
-        android:descendantFocusability="afterDescendants" />
-
-</com.android.launcher3.allapps.AllAppsRecyclerViewContainerView>
\ No newline at end of file
diff --git a/res/layout/all_apps_search_bar.xml b/res/layout/all_apps_search_bar.xml
deleted file mode 100644
index 69a66c8..0000000
--- a/res/layout/all_apps_search_bar.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<FrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/all_apps_search_bg" >
-
-    <LinearLayout
-        android:id="@+id/search_container"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/all_apps_search_bar_height"
-        android:layout_gravity="start|center_vertical"
-        android:orientation="horizontal"
-        android:visibility="invisible" >
-
-        <ImageView
-            android:id="@+id/dismiss_search_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:layout_marginLeft="16dp"
-            android:layout_marginStart="16dp"
-            android:contentDescription="@string/all_apps_button_label"
-            android:src="@drawable/ic_arrow_back_grey" />
-
-        <com.android.launcher3.ExtendedEditText
-            android:id="@+id/search_box_input"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@android:color/transparent"
-            android:focusableInTouchMode="true"
-            android:gravity="fill_horizontal|center_vertical"
-            android:hint="@string/all_apps_search_bar_hint"
-            android:inputType="text|textNoSuggestions|textCapWords"
-            android:imeOptions="actionSearch|flagNoExtractUi"
-            android:maxLines="1"
-            android:paddingLeft="8dp"
-            android:scrollHorizontally="true"
-            android:singleLine="true"
-            android:textColor="#4c4c4c"
-            android:textColorHint="#9c9c9c"
-            android:textSize="16sp" />
-    </LinearLayout>
-
-    <ImageView
-        android:id="@+id/search_button"
-        android:layout_width="wrap_content"
-        android:layout_height="@dimen/all_apps_search_bar_height"
-        android:layout_gravity="end|center_vertical"
-        android:layout_marginEnd="16dp"
-        android:layout_marginRight="16dp"
-        android:contentDescription="@string/all_apps_search_bar_hint"
-        android:src="@drawable/ic_search_grey" />
-</FrameLayout>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 6285171..ed5ad77 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Muurpapiere"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Instellings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Gedeaktiveer deur jou administrateur"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Laat draai toe"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Laat tuisskermrotasie toe"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Wanneer toestel gedraai word"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Huidige vertooninstelling laat nie rotasie toe nie"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Onbekend"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Verwyder"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Soek"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index f862e2c..c8070f0 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"የግድግዳ ወረቀቶች"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ቅንብሮች"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"በእርስዎ አስተዳዳሪ የተሰናከለ"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"ማሽከርከርን ይፍቀዱ"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"የመነሻ ማያ ገጽ ማሽከርከርን ይፍቀዱ"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"መሣሪያው ሲዞር"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"የአሁኑ የማሳያ ቅንብር ማሽከርከርን አይፈቅድም"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"የማይታወቅ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"አስወግድ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ፈልግ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 2143539..e059d26 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"الخلفيات"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"الإعدادات"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"عطَّل المشرف هذه الميزة"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"السماح بالتدوير"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"السماح بتدوير الشاشة الرئيسية"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"أوقات تدوير الجهاز"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"لا يسمح إعداد العرض الحالي بالتدوير"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"غير معروفة"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"إزالة"</string>
     <string name="abandoned_search" msgid="891119232568284442">"بحث"</string>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 6e05132..239d718 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Divar kağızları"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ayarlar"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Admininiz tərəfindən deaktiv edilib"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Fırlatmağa icazə verin"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Əsas ekranın firlanmağına icazə verin"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Cihaz çevrilən zaman"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Cari Ekran ayarı fırlatmağa icazə vermir"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Naməlum"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Yığışdır"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Axtarış"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index c85bf6b..a09d457 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Тапети"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Настройки"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Деактивирано от администратора ви"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Разрешаване на завъртането"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Разрешаване на завъртането на началния екран"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"При завъртане на устройството"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Текущата настройка на екрана не разрешава завъртане"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Няма информация"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Премахване"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Търсене"</string>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 29c218f..a584f17 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ওয়ালপেপারগুলি"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"সেটিংস"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"আপনার প্রশাসক দ্বারা অক্ষম করা হয়েছে"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"ঘূর্ণনের অনুমতি দিন"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"হোমস্ক্রীন ঘোরানোর অনুমতি দিন"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"ডিভাইস যখন ঘোরানো হবে"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"বর্তমান প্রদর্শনের সেটিংস ঘোরানোর মঞ্জুরি দেয় না"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"অজানা"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"সরান"</string>
     <string name="abandoned_search" msgid="891119232568284442">"অনুসন্ধান"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 4a6ba59..8027031 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fons de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configuració"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Desactivada per l\'administrador"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permet la rotació"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Permet la rotació de la pantalla d\'inici"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"En girar el dispositiu"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"La configuració actual de la pantalla no permet la rotació"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconegut"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Suprimeix"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Cerca"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 8b3a8ed..a047c39 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nastavení"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Zakázáno administrátorem"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Povolit otáčení"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Povolit otáčení plochy"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Při otočení zařízení"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Aktuální nastavení displeje neumožňuje otáčení"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Neznámé"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstranit"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Hledat"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index e69871a..c24c159 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Baggrunde"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Indstillinger"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Deaktiveret af din administrator"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Tillad rotation"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Tillad rotation af startskærmen"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Når enheden roteres"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Den aktuelle indstilling for visning tillader ikke rotation"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ukendt"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjern"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Søg"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 186a06a..4633adb 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Hintergründe"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Einstellungen"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Von deinem Administrator deaktiviert"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Drehung zulassen"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Drehung des Startbildschirms zulassen"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Bei Drehung des Geräts"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Die aktuelle \"Display\"-Einstellung verhindert eine Drehung der Anzeige"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unbekannt"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Entfernen"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Suchen"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 90b6235..fd8f1f8 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ταπετσαρίες"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ρυθμίσεις"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Απενεργοποιήθηκε από τον διαχειριστή σας"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Να επιτρέπεται η περιστροφή"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Να επιτρέπεται η περιστροφή της αρχικής οθόνης"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Όταν η συσκευή περιστρέφεται"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Η τρέχουσα ρύθμιση οθόνης δεν επιτρέπει την περιστροφή"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Άγνωστο"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Κατάργηση"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Αναζήτηση"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 09fc3a2..23882b1 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpapers"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Settings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disabled by your admin"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Allow rotation"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Allow homescreen rotation"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"When device is rotated"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Current display setting doesn\'t permit rotation"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Search"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 09fc3a2..23882b1 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpapers"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Settings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disabled by your admin"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Allow rotation"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Allow homescreen rotation"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"When device is rotated"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Current display setting doesn\'t permit rotation"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Search"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 09fc3a2..23882b1 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpapers"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Settings"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disabled by your admin"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Allow rotation"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Allow homescreen rotation"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"When device is rotated"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Current display setting doesn\'t permit rotation"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Unknown"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remove"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Search"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index dd18c1e..0061f66 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configuración"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"El administrador inhabilitó esta función"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permitir la rotación"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Permitir la rotación de la pantalla principal"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Al rotar el dispositivo"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"La configuración actual no permite la rotación de la pantalla"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconocido"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 579dd84..1169f44 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ajustes"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Inhabilitada por el administrador"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permitir rotación"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Permitir rotación de la pantalla de inicio"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Al girar el dispositivo"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"La configuración de pantalla actual no permite girar la pantalla"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconocido"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 371e632..3fb031a 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Taustapildid"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Seaded"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Keelas administraator"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Luba pööramine"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Luba avaekraani pööramine"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kui seadet pööratakse"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Praegune kuvaseade ei luba pööramist"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Teadmata"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eemalda"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Otsing"</string>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index fa19b45..6688ed4 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Horma-paperak"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ezarpenak"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Administratzaileak desgaitu du"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Baimendu biratzeko aukera"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Baimendu hasierako pantaila biratzea"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Gailua biratzen denean"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Uneko pantaila-ezarpenak ez du onartzen ikuspegia biratzea"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ezezaguna"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Kendu"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Bilatu"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 148e0cf..720bb31 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"کاغذدیواری‌ها"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"تنظیمات"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"توسط سرپرست سیستم غیرفعال شده است"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"چرخش مجاز است"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"مجاز کردن چرخش صفحه‌اصلی"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"وقتی دستگاه چرخانده می‌شود"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"تنظیم نمایشگر کنونی اجازه چرخش نمی‌دهد"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"نامشخص"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"حذف"</string>
     <string name="abandoned_search" msgid="891119232568284442">"جستجو"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index f04896a..ac14d86 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Taustakuvat"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Asetukset"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Järjestelmänvalvoja on poistanut toiminnon käytöstä."</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Salli kierto"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Salli aloitusnäytön kiertäminen"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kun laitetta kierretään"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Nykyiset näyttöasetukset eivät salli näytön kiertämistä."</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Tuntematon"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Poista"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Haku"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index b323b82..c87169f 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fonds d\'écran"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Paramètres"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Cette fonction est désactivée par votre administrateur"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permettre la rotation"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Autoriser la rotation de l\'écran d\'accueil"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Lorsque l\'utilisateur pivote l\'appareil"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Le mode d\'affichage actuel ne permet pas le pivotement"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Inconnu"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Supprimer"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Rechercher"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index e6d7a20..192a025 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fonds d\'écran"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Paramètres"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Désactivé par votre administrateur"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Autoriser la rotation"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Autoriser la rotation de l\'écran d\'accueil"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Lorsque l\'utilisateur fait pivoter l\'appareil"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Le paramètre d\'affichage actuel n\'autorise pas la rotation."</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Inconnu"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Supprimer"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Rechercher"</string>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index f402072..6ddef28 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -29,7 +29,7 @@
     <string name="long_press_widget_to_add" msgid="5154837155685183344">"Mantén tocado un widget para seleccionalo."</string>
     <string name="long_accessible_way_to_add" msgid="4289502106628154155">"Toca dúas veces e mantén premido para seleccionar un widget ou utiliza accións personalizadas."</string>
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
-    <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"Aplicacións de busca..."</string>
+    <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"Buscar aplicacións..."</string>
     <string name="all_apps_loading_message" msgid="7557140873644765180">"Cargando aplicacións..."</string>
     <string name="all_apps_no_search_results" msgid="6332185285860416787">"Non se atoparon aplicacións que coincidan con \"<xliff:g id="QUERY">%1$s</xliff:g>\""</string>
     <string name="all_apps_search_market_message" msgid="5470761048755751471">"Ir a <xliff:g id="QUERY">%1$s</xliff:g>"</string>
@@ -59,7 +59,7 @@
     <string name="migration_cling_description" msgid="2752413805582227644">"Queres importar as iconas e os cartafoles doutras pantallas de inicio?"</string>
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"COPIAR ICONAS"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"COMEZAR DE CERO"</string>
-    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos pantalla, widgets e configuración"</string>
+    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fondos de pantalla, widgets e configuración"</string>
     <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Mantén tocado o segundo plano para personalizalo"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"DE ACORDO"</string>
     <string name="folder_opened" msgid="94695026776264709">"Abriuse o cartafol, <xliff:g id="WIDTH">%1$d</xliff:g> por <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configuración"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Función desactivada polo administrador"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permitir xiro"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Permitir xirar a pantalla de inicio"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Ao xirar o dispositivo"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"A configuración de visualización actual non permite xirar a pantalla"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Descoñecido"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Buscar"</string>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 8c8a2ba..fbe3efe 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -30,12 +30,12 @@
     <string name="long_accessible_way_to_add" msgid="4289502106628154155">"વિજેટ ચૂંટવા અથવા કસ્ટમ ક્રિયાઓનો ઉપયોગ કરવા માટે બે વાર ટેપ કરો અને પકડી રાખો."</string>
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
     <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"ઍપ્લિકેશનોમાં શોધો…"</string>
-    <string name="all_apps_loading_message" msgid="7557140873644765180">"એપ્લિકેશનો લોડ કરી રહ્યું છે…"</string>
-    <string name="all_apps_no_search_results" msgid="6332185285860416787">"\"<xliff:g id="QUERY">%1$s</xliff:g>\" થી મેળ ખાતી કોઈ એપ્લિકેશનો મળી નથી"</string>
+    <string name="all_apps_loading_message" msgid="7557140873644765180">"ઍપ્લિકેશનો લોડ કરી રહ્યું છે…"</string>
+    <string name="all_apps_no_search_results" msgid="6332185285860416787">"\"<xliff:g id="QUERY">%1$s</xliff:g>\" થી મેળ ખાતી કોઈ ઍપ્લિકેશનો મળી નથી"</string>
     <string name="all_apps_search_market_message" msgid="5470761048755751471">"<xliff:g id="QUERY">%1$s</xliff:g> પર જાઓ"</string>
     <string name="out_of_space" msgid="4691004494942118364">"આ હોમ સ્ક્રીન પર વધુ જગ્યા નથી."</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"મનપસંદ ટ્રે પર વધુ જગ્યા નથી"</string>
-    <string name="all_apps_button_label" msgid="9110807029020582876">"એપ્લિકેશનો"</string>
+    <string name="all_apps_button_label" msgid="9110807029020582876">"ઍપ્લિકેશનો"</string>
     <string name="all_apps_home_button_label" msgid="252062713717058851">"હોમ"</string>
     <string name="remove_drop_target_label" msgid="7812859488053230776">"દૂર કરો"</string>
     <string name="uninstall_drop_target_label" msgid="4722034217958379417">"અનઇન્સ્ટોલ કરો"</string>
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"વૉલપેપર્સ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"સેટિંગ્સ"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"તમારા વ્યવસ્થાપક દ્વારા અક્ષમ કરેલ"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"પરિભ્રમણને મંજૂરી આપો"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"હોમસ્ક્રીનને ફેરવવાની મંજૂરી આપો"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"જ્યારે ઉપકરણ ફેરવેલું હોય ત્યારે"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"વર્તમાન પ્રદર્શન સેટિંગ ફેરવવાની પરવાનગી આપતી નથી"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"અજાણ્યો"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"દૂર કરો"</string>
     <string name="abandoned_search" msgid="891119232568284442">"શોધો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 5e99e61..695a1e6 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"सेटिंग"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"आपके व्यवस्थापक द्वारा अक्षम"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"रोटेशन की अनुमति दें"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"होमस्क्रीन घुमाने की अनुमति दें"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"डिवाइस घुमाए जाने पर"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"वर्तमान प्रदर्शन सेटिंग घुमाने की अनुमति नहीं देती"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"निकालें"</string>
     <string name="abandoned_search" msgid="891119232568284442">"खोजें"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 8fe238f..61b365f 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Pozadine"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Postavke"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Onemogućio administrator"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Dopusti rotaciju"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Dopusti zakretanje početnog zaslona"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kada se uređaj zakrene"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Trenutačna postavka zaslona ne dopušta zakretanje"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Nepoznato"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Ukloni"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Traži"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index d750866..f558fb6 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Háttérképek"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Beállítások"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"A rendszergazda letiltotta"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Elforgatás engedélyezése"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Kezdőképernyő elforgatásának engedélyezése"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Az eszköz forgatásakor"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"A jelenlegi kijelzőbeállítások nem teszik lehetővé az elforgatást"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ismeretlen"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eltávolítás"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Keresés"</string>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index a17216c..1f2de4c 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Պաստառներ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Կարգավորումներ"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Անջատվել է ձեր ադմինիստրատորի կողմից"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Թույլ տալ պարբերական կրկնությունը"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Թույլ տալ գլխավոր էկրանի պտտումը"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Սարքը պտտելու դեպքում"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Ցուցադրման ընթացիկ կարգավորումներն արգելում են պտտումը"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Անհայտ է"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Հեռացնել"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Գտնել"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index c9403c2..578e86f 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Wallpaper"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Setelan"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Dinonaktifkan oleh admin"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Izinkan putaran"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Izinkan putaran layar utama"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Saat perangkat diputar"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Setelan Tampilan Saat Ini tidak memungkinkan putaran"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Tidak dikenal"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Buang"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Telusuri"</string>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 86f42e8..c2f3396 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Veggfóður"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Stillingar"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Gert óvirkt af kerfisstjóra"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Leyfa snúning"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Leyfa snúning fyrir heimaskjá"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Þegar tækinu er snúið"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Núverandi skjástilling leyfir ekki snúning"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Óþekkt"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjarlægja"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Leita"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index c66cc93..467094f 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Sfondi"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Impostazioni"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Disattivata dall\'amministratore"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Consenti rotazione"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Consenti rotazione della schermata Home"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Quando il dispositivo viene ruotato"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"L\'impostazione corrente del display non consente la rotazione"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Sconosciuto"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Rimuovi"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Cerca"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 1e03cf5..161227d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"טפטים"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"הגדרות"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"הושבת על ידי מנהל המערכת שלך"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"אפשרות סיבוב"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"אפשרות סיבוב של מסך דף הבית"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"בעת סיבוב המכשיר"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"הגדרת התצוגה הנוכחית אינה מאפשרת סיבוב"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"לא ידוע"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"הסר"</string>
     <string name="abandoned_search" msgid="891119232568284442">"חפש"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index fb06f21..e86e56f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"壁紙"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"設定"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"管理者により無効にされています"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"回転を許可"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"ホーム画面の回転を許可"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"端末が回転したとき"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"現在の [ディスプレイ] 設定では回転を使用できません"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"削除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"検索"</string>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index b147c03..682cc12 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ფონები"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"პარამეტრები"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"გათიშულია თქვენი ადმინისტრატორის მიერ"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"როტაციის დაშვება"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"მთავარი ეკრანის ბრუნვის დაშვება"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"მოწყობილობის ბრუნვისას"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"ბრუნვა დაუშვებელია ჩვენების მიმდინარე პარამეტრებით"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"უცნობი"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ამოშლა"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ძიება"</string>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 647e2f5..3fa3d80 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Артқы фондар"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Параметрлер"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Әкімші өшірді"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Айналуға рұқсат ету"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Негізгі экранды айналдыруды рұқсат ету"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Құрылғы айналғанда"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Экранның ағымдағы параметрі айналуға рұқсат бермейді"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Белгісіз"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Алып тастау"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Іздеу"</string>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 6f3af8b..4cd6856 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ផ្ទាំង​រូបភាព"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ការកំណត់"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"បានបិទដំណើរការដោយអ្នកគ្រប់គ្រងរបស់អ្នក"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"អនុញ្ញាតឲ្យបង្វិល"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"អនុញ្ញាតការបងិ្វលអេក្រង់ដើម"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"នៅ​ពេល​បង្វិល​ឧបករណ៍When device is rotated"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"ការកំណត់អេក្រង់បច្ចុប្បន្នមិនអនុញ្ញាតការបង្វិលទេ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"មិន​ស្គាល់"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"លុបចេញ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ស្វែងរក"</string>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 3931359..dcd64ec 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ವಾಲ್‌ಪೇಪರ್‌ಗಳು"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"ತಿರುಗಿಸುವಿಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"ಮುಖಪರದೆ ತಿರುಗುವಿಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"ಸಾಧನವನ್ನು ತಿರುಗಿಸಿದಾಗ"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"ಪ್ರಸ್ತುತ ಪ್ರದರ್ಶನ ಸೆಟ್ಟಿಂಗ್ ತಿರುಗುವಿಕೆಯನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"ಅಜ್ಞಾತ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ತೆಗೆದುಹಾಕಿ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ಹುಡುಕು"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index ff0e63f..572c62d 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"배경화면"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"설정"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"관리자가 사용 중지함"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"회전 허용"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"메인 스크린 회전 허용"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"기기 회전 시"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"현재 표시 설정에는 회전 기능이 허용되지 않습니다."</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"알 수 없음"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"삭제"</string>
     <string name="abandoned_search" msgid="891119232568284442">"검색"</string>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 8f7aa0a..7f03a0b 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -59,7 +59,7 @@
     <string name="migration_cling_description" msgid="2752413805582227644">"Эски үй экрандарыңыздан сүрөтчөлөр жана фолдерлер импорттолсунбу?"</string>
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"СҮРӨТЧӨЛӨРДҮ КӨЧҮРҮҮ"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"ТАЗАСЫН БАШТОО"</string>
-    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тушкагаздар, виджеттер &amp; жөндөөлөр"</string>
+    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тушкагаздар, виджеттер жана жөндөөлөр"</string>
     <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Ыңгайлаштыруу үчүн фонду таптап, коё бербей туруңуз"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ТҮШҮНДҮМ"</string>
     <string name="folder_opened" msgid="94695026776264709">"Фолдер ачылды, туурасы <xliff:g id="WIDTH">%1$d</xliff:g>, бийиктиги <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Тушкагаздар"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Тууралоолор"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Администраторуңуз өчүрүп койгон"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Айлантууга уруксат берүү"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Башкы экранды айлантууга уруксат берүү"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Түзмөк айланганда"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Учурдагы дисплей жөндөөсү айлантууга уруксат бербейт"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Белгисиз"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Алып салуу"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Издөө"</string>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 4b43ebd..228bd90 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ພາບພື້ນຫຼັງ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ການຕັ້ງຄ່າ"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"ຖືກປິດການນຳໃຊ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"ອະ​ນຸ​ຍາດ​ການ​ໝຸນ"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"ອະນຸຍາດໃຫ້ໝຸນໜ້າຈໍທຳອິດໄດ້"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"ເມື່ອໝຸນອຸປະກອນ"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"ການຕັ້ງຄ່າສະແດງຜົນປັດຈຸບັນບໍ່ອະນຸຍາດໃຫ້ໝຸນໄດ້"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"​ບໍ່​ຮູ້​ຈັກ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ລຶບ​"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ຊອກຫາ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 61437b6..3796c26 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ekrano fonai"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nustatymai"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Išjungė administratorius"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Leisti kaitaliojimą"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Leisti pasukti pagrindinį ekraną"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kai įrenginys pasukamas"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Naudojant dabartinį pateikties nustatymą neleidžiama pasukti"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Nežinoma"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Pašalinti"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Ieškoti"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 2264675..c592d3b 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fona tapetes"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Iestatījumi"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Atspējojis administrators"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Rotācijas atļauja"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Atļaut sākuma ekrāna pagriešanu"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kad ierīce tiek pagriezta"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Pašreizējā displeja iestatījumā nav atļauta pagriešana."</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Nezināma"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Noņemt"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Meklēt"</string>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index a3b76bb..a691bce 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -42,9 +42,9 @@
     <string name="app_info_drop_target_label" msgid="692894985365717661">"Инф. за апликација"</string>
     <string name="permlab_install_shortcut" msgid="5632423390354674437">"инсталирај кратенки"</string>
     <string name="permdesc_install_shortcut" msgid="923466509822011139">"Овозможува апликацијата да додава кратенки без интервенција на корисникот."</string>
-    <string name="permlab_read_settings" msgid="1941457408239617576">"прочитај подесувања и кратенки на почетна страница"</string>
+    <string name="permlab_read_settings" msgid="1941457408239617576">"чита поставки и кратенки на почетна страница"</string>
     <string name="permdesc_read_settings" msgid="5833423719057558387">"Овозможува апликацијата да ги менува подесувањата и кратенките на почетната страница."</string>
-    <string name="permlab_write_settings" msgid="3574213698004620587">"напиши подесувања и кратенки на почетна страница"</string>
+    <string name="permlab_write_settings" msgid="3574213698004620587">"пишува поставки и кратенки на почетна страница"</string>
     <string name="permdesc_write_settings" msgid="5440712911516509985">"Овозможува апликацијата да ги менува подесувањата и кратенките на почетната страница."</string>
     <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> нема дозвола за телефонски повици"</string>
     <string name="gadget_error_text" msgid="6081085226050792095">"Проблем при вчитувањето на виџетот"</string>
@@ -54,12 +54,12 @@
     <string name="default_scroll_format" msgid="7475544710230993317">"Страница %1$d од %2$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"Екран на почетна страница %1$d од %2$d"</string>
     <string name="workspace_new_page" msgid="257366611030256142">"Нова страница на почетен екран"</string>
-    <string name="first_run_cling_title" msgid="2459738000155917941">"Добредојдовте"</string>
+    <string name="first_run_cling_title" msgid="2459738000155917941">"Добре дојдовте"</string>
     <string name="migration_cling_title" msgid="9181776667882933767">"Копирај икони за апликација"</string>
     <string name="migration_cling_description" msgid="2752413805582227644">"Зачувај икони и папки од твоите стари почетни страни?"</string>
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"КОПИРАЈ ИКОНИ"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"СТАРТУВАЈ ОД ПОЧЕТОК"</string>
-    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Тапети, додатоци и поставки"</string>
+    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Позадини, додатоци и поставки"</string>
     <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Допрете и задржете на заднината за да приспособите"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"СФАТИВ"</string>
     <string name="folder_opened" msgid="94695026776264709">"Отворена е папка, <xliff:g id="WIDTH">%1$d</xliff:g> на <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
@@ -68,11 +68,13 @@
     <string name="folder_closed" msgid="4100806530910930934">"Папката е затворена"</string>
     <string name="folder_renamed" msgid="1794088362165669656">"Папката е преименувана во <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="folder_name_format" msgid="6629239338071103179">"Папка: <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="widget_button_text" msgid="2880537293434387943">"Виџети"</string>
-    <string name="wallpaper_button_text" msgid="8404103075899945851">"Тапети"</string>
+    <string name="widget_button_text" msgid="2880537293434387943">"Додатоци"</string>
+    <string name="wallpaper_button_text" msgid="8404103075899945851">"Позадини"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Поставки"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Оневозможено од администраторот"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Дозволи ротација"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Дозволете ротација на Почетниот екран"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Кога уредот се ротира"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Тековната поставка на Екранот не дозволува ротација"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Непознато"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Отстрани"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Барај"</string>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 7a41dcf..5cfff55 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"വാൾപേപ്പർ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ക്രമീകരണം"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"അഡ്മിൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"തിരിക്കൽ അനുവദിക്കുക"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"ഹോം സ്ക്രീൻ തിരിക്കൽ അനുവദിക്കുക"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"ഉപകരണം തിരിക്കുമ്പോൾ"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"നിലവിലെ ഡിസ്പ്ലേ ക്രമീകരണം തിരിക്കൽ അനുവദിക്കുന്നില്ല"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"അജ്ഞാതം"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"നീക്കംചെയ്യുക"</string>
     <string name="abandoned_search" msgid="891119232568284442">"തിരയുക"</string>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 8309374..a47fcfc 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ханын зураг"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Тохиргоо"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Таны админ идэвхгүй болгосон"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Эргүүлэхийг зөвшөөрөх"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Нүүр дэлгэцийг эргүүлэхийг зөвшөөрөх"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Төхөөрөмжийг эргүүлсэн үед"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Дэлгэцийн одоогийн тохиргоогоор эргүүлэх боломжгүй"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Тодорхойгүй"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Устгах"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Хайх"</string>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index a8ae19b..c14a5d2 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"सेटिंग्ज"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"आपल्या प्रशासकाने अक्षम केले"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"फिरविण्‍यास अनुमती द्या"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"मुख्यस्क्रीन फिरविण्‍यास अनुमती द्या"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"डिव्हाइस फिरविलेले असताना"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"वर्तमान प्रदर्शन सेटिंग फिरविण्यास परवानगी देत नाही"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"काढा"</string>
     <string name="abandoned_search" msgid="891119232568284442">"शोधा"</string>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index e5a15e8..9bb4ea0 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Kertas dinding"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Tetapan"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Dilumpuhkan oleh pentadbir anda"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Benarkan putaran"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Benarkan putaran skrin utama"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Apabila peranti diputar"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Tetapan Paparan semasa tidak membenarkan putaran"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Tidak diketahui"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Alih keluar"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Carian"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index ffee1c0..b9ca0ea 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -24,7 +24,7 @@
     <string name="work_folder_name" msgid="3753320833950115786">"အလုပ်"</string>
     <string name="activity_not_found" msgid="8071924732094499514">"အပ်ပလီကေးရှင်း မထည့်သွင်းထားပါ"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"App လက်လှမ်း မမှီပါ"</string>
-    <string name="safemode_shortcut_error" msgid="9160126848219158407">"ဒေါင်းလုဒ် appကို လုံခြုံရေး မုဒ်ထဲမှာ ပိတ်ထား"</string>
+    <string name="safemode_shortcut_error" msgid="9160126848219158407">"ဒေါင်းလုဒ် အက်ပ်ကို လုံခြုံရေး မုဒ်ထဲမှာ ပိတ်ထား"</string>
     <string name="safemode_widget_error" msgid="4863470563535682004">"လုံခြုံရေး မုဒ်ထဲမှာ ဝီဂျက်များကို ပိတ်ထား"</string>
     <string name="long_press_widget_to_add" msgid="5154837155685183344">"ဝစ်ဂျက်တစ်ခုကို ရွေးချယ်ရန် တို့၍ &amp; ဖိထားပါ"</string>
     <string name="long_accessible_way_to_add" msgid="4289502106628154155">"ဝစ်ဂျက်တစ်ခုကိုရယူရန် သို့မဟုတ် စိတ်ကြိုက်လုပ်ဆောင်မှုများကို အသုံးပြုရန် နှစ်ချက်တို့ပြီး ကိုင်ထားပါ။"</string>
@@ -72,12 +72,14 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"နောက်ခံများ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"အပြင်အဆင်များ"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"သင့်စီမံခန့်ခွဲသူက ပိတ်လိုက်ပါသည်"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"လှည့်ရန် ခွင့်ပြုမည်"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"ပင်မစာမျက်နှာကို လှည့်ခွင့်ပြုပါ"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"စက်ပစ္စည်းကို လှည့်ထားသည့်အခါ"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"လက်ရှိ မြင်ကွင်းဆက်တင်တွင် မြင်ကွင်းကို လှည့်ခွင့်မပေးပါ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"မသိရ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ဖယ်ရှားရန်"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ရှာဖွေရန်"</string>
     <string name="abandoned_promises_title" msgid="7096178467971716750">"App မတပ်ဆင်ရသေးပါ"</string>
-    <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ဤအိုင်ကွန်အတွက် app အားမထည့်သွင်းထားပါ။ You can remove it, or search for the app and install it manually."</string>
+    <string name="abandoned_promise_explanation" msgid="3990027586878167529">"ဤအိုင်ကွန်အတွက် အက်ပ် အားမထည့်သွင်းထားပါ။ You can remove it, or search for the အက်ပ် and install it manually."</string>
     <string name="app_downloading_title" msgid="8336702962104482644">"<xliff:g id="NAME">%1$s</xliff:g> ဒေါင်းလုဒ်လုပ်နေသည်၊ <xliff:g id="PROGRESS">%2$s</xliff:g> ပြီးပါပြီ"</string>
     <string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> ကိုထည့်သွင်းရန်စောင့်နေသည်"</string>
     <string name="action_add_to_workspace" msgid="8902165848117513641">"ပင်မမျက်နှာစာသို့ ထည့်ပါ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index be6b644..e5bd1c1 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Bakgrunner"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Innstillinger"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Administratoren har slått av funksjonen"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Tillat rotasjon"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Tillat rotasjon av startskjermen"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Når enheten roteres"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Med den nåværende skjerminnstillingen støttes ikke rotasjon"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Ukjent"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Fjern"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Søk"</string>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 29db37d..e4d1409 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -54,14 +54,14 @@
     <string name="default_scroll_format" msgid="7475544710230993317">"पृष्ठ %2$d को %1$d"</string>
     <string name="workspace_scroll_format" msgid="8458889198184077399">"गृह स्क्रिन %1$d को %2$d"</string>
     <string name="workspace_new_page" msgid="257366611030256142">"नयाँ गृह स्क्रिन पृष्ठ"</string>
-    <string name="first_run_cling_title" msgid="2459738000155917941">"स्वागतम"</string>
+    <string name="first_run_cling_title" msgid="2459738000155917941">"स्वागतम्"</string>
     <string name="migration_cling_title" msgid="9181776667882933767">"तपाईँको अनुप्रयोग आईकनको प्रतिलिप गर्नुहोस्"</string>
     <string name="migration_cling_description" msgid="2752413805582227644">"आफ्नो पुरानो गृह स्क्रीनबाट अाईकन र फोल्डरहरू आयात गर्नुहोस्?"</string>
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"ICONS प्रतिलिप गर्नुहोस्"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"START FRESH"</string>
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वालपेपरहरू, विजेट; सेटिङहरू"</string>
     <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"अनुकूलन गर्नका लागि पृष्ठभूमिलाई ट्याप गरी थिचिरहनुहोस्"</string>
-    <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"बुझियो"</string>
+    <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"बुँझें"</string>
     <string name="folder_opened" msgid="94695026776264709">"फोल्डर खुल्यो <xliff:g id="WIDTH">%1$d</xliff:g> बाट <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="4625795376335528256">"फोल्डरलाई बन्द गर्न ट्याप गर्नुहोस्"</string>
     <string name="folder_tap_to_rename" msgid="4017685068016979677">"पुनःनामाकरणलाई सुरक्षित गर्न ट्याप गर्नुहोस्"</string>
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"वालपेपरहरु"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"सेटिंङहरू"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"तपाईँको प्रशासकद्वारा असक्षम गरिएको"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"परिक्रमणलाई अनुमति दिनुहोस्"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"गृहस्क्रिन घुम्ने सुविधालाई अनुमति दिनुहोस्"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"यन्त्रलाई घुमाइँदा"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"हालको प्रदर्शन सम्बन्धी सेटिङले घुमाउने सुविधालाई अनुमति दिँदैन"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"अज्ञात"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"हटाउनुहोस्"</string>
     <string name="abandoned_search" msgid="891119232568284442">"खोजी गर्नुहोस्"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 4a22bce..a546a85 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -69,10 +69,12 @@
     <string name="folder_renamed" msgid="1794088362165669656">"De naam van de map is gewijzigd in <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="folder_name_format" msgid="6629239338071103179">"Map: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="widget_button_text" msgid="2880537293434387943">"Widgets"</string>
-    <string name="wallpaper_button_text" msgid="8404103075899945851">"Achtergronden"</string>
+    <string name="wallpaper_button_text" msgid="8404103075899945851">"Achtergrond"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Instellingen"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Uitgeschakeld door je beheerder"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Draaien toestaan"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Draaien van startscherm toestaan"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Wanneer het apparaat wordt gedraaid"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Huidige scherminstelling staat draaien niet toe"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Onbekend"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Verwijderen"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Zoeken"</string>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 5d0ac65..47bb556 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -25,13 +25,13 @@
     <string name="activity_not_found" msgid="8071924732094499514">"ਐਪ ਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
     <string name="activity_not_available" msgid="7456344436509528827">"ਐਪ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="safemode_shortcut_error" msgid="9160126848219158407">"ਡਾਊਨਲੋਡ ਕੀਤਾ ਐਪ ਸੁਰੱਖਿਅਤ ਮੋਡ ਵਿੱਚ ਅਸਮਰਥਿਤ"</string>
-    <string name="safemode_widget_error" msgid="4863470563535682004">"ਵਿਜੇਟਸ ਸੁਰੱਖਿਅਤ ਮੋਡ ਵਿੱਚ ਅਸਮਰਥਿਤ"</string>
+    <string name="safemode_widget_error" msgid="4863470563535682004">"ਵਿਜਿਟ ਸੁਰੱਖਿਅਤ ਮੋਡ ਵਿੱਚ ਅਸਮਰਥਿਤ"</string>
     <string name="long_press_widget_to_add" msgid="5154837155685183344">"ਇੱਕ ਵਿਜਿਟ ਨੂੰ ਚੁਣਨ ਲਈ ਟੈਪ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ।"</string>
     <string name="long_accessible_way_to_add" msgid="4289502106628154155">"ਡਬਲ-ਟੈਪ &amp; ਇੱਕ ਵਿਜੇਟ ਚੁਣਨ ਲਈ ਹੋਲਡ ਕਰੋ ਅਤੇ ਕਸਟਮ ਕਿਰਿਆਵਾਂ ਵਰਤੋ।"</string>
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
     <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"ਐਪਾਂ ਖੋਜੋ…"</string>
     <string name="all_apps_loading_message" msgid="7557140873644765180">"ਐਪਸ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ..."</string>
-    <string name="all_apps_no_search_results" msgid="6332185285860416787">"\"<xliff:g id="QUERY">%1$s</xliff:g>\" ਨਾਲ ਮਿਲਦੀ ਕੋਈ ਵੀ ਐਪਸ ਨਹੀਂ ਲੱਭੀਆਂ"</string>
+    <string name="all_apps_no_search_results" msgid="6332185285860416787">"\"<xliff:g id="QUERY">%1$s</xliff:g>\" ਨਾਲ ਮਿਲਦੀਆਂ ਕੋਈ ਵੀ ਐਪਾਂ ਨਹੀਂ ਮਿਲੀਆਂ"</string>
     <string name="all_apps_search_market_message" msgid="5470761048755751471">"<xliff:g id="QUERY">%1$s</xliff:g> ਤੇ ਜਾਓ"</string>
     <string name="out_of_space" msgid="4691004494942118364">"ਇਸ ਹੋਮ ਸਕ੍ਰੀਨ ਲਈ ਹੋਰ ਖਾਲੀ ਸਥਾਨ ਨਹੀਂ ਹੈ।"</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"ਮਨਪਸੰਦ ਟ੍ਰੇ ਵਿੱਚ ਹੋਰ ਖਾਲੀ ਸਥਾਨ ਨਹੀਂ।"</string>
@@ -48,7 +48,7 @@
     <string name="permdesc_write_settings" msgid="5440712911516509985">"ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ੌਰਟਕਟ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
     <string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਨੂੰ ਫੋਨ ਕਾਲਾਂ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ"</string>
     <string name="gadget_error_text" msgid="6081085226050792095">"ਵਿਜੇਟ ਲੋਡ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ"</string>
-    <string name="gadget_setup_text" msgid="8274003207686040488">"ਸੈਟਅਪ"</string>
+    <string name="gadget_setup_text" msgid="8274003207686040488">"ਸਥਾਪਤ ਕਰੋ"</string>
     <string name="uninstall_system_app_text" msgid="4172046090762920660">"ਇਹ ਇੱਕ ਸਿਸਟਮ ਐਪ ਹੈ ਅਤੇ ਇਸਨੂੰ ਅਣਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।"</string>
     <string name="folder_hint_text" msgid="6617836969016293992">"ਬਿਨਾਂ ਨਾਮ ਦਿੱਤਾ ਫੋਲਡਰ"</string>
     <string name="default_scroll_format" msgid="7475544710230993317">"ਸਫ਼ਾ %2$d ਦਾ %1$d"</string>
@@ -59,20 +59,22 @@
     <string name="migration_cling_description" msgid="2752413805582227644">"ਕੀ ਆਪਣੀਆਂ ਪੁਰਾਣੀਆਂ ਹੋਮ ਸਕ੍ਰੀਨਾਂ ਤੋਂ ਆਈਕਨਾਂ ਅਤੇ ਫੋਲਡਰ ਆਯਾਤ ਕਰਨੇ ਹਨ?"</string>
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"ਆਈਕਨਾਂ ਨੂੰ ਕਾਪੀ ਕਰੋ"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"ਤਾਜ਼ਾ ਸ਼ੁਰੂ ਕਰੋ"</string>
-    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ਵਾਲਪੇਪਰ, ਵਿਜੇਟ, &amp; ਸੈਟਿੰਗਾਂ"</string>
+    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ਵਾਲਪੇਪਰ, ਵਿਜਿਟ, ਅਤੇ ਸੈਟਿੰਗਾਂ"</string>
     <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"ਬੈਕਗ੍ਰਾਊਂਡ ਨੂੰ ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ"</string>
-    <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ਸਮਝ ਗਿਆ"</string>
+    <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ਸਮਝ ਲਿਆ"</string>
     <string name="folder_opened" msgid="94695026776264709">"ਫੋਲਡਰ ਖੋਲ੍ਹਿਆ, <xliff:g id="WIDTH">%1$d</xliff:g> ਬਾਇ <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="4625795376335528256">"ਫੋਲਡਰ ਬੰਦ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="folder_tap_to_rename" msgid="4017685068016979677">"ਬਦਲੇ ਗਏ ਨਾਮ ਨੂੰ ਰੱਖਿਅਤ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="folder_closed" msgid="4100806530910930934">"ਫੋਲਡਰ ਬੰਦ ਕੀਤਾ"</string>
     <string name="folder_renamed" msgid="1794088362165669656">"ਫੋਲਡਰ ਨੂੰ <xliff:g id="NAME">%1$s</xliff:g> ਮੁੜ ਨਾਮ ਦਿੱਤਾ ਗਿਆ"</string>
     <string name="folder_name_format" msgid="6629239338071103179">"ਫੋਲਡਰ: <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="widget_button_text" msgid="2880537293434387943">"ਵਿਜੇਟਸ"</string>
+    <string name="widget_button_text" msgid="2880537293434387943">"ਵਿਜਿਟ"</string>
     <string name="wallpaper_button_text" msgid="8404103075899945851">"ਵਾਲਪੇਪਰ"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਦੁਆਰਾ ਅਯੋਗ ਬਣਾਈ ਗਈ"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"ਰੋਟੇਸ਼ਨ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"ਮੁੱਖ ਸਕ੍ਰੀਨ ਨੂੰ ਘੁੰਮਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"ਜਦੋਂ ਡੀਵਾਈਸ ਘੁੰਮਾਈ ਜਾਂਦੀ ਹੈ"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"ਵਰਤਮਾਨ ਡਿਸਪਲੇ ਸੈਟਿੰਗ ਘੁੰਮਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦੀ ਹੈ"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"ਅਗਿਆਤ"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ਹਟਾਓ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ਖੋਜੋ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index ad9fbf4..54d7780 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ustawienia"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Funkcja wyłączona przez administratora"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Zezwól na obrót"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Zezwalaj na obrót ekranu głównego"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Podczas obrotu urządzenia"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Obecne ustawienia wyświetlania nie pozwalają na obrót ekranu"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Brak informacji"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Usuń"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Szukaj"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index fd6ddee..dddf2dc 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Imagens de fundo"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Definições"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Desativada pelo administrador"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permitir rotação"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Permitir rotação do ecrã principal"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Quando o dispositivo é rodado"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"A definição de visualização atual não permite a rotação"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconhecido"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remover"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Pesquisar"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index e542418..f821b21 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Planos de fundo"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Configurações"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Desativado pelo administrador"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permitir rotação"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Permitir rotação da tela inicial"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Quando o dispositivo for girado"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"A configuração atual de exibição não permite rotação"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Desconhecido"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Remover"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Pesquisar"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index eb54ae7..6be7727 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Imagini de fundal"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Setări"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Dezactivată de administrator"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Permiteți rotirea"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Permiteți rotirea ecranului de pornire"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Când dispozitivul este rotit"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Setarea actuală a afișajului nu permite rotirea"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Necunoscut"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminați"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Căutați"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index f73cdf2..9349c0b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -60,7 +60,7 @@
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"КОПИРОВАТЬ ЗНАЧКИ"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"ИСПОЛЬЗОВАТЬ СТАНДАРТНЫЙ МАКЕТ"</string>
     <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Обои, виджеты и настройки"</string>
-    <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Чтобы выполнить настройку, коснитесь фона и удерживайте его"</string>
+    <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Чтобы выполнить настройку, коснитесь фона и удерживайте его."</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ОК"</string>
     <string name="folder_opened" msgid="94695026776264709">"Папка открыта, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
     <string name="folder_tap_to_close" msgid="4625795376335528256">"Нажмите, чтобы закрыть папку"</string>
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Обои"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Настройки"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Функция отключена администратором"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Разрешить автоповорот"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Разрешить поворачивать главный экран"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"При повороте устройства"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"В настройках отключен поворот экрана"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Неизвестно"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Удалить"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Найти"</string>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 89fb60f..d13ae32 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"වෝල්පේපර"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"සැකසීම්"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"ඔබගේ පරිපාලක විසින් අබල කරන ලදී"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"කරකැවීමට ඉඩ දෙන්න"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"මුල් පිටු තිරය කරකැවීමට ඉඩ දෙන්න"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"උපංගය කරකැවූ විට"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"වත්මන් සංදර්ශක සැකසීම් කරකැවීමට සහාය නොදක්වයි"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"නොදනී"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ඉවත් කරන්න"</string>
     <string name="abandoned_search" msgid="891119232568284442">"සොයන්න"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index de017dc..4f92d1e 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -59,7 +59,7 @@
     <string name="migration_cling_description" msgid="2752413805582227644">"Chcete importovať ikony a priečinky zo starých plôch?"</string>
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"SKOPÍROVAŤ IKONY"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"ZAČAŤ ODZNOVA"</string>
-    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Pozadia, miniaplikácie a nastavenia"</string>
+    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Tapety, miniaplikácie a nastavenia"</string>
     <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Pozadie prispôsobíte klepnutím a podržaním"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"DOBRE"</string>
     <string name="folder_opened" msgid="94695026776264709">"Otvorený priečinok, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Tapety"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nastavenia"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Zakázané vaším správcom"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Povoliť otáčanie"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Povoliť otáčanie plochy"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Pri otočení zariadenia"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Aktuálne nastavenie obrazovky nepovoľuje otáčanie"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Neznáme"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstrániť"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Vyhľadať"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index c386458..27412db 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Ozadja"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Nastavitve"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Onemogočil skrbnik."</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Omogočanje zasuka"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Omogočanje sukanja začetnega zaslona"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Ko se naprava zasuka"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Trenutna nastavitev zaslona ne dovoljuje sukanja"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Neznano"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Odstrani"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Iskanje"</string>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index ccd2c9c..4ee58f0 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Imazhet e sfondit"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Cilësimet"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Çaktivizuar nga administratori"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Lejo rotacionin"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Lejo rrotullimin e ekranit kryesor"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kur pajisja rrotullohet"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Cilësimi aktuali i afishimit nuk lejon rrotullimin"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"I panjohur"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Hiq"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Kërko"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 82f44b2..c174ace 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Позадине"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Подешавања"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Администратор је онемогућио"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Дозволи ротацију"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Дозволи ротацију почетног екрана"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Када се уређај ротира"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Актуелно подешавање приказа не дозвољава ротацију"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Непознато"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Уклони"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Претражи"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 79e8f42..3019603 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Bakgrunder"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Inställningar"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Inaktiverat av administratören"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Tillåt rotering"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Tillåt rotering av startskärmen"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"När enheten roterar"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Rotering tillåts inte i de nuvarande skärminställningarna"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Okänt"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Ta bort"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Sök"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index a74fb39..5b2eb27 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -74,7 +74,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Mandhari"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Mipangilio"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Imezimwa na msimamizi wako"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Ruhusu kuzungusha"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Ruhusu kuzungusha skrini ya kwanza"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kifaa kinapozungushwa"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Mipangilio ya sasa ya sehemu ya Onyesho hairuhusu kuzungusha"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Yasiyojulikana"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Ondoa"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Tafuta"</string>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
index be16c89..1f97d24 100644
--- a/res/values-sw600dp-land/dimens.xml
+++ b/res/values-sw600dp-land/dimens.xml
@@ -15,10 +15,6 @@
 -->
 
 <resources>
-<!-- QSB -->
-    <dimen name="toolbar_button_vertical_padding">12dip</dimen>
-    <dimen name="toolbar_button_horizontal_padding">20dip</dimen>
-
 <!-- Container -->
     <dimen name="container_max_width">736dp</dimen>
 </resources>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index b9e28a9..789f453 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -22,10 +22,6 @@
     <dimen name="all_apps_empty_search_message_top_offset">64dp</dimen>
     <dimen name="all_apps_empty_search_bg_top_offset">180dp</dimen>
 
-<!-- QSB -->
-    <dimen name="toolbar_button_vertical_padding">8dip</dimen>
-    <dimen name="toolbar_button_horizontal_padding">8dip</dimen>
-
 <!-- Cling -->
     <dimen name="cling_migration_content_margin">96dp</dimen>
     <dimen name="cling_migration_content_width">320dp</dimen>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index ecd4cb0..6bb0a10 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"வால்பேப்பர்கள்"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"அமைப்பு"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"உங்கள் நிர்வாகி முடக்கியுள்ளார்"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"சுழற்ற அனுமதி"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"முகப்புத் திரை சுழற்சியை அனுமதி"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"சாதனத்தைச் சுழற்றும் போது"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"தற்போதைய திரை அமைப்பு சுழற்றுவதை அனுமதிக்கவில்லை"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"தெரியாதது"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"அகற்று"</string>
     <string name="abandoned_search" msgid="891119232568284442">"தேடு"</string>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 402c261..82a772e 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"వాల్‌పేపర్‌లు"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"సెట్టింగ్‌లు"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"మీ నిర్వాహకులు నిలిపివేసారు"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"భ్రమణాన్ని అనుమతించండి"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"హోమ్‌స్క్రీన్ భ్రమణాన్ని అనుమతించండి"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"పరికరాన్ని తిప్పినప్పుడు"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"ప్రస్తుత డిస్‌ప్లే సెట్టింగ్ భ్రమణాన్ని అనుమతించలేదు"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"తెలియదు"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"తీసివేయి"</string>
     <string name="abandoned_search" msgid="891119232568284442">"శోధించు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 292a95b..e22ebf1 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"วอลเปเปอร์"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"การตั้งค่า"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"ปิดใช้โดยผู้ดูแลระบบ"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"อนุญาตให้ใช้การหมุน"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"อนุญาตให้หมุนหน้าจอหลัก"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"เมื่อหมุนอุปกรณ์"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"การตั้งค่าการแสดงผลปัจจุบันไม่อนุญาตให้มีการหมุน"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"ไม่รู้จัก"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ลบ"</string>
     <string name="abandoned_search" msgid="891119232568284442">"ค้นหา"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index d7da5dd..ed0206e 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Mga Wallpaper"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Mga Setting"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Na-disable ng iyong admin"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Payagan ang pag-rotate"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Payagan ang pag-rotate ng homescreen"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Kapag na-rotate ang device"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Hindi pinahihintulutan ng kasalukuyang setting ng Display ang pag-rotate"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Hindi kilala"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Alisin"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Maghanap"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 44feebc..94c38d9 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Duvar Kağıtları"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Ayarlar"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Yöneticiniz tarafından devre dışı bırakıldı"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Döndürmeye izin ver"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Ana ekranı döndürmeye izin ver"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Cihaz döndürüldüğünde"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Mevcut Ekran ayarı, döndürmeye izin vermiyor"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Bilinmiyor"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Kaldır"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Ara"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index b5d81ee..1fc74b6 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Фонові малюнки"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Налаштування"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Вимкнув адміністратор"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Дозволити обертання"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Дозволити обертання головного екрана"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Коли пристрій обертається"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Поточні налаштування дисплея не підтримують обертання"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Невідомо"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Видалити"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Шукати"</string>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index bbf9d87..c6e6cfc 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"وال پیپرز"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"ترتیبات"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"آپ کے منتظم کی طرف سے غیر فعال کر دیا گیا"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"گردش کی اجازت دیں"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"ہوم اسکرین گھمانے کی اجازت دیں"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"جب آلہ گھمایا جائے"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"موجودہ ڈسپلے ترتیب گھمانے کی اجازت نہیں دیتی"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"نامعلوم"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"ہٹائیں"</string>
     <string name="abandoned_search" msgid="891119232568284442">"تلاش کریں"</string>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 0ae7d7a..859ff12 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -29,14 +29,14 @@
     <string name="long_press_widget_to_add" msgid="5154837155685183344">"Vidjetni tanlab olish uchun bosib turing."</string>
     <string name="long_accessible_way_to_add" msgid="4289502106628154155">"Ikki marta bosib va bosib turgan holatda vidjetni tanlang yoki maxsus amaldan foydalaning."</string>
     <string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
-    <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"Ilovalarni qidirish…"</string>
+    <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"Ilovalar ichidan qidirish…"</string>
     <string name="all_apps_loading_message" msgid="7557140873644765180">"Ilovalar yuklanmoqda…"</string>
-    <string name="all_apps_no_search_results" msgid="6332185285860416787">"“<xliff:g id="QUERY">%1$s</xliff:g>” bilan mos hech qanday ilova topilmadi"</string>
-    <string name="all_apps_search_market_message" msgid="5470761048755751471">"O‘tish: <xliff:g id="QUERY">%1$s</xliff:g>"</string>
+    <string name="all_apps_no_search_results" msgid="6332185285860416787">"“<xliff:g id="QUERY">%1$s</xliff:g>” so‘rovi bo‘yicha hech narsa topilmadi"</string>
+    <string name="all_apps_search_market_message" msgid="5470761048755751471">"<xliff:g id="QUERY">%1$s</xliff:g>"</string>
     <string name="out_of_space" msgid="4691004494942118364">"Uy ekranida bitta ham xona yo‘q."</string>
     <string name="hotseat_out_of_space" msgid="7448809638125333693">"Ajratilganlarda birorta ham xona yo‘q"</string>
     <string name="all_apps_button_label" msgid="9110807029020582876">"Ilovalar"</string>
-    <string name="all_apps_home_button_label" msgid="252062713717058851">"Uy"</string>
+    <string name="all_apps_home_button_label" msgid="252062713717058851">"Bosh sahifa"</string>
     <string name="remove_drop_target_label" msgid="7812859488053230776">"Olib tashlash"</string>
     <string name="uninstall_drop_target_label" msgid="4722034217958379417">"O‘chirib tashlash"</string>
     <string name="app_info_drop_target_label" msgid="692894985365717661">"Ilova haqida"</string>
@@ -59,7 +59,7 @@
     <string name="migration_cling_description" msgid="2752413805582227644">"Eski \"Uy\" ekranlaringizdan jildlar va nishonchalar import qilinsinmi?"</string>
     <string name="migration_cling_copy_apps" msgid="946331230090919440">"NISHONCHALARNI NUSXALASH"</string>
     <string name="migration_cling_use_default" msgid="2626475813981258626">"YANGIDAN BOSHLASH"</string>
-    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Orqa fon rasmlari, vidjet va sozlamalar"</string>
+    <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Fon rasmlari, vidjet va sozlamalar"</string>
     <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Orqa fonni moslashtirish uchun uni bosib turing"</string>
     <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"OK"</string>
     <string name="folder_opened" msgid="94695026776264709">"Jild ochildi, <xliff:g id="WIDTH">%1$d</xliff:g> ga <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Fon rasmlari"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Sozlamalar"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Administrator tomonidan o‘chirilgan"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Aylanishga ruxsat berish"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Asosiy ekranni aylantirishga ruxsat berish"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Qurilma aylanganda"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Ekran sozlamalariga ko‘ra uni aylantirib bo‘lmaydi"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Noma’lum"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"O‘chirish"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Qidirish"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b3e6234..5da05a1 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Hình nền"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Cài đặt"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Bị tắt bởi quản trị viên của bạn"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Cho phép xoay"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Cho phép xoay màn hình chính"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Khi xoay thiết bị"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Cài đặt Hiển thị hiện tại không cho phép xoay"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Không xác định"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Xóa"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Tìm kiếm"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 5911c12..8f269ed 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"壁纸"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"设置"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"已被您的管理员停用"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"允许旋转"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"允许旋转主屏幕"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"设备旋转时"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"当前的显示设置不允许旋转设备"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"未知"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"搜索"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 63e853b..a8bd7bb 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"桌布"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"設定"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"已由您的管理員停用"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"允許旋轉"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"允許主畫面旋轉"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"當裝置旋轉時"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"「目前顯示屏」設定不允許旋轉"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"搜尋"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 2c6046f..6d66f18 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"桌布"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"設定"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"已由您的管理員停用"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"允許輪播"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"允許旋轉主畫面"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"當裝置旋轉時"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"目前的顯示設定不允許旋轉畫面"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"不明"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"移除"</string>
     <string name="abandoned_search" msgid="891119232568284442">"搜尋"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index eeffe89..2184831 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -72,7 +72,9 @@
     <string name="wallpaper_button_text" msgid="8404103075899945851">"Izithombe zangemuva"</string>
     <string name="settings_button_text" msgid="8119458837558863227">"Izilungiselelo"</string>
     <string name="msg_disabled_by_admin" msgid="6898038085516271325">"Kukhutshazwe umlawuli wakho"</string>
-    <string name="allow_rotation_title" msgid="2118706734511831751">"Vumela ukuphenduka"</string>
+    <string name="allow_rotation_title" msgid="3132336367556833843">"Vumela ukuzungezisa kwesikrini sasekhaya"</string>
+    <string name="allow_rotation_desc" msgid="7635719920854330492">"Uma idivayisi izungeziswa"</string>
+    <string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"Isilungiselelo sesiboniso samanje asivumeli ukuzungezisa"</string>
     <string name="package_state_unknown" msgid="7592128424511031410">"Akwaziwa"</string>
     <string name="abandoned_clean_this" msgid="7610119707847920412">"Susa"</string>
     <string name="abandoned_search" msgid="891119232568284442">"Sesha"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 88aa7fd..97f75ac 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -9,9 +9,6 @@
     <bool name="is_large_tablet">false</bool>
     <bool name="allow_rotation">false</bool>
 
-    <!-- Max number of page indicators to show -->
-    <integer name="config_maxNumberOfPageIndicatorsToShow">21</integer>
-
     <!-- App data backup and restore. To enble backup, register with an android backup service.
          http://developer.android.com/guide/topics/data/backup.html#BackupKey -->
     <bool name="enable_backup">false</bool>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 6fac31e1..7510fafd 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -50,10 +50,6 @@
     <dimen name="cling_migration_content_margin">16dp</dimen>
     <dimen name="cling_migration_content_width">280dp</dimen>
 
-<!-- QSB -->
-    <dimen name="toolbar_button_vertical_padding">4dip</dimen>
-    <dimen name="toolbar_button_horizontal_padding">12dip</dimen>
-
 <!-- Container -->
     <!-- Note: This needs to match the fixed insets for the search box. -->
     <dimen name="container_bounds_inset">8dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4c9d0b5..e675a92 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -21,9 +21,6 @@
     <!-- General -->
     <skip />
 
-    <!-- URI used to import old favorites. [DO NOT TRANSLATE] -->
-    <string name="old_launcher_provider_uri" translatable="false">content://com.android.launcher2.settings/favorites?notify=true</string>
-
     <!-- Application name -->
     <string name="app_name">Launcher3</string>
     <!-- Default folder name -->
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 88e1532..ec09cf1 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -152,8 +152,6 @@
     static final boolean DEBUG_RESUME_TIME = false;
     static final boolean DEBUG_LOGGING = false;
 
-    static final boolean ENABLE_DEBUG_INTENTS = false; // allow DebugIntents to run
-
     private static final int REQUEST_CREATE_SHORTCUT = 1;
     private static final int REQUEST_CREATE_APPWIDGET = 5;
     private static final int REQUEST_PICK_APPWIDGET = 9;
@@ -201,9 +199,6 @@
     private static final String QSB_WIDGET_ID = "qsb_widget_id";
     private static final String QSB_WIDGET_PROVIDER = "qsb_widget_provider";
 
-    public static final String USER_HAS_MIGRATED = "launcher.user_migrated_from_old_data";
-    private static final String MIGRATE_AUTHORITY = "com.android.launcher2.settings";
-
     /** The different states that Launcher can be in. */
     enum State { NONE, WORKSPACE, WORKSPACE_SPRING_LOADED, APPS, APPS_SPRING_LOADED,
         WIDGETS, WIDGETS_SPRING_LOADED }
@@ -1621,15 +1616,6 @@
             } else if (Intent.ACTION_USER_PRESENT.equals(action)) {
                 mUserPresent = true;
                 updateAutoAdvanceState();
-            } else if (ENABLE_DEBUG_INTENTS && DebugIntents.DELETE_DATABASE.equals(action)) {
-                mModel.resetLoadedState(false, true);
-                mModel.startLoader(PagedView.INVALID_RESTORE_PAGE,
-                        LauncherModel.LOADER_FLAG_CLEAR_WORKSPACE);
-            } else if (ENABLE_DEBUG_INTENTS && DebugIntents.MIGRATE_DATABASE.equals(action)) {
-                mModel.resetLoadedState(false, true);
-                mModel.startLoader(PagedView.INVALID_RESTORE_PAGE,
-                        LauncherModel.LOADER_FLAG_CLEAR_WORKSPACE
-                                | LauncherModel.LOADER_FLAG_MIGRATE_SHORTCUTS);
             }
         }
     };
@@ -1642,11 +1628,6 @@
         final IntentFilter filter = new IntentFilter();
         filter.addAction(Intent.ACTION_SCREEN_OFF);
         filter.addAction(Intent.ACTION_USER_PRESENT);
-        // For handling managed profiles
-        if (ENABLE_DEBUG_INTENTS) {
-            filter.addAction(DebugIntents.DELETE_DATABASE);
-            filter.addAction(DebugIntents.MIGRATE_DATABASE);
-        }
         registerReceiver(mReceiver, filter);
         FirstFrameAnimatorHelper.initializeDrawListener(getWindow().getDecorView());
         mAttached = true;
@@ -3552,7 +3533,12 @@
             if (widgetId != -1) {
                 mQsb = mAppWidgetHost.createView(this, widgetId, searchProvider);
                 mQsb.setId(R.id.qsb_widget);
-                mQsb.updateAppWidgetOptions(opts);
+                if (!Utilities.containsAll(
+                        AppWidgetManager.getInstance(this).getAppWidgetOptions(widgetId), opts)) {
+                    // Launcher should not be updating the options often.
+                    FileLog.d(TAG, "Options for QSB were not same");
+                    mQsb.updateAppWidgetOptions(opts);
+                }
                 mQsb.setPadding(0, 0, 0, 0);
                 mSearchDropTargetBar.addView(mQsb);
                 mSearchDropTargetBar.setQsbSearchBar(mQsb);
@@ -4511,43 +4497,10 @@
         LauncherClings launcherClings = new LauncherClings(this);
         if (launcherClings.shouldShowFirstRunOrMigrationClings()) {
             mClings = launcherClings;
-            if (canMigrateFromOldLauncherDb()) {
-                launcherClings.showMigrationCling();
-            } else {
-                launcherClings.showLongPressCling(true);
-            }
+            launcherClings.showLongPressCling(true);
         }
     }
 
-    private boolean canMigrateFromOldLauncherDb() {
-        // Return true if launcher was not preinstalled and and old content provider exists.
-        return ((getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) == 0) &&
-                providerExists(MIGRATE_AUTHORITY) &&
-                providerExists(Uri.parse(getString(R.string.old_launcher_provider_uri)).getAuthority());
-
-    }
-
-    private boolean providerExists(String authority) {
-        return getPackageManager().resolveContentProvider(authority, 0) != null;
-    }
-
-
-    void showWorkspaceSearchAndHotseat() {
-        if (mWorkspace != null) mWorkspace.setAlpha(1f);
-        if (mHotseat != null) mHotseat.setAlpha(1f);
-        if (mPageIndicator != null) mPageIndicator.setAlpha(1f);
-        if (mSearchDropTargetBar != null) mSearchDropTargetBar.animateToState(
-                SearchDropTargetBar.State.SEARCH_BAR, 0);
-    }
-
-    void hideWorkspaceSearchAndHotseat() {
-        if (mWorkspace != null) mWorkspace.setAlpha(0f);
-        if (mHotseat != null) mHotseat.setAlpha(0f);
-        if (mPageIndicator != null) mPageIndicator.setAlpha(0f);
-        if (mSearchDropTargetBar != null) mSearchDropTargetBar.animateToState(
-                SearchDropTargetBar.State.INVISIBLE, 0);
-    }
-
     // TODO: These method should be a part of LauncherSearchCallback
     @TargetApi(Build.VERSION_CODES.LOLLIPOP)
     public ItemInfo createAppDragInfo(Intent appLaunchIntent) {
@@ -4701,8 +4654,3 @@
         }
     }
 }
-
-interface DebugIntents {
-    static final String DELETE_DATABASE = "com.android.launcher3.action.DELETE_DATABASE";
-    static final String MIGRATE_DATABASE = "com.android.launcher3.action.MIGRATE_DATABASE";
-}
diff --git a/src/com/android/launcher3/LauncherClings.java b/src/com/android/launcher3/LauncherClings.java
index 1cfa3f7..c44969f 100644
--- a/src/com/android/launcher3/LauncherClings.java
+++ b/src/com/android/launcher3/LauncherClings.java
@@ -21,10 +21,7 @@
 import android.annotation.TargetApi;
 import android.app.ActivityManager;
 import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.pm.ApplicationInfo;
 import android.graphics.drawable.Drawable;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.UserManager;
@@ -42,7 +39,6 @@
 import com.android.launcher3.util.Thunk;
 
 class LauncherClings implements OnClickListener, OnKeyListener {
-    private static final String MIGRATION_CLING_DISMISSED_KEY = "cling_gel.migration.dismissed";
     private static final String WORKSPACE_CLING_DISMISSED_KEY = "cling_gel.workspace.dismissed";
 
     private static final String TAG_CROP_TOP_AND_SIDES = "crop_bg_top_and_sides";
@@ -62,24 +58,7 @@
 
     @Override
     public void onClick(View v) {
-        int id = v.getId();
-        if (id == R.id.cling_dismiss_migration_use_default) {
-            // Disable the migration cling
-            dismissMigrationCling();
-        } else if (id == R.id.cling_dismiss_migration_copy_apps) {
-            // Copy the shortcuts from the old database
-            LauncherModel model = mLauncher.getModel();
-            model.resetLoadedState(false, true);
-            model.startLoader(PagedView.INVALID_RESTORE_PAGE,
-                    LauncherModel.LOADER_FLAG_CLEAR_WORKSPACE
-                            | LauncherModel.LOADER_FLAG_MIGRATE_SHORTCUTS);
-            // Set the flag to skip the folder cling
-            SharedPreferences.Editor editor = Utilities.getPrefs(mLauncher).edit();
-            editor.putBoolean(Launcher.USER_HAS_MIGRATED, true);
-            editor.apply();
-            // Disable the migration cling
-            dismissMigrationCling();
-        } else if (id == R.id.cling_dismiss_longpress_info) {
+        if (v.getId() == R.id.cling_dismiss_longpress_info) {
             dismissLongPressCling();
         }
     }
@@ -98,40 +77,6 @@
         return false;
     }
 
-    /**
-     * Shows the migration cling.
-     *
-     * This flow is mutually exclusive with showFirstRunCling, and only runs if this Launcher
-     * package was not preinstalled and there exists a db to migrate from.
-     */
-    public void showMigrationCling() {
-        mLauncher.onLauncherClingShown();
-        mIsVisible = true;
-        mLauncher.hideWorkspaceSearchAndHotseat();
-
-        ViewGroup root = (ViewGroup) mLauncher.findViewById(R.id.launcher);
-        View inflated = mInflater.inflate(R.layout.migration_cling, root);
-        inflated.findViewById(R.id.cling_dismiss_migration_copy_apps).setOnClickListener(this);
-        inflated.findViewById(R.id.cling_dismiss_migration_use_default).setOnClickListener(this);
-    }
-
-    private void dismissMigrationCling() {
-        mLauncher.showWorkspaceSearchAndHotseat();
-        Runnable dismissCb = new Runnable() {
-            public void run() {
-                Runnable cb = new Runnable() {
-                    public void run() {
-                        // Show the longpress cling next
-                        showLongPressCling(false);
-                    }
-                };
-                dismissCling(mLauncher.findViewById(R.id.migration_cling), cb,
-                        MIGRATION_CLING_DISMISSED_KEY, DISMISS_CLING_DURATION);
-            }
-        };
-        mLauncher.getWorkspace().post(dismissCb);
-    }
-
     public void showLongPressCling(boolean showWelcome) {
         mIsVisible = true;
         ViewGroup root = (ViewGroup) mLauncher.findViewById(R.id.launcher);
@@ -197,44 +142,28 @@
     @Thunk void dismissLongPressCling() {
         Runnable dismissCb = new Runnable() {
             public void run() {
-                Runnable cb = new Runnable() {
-                    public void run() {
-                        mLauncher.onLauncherClingDismissed();
-                    }
-                };
-                dismissCling(mLauncher.findViewById(R.id.longpress_cling), cb,
-                        WORKSPACE_CLING_DISMISSED_KEY, DISMISS_CLING_DURATION);
+                final View cling = mLauncher.findViewById(R.id.longpress_cling);
+                // To catch cases where siblings of top-level views are made invisible, just check whether
+                // the cling is directly set to GONE before dismissing it.
+                if (cling != null && cling.getVisibility() != View.GONE) {
+                    final Runnable cleanUpClingCb = new Runnable() {
+                        public void run() {
+                            cling.setVisibility(View.GONE);
+                            mLauncher.getSharedPrefs().edit()
+                                    .putBoolean(WORKSPACE_CLING_DISMISSED_KEY, true)
+                                    .apply();
+                            mIsVisible = false;
+                            mLauncher.onLauncherClingDismissed();
+                        }
+                    };
+                    cling.animate().alpha(0).setDuration(DISMISS_CLING_DURATION)
+                            .withEndAction(cleanUpClingCb);
+                }
             }
         };
         mLauncher.getWorkspace().post(dismissCb);
     }
 
-    /** Hides the specified Cling */
-    @Thunk void dismissCling(final View cling, final Runnable postAnimationCb,
-                              final String flag, int duration) {
-        // To catch cases where siblings of top-level views are made invisible, just check whether
-        // the cling is directly set to GONE before dismissing it.
-        if (cling != null && cling.getVisibility() != View.GONE) {
-            final Runnable cleanUpClingCb = new Runnable() {
-                public void run() {
-                    cling.setVisibility(View.GONE);
-                    mLauncher.getSharedPrefs().edit()
-                        .putBoolean(flag, true)
-                        .apply();
-                    mIsVisible = false;
-                    if (postAnimationCb != null) {
-                        postAnimationCb.run();
-                    }
-                }
-            };
-            if (duration <= 0) {
-                cleanUpClingCb.run();
-            } else {
-                cling.animate().alpha(0).setDuration(duration).withEndAction(cleanUpClingCb);
-            }
-        }
-    }
-
     public boolean isVisible() {
         return mIsVisible;
     }
@@ -269,10 +198,8 @@
     }
 
     public boolean shouldShowFirstRunOrMigrationClings() {
-        SharedPreferences sharedPrefs = mLauncher.getSharedPrefs();
         return areClingsEnabled() &&
-            !sharedPrefs.getBoolean(WORKSPACE_CLING_DISMISSED_KEY, false) &&
-            !sharedPrefs.getBoolean(MIGRATION_CLING_DISMISSED_KEY, false);
+            !mLauncher.getSharedPrefs().getBoolean(WORKSPACE_CLING_DISMISSED_KEY, false);
     }
 
     public static void markFirstRunClingDismissed(Context ctx) {
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index fec96ca..f9cb9ed 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -97,10 +97,6 @@
 
     static final String TAG = "Launcher.Model";
 
-    public static final int LOADER_FLAG_NONE = 0;
-    public static final int LOADER_FLAG_CLEAR_WORKSPACE = 1 << 0;
-    public static final int LOADER_FLAG_MIGRATE_SHORTCUTS = 1 << 1;
-
     private static final int ITEMS_CHUNK = 6; // batch size for the workspace icons
     private static final long INVALID_SCREEN_ID = -1L;
 
@@ -1221,10 +1217,6 @@
     }
 
     public void startLoader(int synchronousBindPage) {
-        startLoader(synchronousBindPage, LOADER_FLAG_NONE);
-    }
-
-    public void startLoader(int synchronousBindPage, int loadFlags) {
         // Enable queue before starting loader. It will get disabled in Launcher#finishBindingItems
         InstallShortcutReceiver.enableInstallQueue();
         synchronized (mLock) {
@@ -1240,7 +1232,7 @@
 
                 // If there is already one running, tell it to stop.
                 stopLoaderLocked();
-                mLoaderTask = new LoaderTask(mApp.getContext(), loadFlags, synchronousBindPage);
+                mLoaderTask = new LoaderTask(mApp.getContext(), synchronousBindPage);
                 if (synchronousBindPage != PagedView.INVALID_RESTORE_PAGE
                         && mAllAppsLoaded && mWorkspaceLoaded && !mIsLoaderTaskRunning) {
                     mLoaderTask.runBindSynchronousPage(synchronousBindPage);
@@ -1299,11 +1291,9 @@
         @Thunk boolean mIsLoadingAndBindingWorkspace;
         private boolean mStopped;
         @Thunk boolean mLoadAndBindStepFinished;
-        private int mFlags;
 
-        LoaderTask(Context context, int flags, int pageToBindFirst) {
+        LoaderTask(Context context, int pageToBindFirst) {
             mContext = context;
-            mFlags = flags;
             mPageToBindFirst = pageToBindFirst;
         }
 
@@ -1599,29 +1589,22 @@
             int countX = profile.numColumns;
             int countY = profile.numRows;
 
+            boolean clearDb = false;
             if (GridSizeMigrationTask.ENABLED &&
                     !GridSizeMigrationTask.migrateGridIfNeeded(mContext)) {
                 // Migration failed. Clear workspace.
-                mFlags = mFlags | LOADER_FLAG_CLEAR_WORKSPACE;
+                clearDb = true;
             }
 
-            if ((mFlags & LOADER_FLAG_CLEAR_WORKSPACE) != 0) {
+            if (clearDb) {
                 Log.d(TAG, "loadWorkspace: resetting launcher database");
                 LauncherSettings.Settings.call(contentResolver,
                         LauncherSettings.Settings.METHOD_DELETE_DB);
             }
 
-            if ((mFlags & LOADER_FLAG_MIGRATE_SHORTCUTS) != 0) {
-                // append the user's Launcher2 shortcuts
-                Log.d(TAG, "loadWorkspace: migrating from launcher2");
-                LauncherSettings.Settings.call(contentResolver,
-                        LauncherSettings.Settings.METHOD_MIGRATE_LAUNCHER2_SHORTCUTS);
-            } else {
-                // Make sure the default workspace is loaded
-                Log.d(TAG, "loadWorkspace: loading default favorites");
-                LauncherSettings.Settings.call(contentResolver,
-                        LauncherSettings.Settings.METHOD_LOAD_DEFAULT_FAVORITES);
-            }
+            Log.d(TAG, "loadWorkspace: loading default favorites");
+            LauncherSettings.Settings.call(contentResolver,
+                    LauncherSettings.Settings.METHOD_LOAD_DEFAULT_FAVORITES);
 
             synchronized (sBgLock) {
                 clearSBgDataStructures();
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index 7ebee31..11d61d0 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -363,13 +363,6 @@
                 loadDefaultFavoritesIfNecessary();
                 return null;
             }
-            case LauncherSettings.Settings.METHOD_MIGRATE_LAUNCHER2_SHORTCUTS: {
-                mOpenHelper.migrateLauncher2Shortcuts(mOpenHelper.getWritableDatabase(),
-                        Uri.parse(getContext().getString(R.string.old_launcher_provider_uri)));
-                Utilities.getPrefs(getContext()).edit().putBoolean(EMPTY_DATABASE_CREATED, false)
-                        .commit();
-                return null;
-            }
             case LauncherSettings.Settings.METHOD_UPDATE_FOLDER_ITEMS_RANK: {
                 mOpenHelper.updateFolderItemsRank(mOpenHelper.getWritableDatabase(), false);
                 return null;
@@ -1033,278 +1026,6 @@
 
             return count;
         }
-
-        @Thunk void migrateLauncher2Shortcuts(SQLiteDatabase db, Uri uri) {
-            final ContentResolver resolver = mContext.getContentResolver();
-            Cursor c = null;
-            int count = 0;
-            int curScreen = 0;
-
-            try {
-                c = resolver.query(uri, null, null, null, "title ASC");
-            } catch (Exception e) {
-                // Ignore
-            }
-
-            // We already have a favorites database in the old provider
-            if (c != null) {
-                try {
-                    if (c.getCount() > 0) {
-                        final int idIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites._ID);
-                        final int intentIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.INTENT);
-                        final int titleIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.TITLE);
-                        final int iconIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ICON);
-                        final int iconPackageIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ICON_PACKAGE);
-                        final int iconResourceIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ICON_RESOURCE);
-                        final int containerIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CONTAINER);
-                        final int itemTypeIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ITEM_TYPE);
-                        final int screenIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SCREEN);
-                        final int cellXIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLX);
-                        final int cellYIndex
-                                = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLY);
-                        final int profileIndex
-                                = c.getColumnIndex(LauncherSettings.Favorites.PROFILE_ID);
-
-                        int i = 0;
-                        int curX = 0;
-                        int curY = 0;
-
-                        final LauncherAppState app = LauncherAppState.getInstance();
-                        final InvariantDeviceProfile profile = app.getInvariantDeviceProfile();
-                        final int width = (int) profile.numColumns;
-                        final int height = (int) profile.numRows;
-                        final int hotseatWidth = (int) profile.numHotseatIcons;
-
-                        final HashSet<String> seenIntents = new HashSet<String>(c.getCount());
-
-                        final ArrayList<ContentValues> shortcuts = new ArrayList<ContentValues>();
-                        final ArrayList<ContentValues> folders = new ArrayList<ContentValues>();
-                        final SparseArray<ContentValues> hotseat = new SparseArray<ContentValues>();
-
-                        while (c.moveToNext()) {
-                            final int itemType = c.getInt(itemTypeIndex);
-                            if (itemType != Favorites.ITEM_TYPE_APPLICATION
-                                    && itemType != Favorites.ITEM_TYPE_SHORTCUT
-                                    && itemType != Favorites.ITEM_TYPE_FOLDER) {
-                                continue;
-                            }
-
-                            final int cellX = c.getInt(cellXIndex);
-                            final int cellY = c.getInt(cellYIndex);
-                            final int screen = c.getInt(screenIndex);
-                            int container = c.getInt(containerIndex);
-                            final String intentStr = c.getString(intentIndex);
-
-                            UserManagerCompat userManager = UserManagerCompat.getInstance(mContext);
-                            UserHandleCompat userHandle;
-                            final long userSerialNumber;
-                            if (profileIndex != -1 && !c.isNull(profileIndex)) {
-                                userSerialNumber = c.getInt(profileIndex);
-                                userHandle = userManager.getUserForSerialNumber(userSerialNumber);
-                            } else {
-                                // Default to the serial number of this user, for older
-                                // shortcuts.
-                                userHandle = UserHandleCompat.myUserHandle();
-                                userSerialNumber = userManager.getSerialNumberForUser(userHandle);
-                            }
-
-                            if (userHandle == null) {
-                                Log.d(TAG, "skipping deleted user");
-                                continue;
-                            }
-
-                            if (itemType != Favorites.ITEM_TYPE_FOLDER) {
-
-                                final Intent intent;
-                                final ComponentName cn;
-                                try {
-                                    intent = Intent.parseUri(intentStr, 0);
-                                } catch (URISyntaxException e) {
-                                    // bogus intent?
-                                    Log.d(TAG, "skipping invalid intent uri");
-                                    continue;
-                                }
-
-                                cn = intent.getComponent();
-                                if (TextUtils.isEmpty(intentStr)) {
-                                    // no intent? no icon
-                                    Log.d(TAG, "skipping empty intent");
-                                    continue;
-                                } else if (cn != null &&
-                                        !LauncherModel.isValidPackageActivity(mContext, cn,
-                                                userHandle)) {
-                                    // component no longer exists.
-                                    Log.d(TAG, "skipping item whose component no longer exists.");
-                                    continue;
-                                } else if (container ==
-                                        LauncherSettings.Favorites.CONTAINER_DESKTOP) {
-                                    // Dedupe icons directly on the workspace
-
-                                    // Canonicalize
-                                    // the Play Store sets the package parameter, but Launcher
-                                    // does not, so we clear that out to keep them the same.
-                                    // Also ignore intent flags for the purposes of deduping.
-                                    intent.setPackage(null);
-                                    int flags = intent.getFlags();
-                                    intent.setFlags(0);
-                                    final String key = intent.toUri(0);
-                                    intent.setFlags(flags);
-                                    if (seenIntents.contains(key)) {
-                                        Log.d(TAG, "skipping duplicate");
-                                        continue;
-                                    } else {
-                                        seenIntents.add(key);
-                                    }
-                                }
-                            }
-
-                            ContentValues values = new ContentValues(c.getColumnCount());
-                            values.put(LauncherSettings.Favorites._ID, c.getInt(idIndex));
-                            values.put(LauncherSettings.Favorites.INTENT, intentStr);
-                            values.put(LauncherSettings.Favorites.TITLE, c.getString(titleIndex));
-                            values.put(LauncherSettings.Favorites.ICON, c.getBlob(iconIndex));
-                            values.put(LauncherSettings.Favorites.ICON_PACKAGE,
-                                    c.getString(iconPackageIndex));
-                            values.put(LauncherSettings.Favorites.ICON_RESOURCE,
-                                    c.getString(iconResourceIndex));
-                            values.put(LauncherSettings.Favorites.ITEM_TYPE, itemType);
-                            values.put(LauncherSettings.Favorites.APPWIDGET_ID, -1);
-                            values.put(LauncherSettings.Favorites.PROFILE_ID, userSerialNumber);
-
-                            if (container == LauncherSettings.Favorites.CONTAINER_HOTSEAT) {
-                                hotseat.put(screen, values);
-                            }
-
-                            if (container != LauncherSettings.Favorites.CONTAINER_DESKTOP) {
-                                // In a folder or in the hotseat, preserve position
-                                values.put(LauncherSettings.Favorites.SCREEN, screen);
-                                values.put(LauncherSettings.Favorites.CELLX, cellX);
-                                values.put(LauncherSettings.Favorites.CELLY, cellY);
-                            } else {
-                                // For items contained directly on one of the workspace screen,
-                                // we'll determine their location (screen, x, y) in a second pass.
-                            }
-
-                            values.put(LauncherSettings.Favorites.CONTAINER, container);
-
-                            if (itemType != Favorites.ITEM_TYPE_FOLDER) {
-                                shortcuts.add(values);
-                            } else {
-                                folders.add(values);
-                            }
-                        }
-
-                        // Now that we have all the hotseat icons, let's go through them left-right
-                        // and assign valid locations for them in the new hotseat
-                        final int N = hotseat.size();
-                        for (int idx=0; idx<N; idx++) {
-                            int hotseatX = hotseat.keyAt(idx);
-                            ContentValues values = hotseat.valueAt(idx);
-
-                            if (hotseatX == profile.hotseatAllAppsRank) {
-                                // let's drop this in the next available hole in the hotseat
-                                while (++hotseatX < hotseatWidth) {
-                                    if (hotseat.get(hotseatX) == null) {
-                                        // found a spot! move it here
-                                        values.put(LauncherSettings.Favorites.SCREEN,
-                                                hotseatX);
-                                        break;
-                                    }
-                                }
-                            }
-                            if (hotseatX >= hotseatWidth) {
-                                // no room for you in the hotseat? it's off to the desktop with you
-                                values.put(LauncherSettings.Favorites.CONTAINER,
-                                           Favorites.CONTAINER_DESKTOP);
-                            }
-                        }
-
-                        final ArrayList<ContentValues> allItems = new ArrayList<ContentValues>();
-                        // Folders first
-                        allItems.addAll(folders);
-                        // Then shortcuts
-                        allItems.addAll(shortcuts);
-
-                        // Layout all the folders
-                        for (ContentValues values: allItems) {
-                            if (values.getAsInteger(LauncherSettings.Favorites.CONTAINER) !=
-                                    LauncherSettings.Favorites.CONTAINER_DESKTOP) {
-                                // Hotseat items and folder items have already had their
-                                // location information set. Nothing to be done here.
-                                continue;
-                            }
-                            values.put(LauncherSettings.Favorites.SCREEN, curScreen);
-                            values.put(LauncherSettings.Favorites.CELLX, curX);
-                            values.put(LauncherSettings.Favorites.CELLY, curY);
-                            curX = (curX + 1) % width;
-                            if (curX == 0) {
-                                curY = (curY + 1);
-                            }
-                            // Leave the last row of icons blank on every screen
-                            if (curY == height - 1) {
-                                curScreen = (int) generateNewScreenId();
-                                curY = 0;
-                            }
-                        }
-
-                        if (allItems.size() > 0) {
-                            db.beginTransaction();
-                            try {
-                                for (ContentValues row: allItems) {
-                                    if (row == null) continue;
-                                    if (dbInsertAndCheck(this, db, Favorites.TABLE_NAME, null, row)
-                                            < 0) {
-                                        return;
-                                    } else {
-                                        count++;
-                                    }
-                                }
-                                db.setTransactionSuccessful();
-                            } finally {
-                                db.endTransaction();
-                            }
-                        }
-
-                        db.beginTransaction();
-                        try {
-                            for (i=0; i<=curScreen; i++) {
-                                final ContentValues values = new ContentValues();
-                                values.put(LauncherSettings.WorkspaceScreens._ID, i);
-                                values.put(LauncherSettings.WorkspaceScreens.SCREEN_RANK, i);
-                                if (dbInsertAndCheck(this, db, WorkspaceScreens.TABLE_NAME, null, values)
-                                        < 0) {
-                                    return;
-                                }
-                            }
-                            db.setTransactionSuccessful();
-                        } finally {
-                            db.endTransaction();
-                        }
-
-                        updateFolderItemsRank(db, false);
-                    }
-                } finally {
-                    c.close();
-                }
-            }
-
-            Log.d(TAG, "migrated " + count + " icons from Launcher2 into "
-                    + (curScreen+1) + " screens");
-
-            // Update max IDs; very important since we just grabbed IDs from another database
-            mMaxItemId = initializeMaxItemId(db);
-            mMaxScreenId = initializeMaxScreenId(db);
-            if (LOGD) Log.d(TAG, "mMaxItemId: " + mMaxItemId + " mMaxScreenId: " + mMaxScreenId);
-        }
     }
 
     /**
diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java
index 45a87cc..52668d7 100644
--- a/src/com/android/launcher3/LauncherSettings.java
+++ b/src/com/android/launcher3/LauncherSettings.java
@@ -291,7 +291,6 @@
         public static final String METHOD_DELETE_DB = "delete_db";
 
         public static final String METHOD_LOAD_DEFAULT_FAVORITES = "load_default_favorites";
-        public static final String METHOD_MIGRATE_LAUNCHER2_SHORTCUTS = "migrate_l2_shortcuts";
 
         public static final String METHOD_SET_EXTRACTED_COLORS_AND_WALLPAPER_ID =
                 "set_extracted_colors_and_wallpaper_id_setting";
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 86a1a39..fdca9f2 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -259,9 +259,9 @@
 
             OnClickListener listener = getPageIndicatorClickListener();
             if (listener != null) {
-                mPageIndicator.getView().setOnClickListener(listener);
+                mPageIndicator.setOnClickListener(listener);
             }
-            mPageIndicator.getView().setContentDescription(getPageIndicatorDescription());
+            mPageIndicator.setContentDescription(getPageIndicatorDescription());
         }
     }
 
@@ -467,7 +467,7 @@
     private void updatePageIndicator() {
         // Update the page indicator (when we aren't reordering)
         if (mPageIndicator != null) {
-            mPageIndicator.getView().setContentDescription(getPageIndicatorDescription());
+            mPageIndicator.setContentDescription(getPageIndicatorDescription());
             if (!isReordering(false)) {
                 mPageIndicator.setActiveMarker(getNextPage());
             }
diff --git a/src/com/android/launcher3/PinchAnimationManager.java b/src/com/android/launcher3/PinchAnimationManager.java
index 477b92c..c8c8fa4 100644
--- a/src/com/android/launcher3/PinchAnimationManager.java
+++ b/src/com/android/launcher3/PinchAnimationManager.java
@@ -194,7 +194,7 @@
         animateShowHideView(INDEX_HOTSEAT, mLauncher.getHotseat(), show);
         if (mWorkspace.getPageIndicator() != null) {
             // There aren't page indicators in landscape mode on phones, hence the null check.
-            animateShowHideView(INDEX_PAGE_INDICATOR, mWorkspace.getPageIndicator().getView(), show);
+            animateShowHideView(INDEX_PAGE_INDICATOR, mWorkspace.getPageIndicator(), show);
         }
     }
 
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index e3b959b..00ee387 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -869,6 +869,26 @@
     }
 
     /**
+     * Returns true if {@param original} contains all entries defined in {@param updates} and
+     * have the same value.
+     * The comparison uses {@link Object#equals(Object)} to compare the values.
+     */
+    public static boolean containsAll(Bundle original, Bundle updates) {
+        for (String key : updates.keySet()) {
+            Object value1 = updates.get(key);
+            Object value2 = original.get(key);
+            if (value1 == null) {
+                if (value2 != null) {
+                    return false;
+                }
+            } else if (!value1.equals(value2)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
      * An extension of {@link BitmapDrawable} which returns the bitmap pixel size as intrinsic size.
      * This allows the badging to be done based on the action bitmap size rather than
      * the scaled bitmap size.
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index f8eff69..62c1bc8 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1275,13 +1275,15 @@
         // Update the page indicator progress.
         boolean isTransitioning = mIsSwitchingState
                 || (getLayoutTransition() != null && getLayoutTransition().isRunning());
-        if (mPageIndicator != null && !isTransitioning) {
+        if (!isTransitioning) {
             showPageIndicatorAtCurrentScroll();
         }
     }
 
     private void showPageIndicatorAtCurrentScroll() {
-        mPageIndicator.setScroll(getScrollX(), computeMaxScrollX());
+        if (mPageIndicator != null) {
+            mPageIndicator.setScroll(getScrollX(), computeMaxScrollX());
+        }
     }
 
     @Override
@@ -1337,7 +1339,7 @@
         // different effects based on device performance. On at least one relatively high-end
         // device I've tried, translating the launcher causes things to get quite laggy.
         setTranslationAndAlpha(mLauncher.getSearchDropTargetBar(), transX, alpha);
-        setTranslationAndAlpha(getPageIndicator().getView(), transX, alpha);
+        setTranslationAndAlpha(getPageIndicator(), transX, alpha);
         setTranslationAndAlpha(getChildAt(getCurrentPage()), transX, alpha);
         setTranslationAndAlpha(mLauncher.getHotseat(), transX, alpha);
 
@@ -1550,7 +1552,7 @@
         }
 
         if (getPageIndicator() != null) {
-            getPageIndicator().getView().setTranslationX(translationX);
+            getPageIndicator().setTranslationX(translationX);
         }
 
         if (mCustomContentCallbacks != null) {
@@ -1599,7 +1601,7 @@
             // attach to window
             OnClickListener listener = getPageIndicatorClickListener();
             if (listener != null) {
-                getPageIndicator().getView().setOnClickListener(listener);
+                getPageIndicator().setOnClickListener(listener);
             }
 
             showPageIndicatorAtCurrentScroll();
diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
index 60070a8..e268640 100644
--- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
+++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
@@ -357,7 +357,7 @@
 
         final ViewGroup overviewPanel = mLauncher.getOverviewPanel();
         final View hotseat = mLauncher.getHotseat();
-        final View pageIndicator = mWorkspace.getPageIndicator().getView();
+        final View pageIndicator = mWorkspace.getPageIndicator();
         if (animated) {
             LauncherViewPropertyAnimator scale = new LauncherViewPropertyAnimator(mWorkspace);
             scale.scaleX(mNewScale)
diff --git a/src/com/android/launcher3/compat/AlphabeticIndexCompat.java b/src/com/android/launcher3/compat/AlphabeticIndexCompat.java
index 463278a..ec65c3e 100644
--- a/src/com/android/launcher3/compat/AlphabeticIndexCompat.java
+++ b/src/com/android/launcher3/compat/AlphabeticIndexCompat.java
@@ -1,6 +1,8 @@
 package com.android.launcher3.compat;
 
 import android.content.Context;
+import android.content.res.Configuration;
+import android.util.Log;
 
 import com.android.launcher3.Utilities;
 
@@ -8,108 +10,41 @@
 import java.lang.reflect.Method;
 import java.util.Locale;
 
-/**
- * Fallback class to support Alphabetic indexing if not supported by the framework.
- * TODO(winsonc): disable for non-english locales
- */
-class BaseAlphabeticIndex {
-
-    private static final String BUCKETS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-";
-    private static final int UNKNOWN_BUCKET_INDEX = BUCKETS.length() - 1;
-
-    public BaseAlphabeticIndex() {}
-
-    /**
-     * Sets the max number of the label buckets in this index.
-     */
-    public void setMaxLabelCount(int count) {
-        // Not currently supported
-    }
-
-    /**
-     * Returns the index of the bucket in which the given string should appear.
-     */
-    protected int getBucketIndex(String s) {
-        if (s.isEmpty()) {
-            return UNKNOWN_BUCKET_INDEX;
-        }
-        int index = BUCKETS.indexOf(s.substring(0, 1).toUpperCase());
-        if (index != -1) {
-            return index;
-        }
-        return UNKNOWN_BUCKET_INDEX;
-    }
-
-    /**
-     * Returns the label for the bucket at the given index (as returned by getBucketIndex).
-     */
-    protected String getBucketLabel(int index) {
-        return BUCKETS.substring(index, index + 1);
-    }
-}
-
-/**
- * Reflected libcore.icu.AlphabeticIndex implementation, falls back to the base alphabetic index.
- */
-public class AlphabeticIndexCompat extends BaseAlphabeticIndex {
+public class AlphabeticIndexCompat {
+    private static final String TAG = "AlphabeticIndexCompat";
 
     private static final String MID_DOT = "\u2219";
+    private final BaseIndex mBaseIndex;
+    private final String mDefaultMiscLabel;
 
-    private Object mAlphabeticIndex;
-    private Method mAddLabelsMethod;
-    private Method mSetMaxLabelCountMethod;
-    private Method mGetBucketIndexMethod;
-    private Method mGetBucketLabelMethod;
-    private boolean mHasValidAlphabeticIndex;
-    private String mDefaultMiscLabel;
-
-    @SuppressWarnings({"unchecked", "rawtypes"})
     public AlphabeticIndexCompat(Context context) {
-        super();
-        try {
-            Locale curLocale = context.getResources().getConfiguration().locale;
-            Class clazz = Class.forName("libcore.icu.AlphabeticIndex");
-            Constructor ctor = clazz.getConstructor(Locale.class);
-            mAddLabelsMethod = clazz.getDeclaredMethod("addLabels", Locale.class);
-            mSetMaxLabelCountMethod = clazz.getDeclaredMethod("setMaxLabelCount", int.class);
-            mGetBucketIndexMethod = clazz.getDeclaredMethod("getBucketIndex", String.class);
-            mGetBucketLabelMethod = clazz.getDeclaredMethod("getBucketLabel", int.class);
-            mAlphabeticIndex = ctor.newInstance(curLocale);
-            try {
-                // Ensure we always have some base English locale buckets
-                if (!curLocale.getLanguage().equals(Locale.ENGLISH.getLanguage())) {
-                    mAddLabelsMethod.invoke(mAlphabeticIndex, Locale.ENGLISH);
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-            if (curLocale.getLanguage().equals(Locale.JAPANESE.getLanguage())) {
-                // Japanese character 他 ("misc")
-                mDefaultMiscLabel = "\u4ed6";
-                // TODO(winsonc, omakoto): We need to handle Japanese sections better, especially the kanji
-            } else {
-                // Dot
-                mDefaultMiscLabel = MID_DOT;
-            }
-            mHasValidAlphabeticIndex = true;
-        } catch (Exception e) {
-            mHasValidAlphabeticIndex = false;
-        }
-    }
+        BaseIndex index = null;
 
-    /**
-     * Sets the max number of the label buckets in this index.
-     * (ICU 51 default is 99)
-     */
-    public void setMaxLabelCount(int count) {
-        if (mHasValidAlphabeticIndex) {
-            try {
-                mSetMaxLabelCountMethod.invoke(mAlphabeticIndex, count);
-            } catch (Exception e) {
-                e.printStackTrace();
+        try {
+            if (Utilities.isNycOrAbove()) {
+                index = new AlphabeticIndexVN(context);
             }
+        } catch (Exception e) {
+            Log.d(TAG, "Unable to load the system index", e);
+        }
+        if (index == null) {
+            try {
+                index = new AlphabeticIndexV16(context);
+            } catch (Exception e) {
+                Log.d(TAG, "Unable to load the system index", e);
+            }
+        }
+
+        mBaseIndex = index == null ? new BaseIndex() : index;
+
+        if (context.getResources().getConfiguration().locale
+                .getLanguage().equals(Locale.JAPANESE.getLanguage())) {
+            // Japanese character 他 ("misc")
+            mDefaultMiscLabel = "\u4ed6";
+            // TODO(winsonc, omakoto): We need to handle Japanese sections better, especially the kanji
         } else {
-            super.setMaxLabelCount(count);
+            // Dot
+            mDefaultMiscLabel = MID_DOT;
         }
     }
 
@@ -118,7 +53,7 @@
      */
     public String computeSectionName(CharSequence cs) {
         String s = Utilities.trim(cs);
-        String sectionName = getBucketLabel(getBucketIndex(s));
+        String sectionName = mBaseIndex.getBucketLabel(mBaseIndex.getBucketIndex(s));
         if (Utilities.trim(sectionName).isEmpty() && s.length() > 0) {
             int c = s.codePointAt(0);
             boolean startsWithDigit = Character.isDigit(c);
@@ -141,32 +76,150 @@
     }
 
     /**
-     * Returns the index of the bucket in which {@param s} should appear.
-     * Function is synchronized because underlying routine walks an iterator
-     * whose state is maintained inside the index object.
+     * Base class to support Alphabetic indexing if not supported by the framework.
+     * TODO(winsonc): disable for non-english locales
      */
-    protected int getBucketIndex(String s) {
-        if (mHasValidAlphabeticIndex) {
+    private static class BaseIndex {
+
+        private static final String BUCKETS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-";
+        private static final int UNKNOWN_BUCKET_INDEX = BUCKETS.length() - 1;
+
+        /**
+         * Returns the index of the bucket in which the given string should appear.
+         */
+        protected int getBucketIndex(String s) {
+            if (s.isEmpty()) {
+                return UNKNOWN_BUCKET_INDEX;
+            }
+            int index = BUCKETS.indexOf(s.substring(0, 1).toUpperCase());
+            if (index != -1) {
+                return index;
+            }
+            return UNKNOWN_BUCKET_INDEX;
+        }
+
+        /**
+         * Returns the label for the bucket at the given index (as returned by getBucketIndex).
+         */
+        protected String getBucketLabel(int index) {
+            return BUCKETS.substring(index, index + 1);
+        }
+    }
+
+    /**
+     * Reflected libcore.icu.AlphabeticIndex implementation, falls back to the base
+     * alphabetic index.
+     */
+    private static class AlphabeticIndexV16 extends BaseIndex {
+
+        private Object mAlphabeticIndex;
+        private Method mGetBucketIndexMethod;
+        private Method mGetBucketLabelMethod;
+
+        public AlphabeticIndexV16(Context context) throws Exception {
+            Locale curLocale = context.getResources().getConfiguration().locale;
+            Class clazz = Class.forName("libcore.icu.AlphabeticIndex");
+            mGetBucketIndexMethod = clazz.getDeclaredMethod("getBucketIndex", String.class);
+            mGetBucketLabelMethod = clazz.getDeclaredMethod("getBucketLabel", int.class);
+            mAlphabeticIndex = clazz.getConstructor(Locale.class).newInstance(curLocale);
+
+            if (!curLocale.getLanguage().equals(Locale.ENGLISH.getLanguage())) {
+                clazz.getDeclaredMethod("addLabels", Locale.class)
+                        .invoke(mAlphabeticIndex, Locale.ENGLISH);
+            }
+        }
+
+        /**
+         * Returns the index of the bucket in which {@param s} should appear.
+         * Function is synchronized because underlying routine walks an iterator
+         * whose state is maintained inside the index object.
+         */
+        protected int getBucketIndex(String s) {
             try {
                 return (Integer) mGetBucketIndexMethod.invoke(mAlphabeticIndex, s);
             } catch (Exception e) {
                 e.printStackTrace();
             }
+            return super.getBucketIndex(s);
         }
-        return super.getBucketIndex(s);
-    }
 
-    /**
-     * Returns the label for the bucket at the given index (as returned by getBucketIndex).
-     */
-    protected String getBucketLabel(int index) {
-        if (mHasValidAlphabeticIndex) {
+        /**
+         * Returns the label for the bucket at the given index (as returned by getBucketIndex).
+         */
+        protected String getBucketLabel(int index) {
             try {
                 return (String) mGetBucketLabelMethod.invoke(mAlphabeticIndex, index);
             } catch (Exception e) {
                 e.printStackTrace();
             }
+            return super.getBucketLabel(index);
         }
-        return super.getBucketLabel(index);
+    }
+
+    /**
+     * Reflected android.icu.text.AlphabeticIndex implementation, falls back to the base
+     * alphabetic index.
+     */
+    private static class AlphabeticIndexVN extends BaseIndex {
+
+        private Object mAlphabeticIndex;
+        private Method mGetBucketIndexMethod;
+
+        private Method mGetBucketMethod;
+        private Method mGetLabelMethod;
+
+        public AlphabeticIndexVN(Context context) throws Exception {
+            // TODO: Replace this with locale list once available.
+            Object locales = Configuration.class.getDeclaredMethod("getLocales").invoke(
+                    context.getResources().getConfiguration());
+            int localeCount = (Integer) locales.getClass().getDeclaredMethod("size").invoke(locales);
+            Method localeGetter = locales.getClass().getDeclaredMethod("get", int.class);
+            Locale primaryLocale = localeCount == 0 ? Locale.ENGLISH :
+                    (Locale) localeGetter.invoke(locales, 0);
+
+            Class clazz = Class.forName("android.icu.text.AlphabeticIndex");
+            mAlphabeticIndex = clazz.getConstructor(Locale.class).newInstance(primaryLocale);
+
+            Method addLocales = clazz.getDeclaredMethod("addLabels", Locale[].class);
+            for (int i = 1; i < localeCount; i++) {
+                Locale l = (Locale) localeGetter.invoke(locales, i);
+                addLocales.invoke(mAlphabeticIndex, new Object[]{ new Locale[] {l}});
+            }
+            addLocales.invoke(mAlphabeticIndex, new Object[]{ new Locale[] {Locale.ENGLISH}});
+
+            mAlphabeticIndex = mAlphabeticIndex.getClass()
+                    .getDeclaredMethod("buildImmutableIndex")
+                    .invoke(mAlphabeticIndex);
+
+            mGetBucketIndexMethod = mAlphabeticIndex.getClass().getDeclaredMethod(
+                    "getBucketIndex", CharSequence.class);
+            mGetBucketMethod = mAlphabeticIndex.getClass().getDeclaredMethod("getBucket", int.class);
+            mGetLabelMethod = mGetBucketMethod.getReturnType().getDeclaredMethod("getLabel");
+        }
+
+        /**
+         * Returns the index of the bucket in which {@param s} should appear.
+         */
+        protected int getBucketIndex(String s) {
+            try {
+                return (Integer) mGetBucketIndexMethod.invoke(mAlphabeticIndex, s);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            return super.getBucketIndex(s);
+        }
+
+        /**
+         * Returns the label for the bucket at the given index
+         */
+        protected String getBucketLabel(int index) {
+            try {
+                return (String) mGetLabelMethod.invoke(
+                        mGetBucketMethod.invoke(mAlphabeticIndex, index));
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            return super.getBucketLabel(index);
+        }
     }
 }
diff --git a/src/com/android/launcher3/folder/FolderPagedView.java b/src/com/android/launcher3/folder/FolderPagedView.java
index bb8ca16..d8b83ad 100644
--- a/src/com/android/launcher3/folder/FolderPagedView.java
+++ b/src/com/android/launcher3/folder/FolderPagedView.java
@@ -365,7 +365,7 @@
         setEnableOverscroll(getPageCount() > 1);
 
         // Update footer
-        mPageIndicator.getView().setVisibility(getPageCount() > 1 ? View.VISIBLE : View.GONE);
+        mPageIndicator.setVisibility(getPageCount() > 1 ? View.VISIBLE : View.GONE);
         // Set the gravity as LEFT or RIGHT instead of START, as START depends on the actual text.
         mFolder.mFolderName.setGravity(getPageCount() > 1 ?
                 (mIsRtl ? Gravity.RIGHT : Gravity.LEFT) : Gravity.CENTER_HORIZONTAL);
diff --git a/src/com/android/launcher3/pageindicators/PageIndicator.java b/src/com/android/launcher3/pageindicators/PageIndicator.java
index 77c579c..7c59495 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicator.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicator.java
@@ -1,16 +1,37 @@
 package com.android.launcher3.pageindicators;
 
+import android.content.Context;
+import android.util.AttributeSet;
 import android.view.View;
 
-import java.util.ArrayList;
+/**
+ * Base class for a page indicator.
+ */
+public abstract class PageIndicator extends View {
 
-public interface PageIndicator {
-    View getView();
-    void setScroll(int currentScroll, int totalScroll);
+    protected int mNumPages = 1;
 
-    void setActiveMarker(int activePage);
+    public PageIndicator(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
 
-    void addMarker();
-    void removeMarker();
-    void setMarkersCount(int numMarkers);
+    public abstract void setScroll(int currentScroll, int totalScroll);
+
+    public abstract void setActiveMarker(int activePage);
+
+    public void addMarker() {
+        mNumPages++;
+        onPageCountChanged();
+    }
+
+    public void removeMarker() {
+        mNumPages--;
+        onPageCountChanged();
+    }
+    public void setMarkersCount(int numMarkers) {
+        mNumPages = numMarkers;
+        onPageCountChanged();
+    }
+
+    protected abstract void onPageCountChanged();
 }
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
index 4a1238d..7d84a0c 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java
@@ -42,7 +42,7 @@
  * {@link PageIndicator} which shows dots per page. The active page is shown with the current
  * accent color.
  */
-public class PageIndicatorDots extends View implements PageIndicator {
+public class PageIndicatorDots extends PageIndicator {
 
     private static final float SHIFT_PER_ANIMATION = 0.5f;
     private static final float SHIFT_THRESHOLD = 0.1f;
@@ -90,7 +90,6 @@
     private final int mInActiveColor;
     private final boolean mIsRtl;
 
-    private int mNumPages;
     private int mActivePage;
 
     /**
@@ -131,11 +130,6 @@
     }
 
     @Override
-    public View getView() {
-        return this;
-    }
-
-    @Override
     public void setScroll(int currentScroll, int totalScroll) {
         if (mNumPages > 1) {
             if (mIsRtl) {
@@ -235,20 +229,7 @@
     }
 
     @Override
-    public void addMarker() {
-        mNumPages++;
-        requestLayout();
-    }
-
-    @Override
-    public void removeMarker() {
-        mNumPages--;
-        requestLayout();
-    }
-
-    @Override
-    public void setMarkersCount(int numMarkers) {
-        mNumPages = numMarkers;
+    protected void onPageCountChanged() {
         requestLayout();
     }
 
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
index e4816861..a358e7b 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
@@ -25,7 +25,7 @@
  *
  * The fraction is 1 / number of pages and the position is based on the progress of the page scroll.
  */
-public class PageIndicatorLine extends View implements PageIndicator {
+public class PageIndicatorLine extends PageIndicator {
     private static final String TAG = "PageIndicatorLine";
 
     private static final int LINE_FADE_DURATION = ViewConfiguration.getScrollBarFadeDuration();
@@ -38,7 +38,6 @@
     private ValueAnimator mLineAlphaAnimator;
     private int mAlpha = 0;
     private float mProgress = 0f;
-    private int mNumPages = 1;
     private Paint mLinePaint;
 
     private static final Property<PageIndicatorLine, Integer> PAINT_ALPHA
@@ -78,8 +77,6 @@
 
     @Override
     protected void onDraw(Canvas canvas) {
-        super.onDraw(canvas);
-
         if (mNumPages == 0) {
             return;
         }
@@ -92,11 +89,6 @@
     }
 
     @Override
-    public View getView() {
-        return this;
-    }
-
-    @Override
     public void setScroll(int currentScroll, int totalScroll) {
         if (getAlpha() == 0) {
             return;
@@ -115,18 +107,8 @@
     }
 
     @Override
-    public void addMarker() {
-        mNumPages++;
-    }
-
-    @Override
-    public void removeMarker() {
-        mNumPages--;
-    }
-
-    @Override
-    public void setMarkersCount(int numMarkers) {
-        mNumPages = numMarkers;
+    protected void onPageCountChanged() {
+        invalidate();
     }
 
     /**
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src_config/com/android/launcher3/config/FeatureFlags.java
similarity index 100%
rename from src/com/android/launcher3/config/FeatureFlags.java
rename to src_config/com/android/launcher3/config/FeatureFlags.java
diff --git a/src/com/android/launcher3/config/ProviderConfig.java b/src_config/com/android/launcher3/config/ProviderConfig.java
similarity index 100%
rename from src/com/android/launcher3/config/ProviderConfig.java
rename to src_config/com/android/launcher3/config/ProviderConfig.java
diff --git a/update_gallery_files.py b/update_gallery_files.py
deleted file mode 100644
index 738d225..0000000
--- a/update_gallery_files.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# This script is used to pull the most up-to-date files from
-# Gallery into Launcher (we use some code from the Gallery
-# source). The Launcher versions have some small modifications
-# so do this with care, and be sure you are pulling from the
-# latest version of Gallery
-import os
-import sys
-files = """
-src/android/util/Pools.java
-src/com/android/gallery3d/util/IntArray.java
-src/com/android/gallery3d/common/Utils.java
-src/com/android/gallery3d/exif/ByteBufferInputStream.java
-src/com/android/gallery3d/exif/CountedDataInputStream.java
-src/com/android/gallery3d/exif/ExifData.java
-src/com/android/gallery3d/exif/ExifInterface.java
-src/com/android/gallery3d/exif/ExifInvalidFormatException.java
-src/com/android/gallery3d/exif/ExifModifier.java
-src/com/android/gallery3d/exif/ExifOutputStream.java
-src/com/android/gallery3d/exif/ExifParser.java
-src/com/android/gallery3d/exif/ExifReader.java
-src/com/android/gallery3d/exif/ExifTag.java
-src/com/android/gallery3d/exif/IfdData.java
-src/com/android/gallery3d/exif/IfdId.java
-src/com/android/gallery3d/exif/JpegHeader.java
-src/com/android/gallery3d/exif/OrderedDataOutputStream.java
-src/com/android/gallery3d/exif/Rational.java
-src/com/android/gallery3d/glrenderer/BasicTexture.java
-src/com/android/gallery3d/glrenderer/BitmapTexture.java
-src/com/android/gallery3d/glrenderer/GLCanvas.java
-src/com/android/gallery3d/glrenderer/GLES20Canvas.java
-src/com/android/gallery3d/glrenderer/GLES20IdImpl.java
-src/com/android/gallery3d/glrenderer/GLId.java
-src/com/android/gallery3d/glrenderer/GLPaint.java
-src/com/android/gallery3d/glrenderer/RawTexture.java
-src/com/android/gallery3d/glrenderer/Texture.java
-src/com/android/gallery3d/glrenderer/UploadedTexture.java
-src/com/android/photos/BitmapRegionTileSource.java
-src/com/android/photos/views/BlockingGLTextureView.java
-src/com/android/photos/views/TiledImageRenderer.java
-src/com/android/photos/views/TiledImageView.java
-src/com/android/gallery3d/common/BitmapUtils.java
-"""
-
-if len(sys.argv) != 2:
-    print "Usage: python update_gallery_files.py <gallery_dir>"
-    exit()
-gallery_dir = sys.argv[1]
-for file_path in files.split():
-    dir = os.path.dirname(file_path)
-    if file_path.find('exif') != -1 or file_path.find('common') != -1:
-        file_path = 'gallerycommon/' + file_path
-    cmd = 'cp %s/%s WallpaperPicker/%s/' % (gallery_dir, file_path, dir)
-    print cmd
-    os.system(cmd)
diff --git a/update_system_wallpaper_cropper.py b/update_system_wallpaper_cropper.py
deleted file mode 100644
index 44cbcc9..0000000
--- a/update_system_wallpaper_cropper.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# This script is used to push the most up-to-date files from
-# Launcher into frameworks' version of the WallpaperCropActivity
-# (and supporting files)
-# The framework versions have some small modifications that are
-# necessary so do this with care
-import os
-import sys
-src_dir = "WallpaperPicker/src/"
-files = """
-src/android/util/Pools.java
-com/android/gallery3d/util/IntArray.java
-com/android/gallery3d/common/Utils.java
-com/android/gallery3d/exif/ByteBufferInputStream.java
-com/android/gallery3d/exif/CountedDataInputStream.java
-com/android/gallery3d/exif/ExifData.java
-com/android/gallery3d/exif/ExifInterface.java
-com/android/gallery3d/exif/ExifInvalidFormatException.java
-com/android/gallery3d/exif/ExifModifier.java
-com/android/gallery3d/exif/ExifOutputStream.java
-com/android/gallery3d/exif/ExifParser.java
-com/android/gallery3d/exif/ExifReader.java
-com/android/gallery3d/exif/ExifTag.java
-com/android/gallery3d/exif/IfdData.java
-com/android/gallery3d/exif/IfdId.java
-com/android/gallery3d/exif/JpegHeader.java
-com/android/gallery3d/exif/OrderedDataOutputStream.java
-com/android/gallery3d/exif/Rational.java
-com/android/gallery3d/glrenderer/BasicTexture.java
-com/android/gallery3d/glrenderer/BitmapTexture.java
-com/android/gallery3d/glrenderer/GLCanvas.java
-com/android/gallery3d/glrenderer/GLES20Canvas.java
-com/android/gallery3d/glrenderer/GLES20IdImpl.java
-com/android/gallery3d/glrenderer/GLId.java
-com/android/gallery3d/glrenderer/GLPaint.java
-com/android/gallery3d/glrenderer/RawTexture.java
-com/android/gallery3d/glrenderer/Texture.java
-com/android/gallery3d/glrenderer/UploadedTexture.java
-com/android/photos/BitmapRegionTileSource.java
-com/android/photos/views/BlockingGLTextureView.java
-com/android/photos/views/TiledImageRenderer.java
-com/android/photos/views/TiledImageView.java
-com/android/gallery3d/common/BitmapUtils.java
-com/android/launcher3/CropView.java
-com/android/launcher3/WallpaperCropActivity.java
-"""
-
-if len(sys.argv) != 2:
-    print "Usage: python update_sytem_wallpaper_cropper.py <framework_dir>"
-    exit()
-framework_dir = sys.argv[1] + "/packages/WallpaperCropper"
-for file_path in files.split():
-    file_path = src_dir + file_path
-    dir = os.path.dirname(file_path)
-    dir = dir.replace("launcher3", "wallpapercropper")
-    dir = dir.replace(src_dir, "src/")
-    cmd = 'cp %s %s/%s' % (file_path, framework_dir, dir)
-    print cmd
-    os.system(cmd)