Merge "Import translations. DO NOT MERGE" into nyc-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4b976b5..a1cb7ee 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1041,6 +1041,19 @@
                 android:value="com.android.settings.applications.ProcessStatsSummary" />
         </activity>
 
+        <activity android:name="Settings$AppMemoryUsageActivity"
+                  android:label="@string/app_list_memory_use"
+                  android:icon="@drawable/ic_settings_memory">
+            <intent-filter>
+                <action android:name="android.settings.APP_MEMORY_USAGE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.category"
+                       android:value="com.android.settings.category.device" />
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.applications.ProcessStatsUi" />
+        </activity>
+
         <activity android:name="Settings$AllApplicationsActivity"
                 android:label="@string/applications_settings"
                 android:taskAffinity="">
diff --git a/res/layout/font_size_preview.xml b/res/layout/font_size_preview.xml
index f4a861c..d84bb39 100644
--- a/res/layout/font_size_preview.xml
+++ b/res/layout/font_size_preview.xml
@@ -14,35 +14,47 @@
      limitations under the License.
 -->
 
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingTop="16dp"
-    android:paddingStart="16dp"
-    android:paddingEnd="16dp"
-    android:orientation="vertical">
+    android:fillViewport="true" >
 
-    <TextView
+    <view class="com.android.settings.TouchBlockingFrameLayout"
+        android:id="@+id/frame"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/font_size_preview_text_headline"
-        android:textAppearance="@android:style/TextAppearance.Material.Headline"/>
+        android:layout_height="wrap_content">
 
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/font_size_preview_text_title"
-        android:textAppearance="@android:style/TextAppearance.Material.Title"/>
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingTop="16dp"
+            android:paddingStart="16dp"
+            android:paddingEnd="16dp"
+            android:orientation="vertical">
 
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/font_size_preview_text_subtitle"
-        android:textAppearance="@android:style/TextAppearance.Material.Subhead"/>
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/font_size_preview_text_headline"
+                android:textAppearance="@android:style/TextAppearance.Material.Headline"/>
 
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/font_size_preview_text_body"
-        android:textAppearance="@android:style/TextAppearance.Material.Body1"/>
-</LinearLayout>
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/font_size_preview_text_title"
+                android:textAppearance="@android:style/TextAppearance.Material.Title"/>
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/font_size_preview_text_subtitle"
+                android:textAppearance="@android:style/TextAppearance.Material.Subhead"/>
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/font_size_preview_text_body"
+                android:textAppearance="@android:style/TextAppearance.Material.Body1"/>
+        </LinearLayout>
+    </view>
+</ScrollView>
diff --git a/res/layout/preview_frame_container.xml b/res/layout/preview_frame_container.xml
deleted file mode 100644
index 5ba3b7f..0000000
--- a/res/layout/preview_frame_container.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 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.
--->
-
-<view xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.settings.TouchBlockingFrameLayout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent" />
diff --git a/res/layout/preview_seek_bar_view_pager.xml b/res/layout/preview_seek_bar_view_pager.xml
index 45c050e..66b492c 100644
--- a/res/layout/preview_seek_bar_view_pager.xml
+++ b/res/layout/preview_seek_bar_view_pager.xml
@@ -19,6 +19,7 @@
     android:layout_height="0dp"
     android:layout_weight="1"
     android:orientation="vertical"
+    android:minHeight="@dimen/preview_pager_min_height"
     android:padding="@dimen/preview_pager_padding"
     android:background="@drawable/preview_seek_bar_outline" >
 
@@ -27,7 +28,8 @@
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1"
-        android:background="?android:attr/colorBackgroundFloating" />
+        android:background="?android:attr/colorBackgroundFloating"
+        android:contentDescription="@string/preview_pager_content_description" />
 
     <TextView
         android:layout_width="match_parent"
diff --git a/res/layout/screen_zoom_preview_1.xml b/res/layout/screen_zoom_preview_1.xml
index 1acd677..4280091 100644
--- a/res/layout/screen_zoom_preview_1.xml
+++ b/res/layout/screen_zoom_preview_1.xml
@@ -13,56 +13,66 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/conversation_background"
-    android:paddingTop="@dimen/conversation_message_list_padding"
-    android:paddingStart="@dimen/conversation_message_list_padding"
-    android:paddingEnd="@dimen/conversation_message_list_padding"
-    android:orientation="vertical"
-    android:importantForAccessibility="noHideDescendants">
+    android:fillViewport="true" >
 
-    <com.android.settings.display.ConversationMessageView
+    <view class="com.android.settings.TouchBlockingFrameLayout"
+        android:id="@+id/frame"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:incoming="false"
-        app:messageText="@string/screen_zoom_conversation_message_1"
-        app:timestampText="@string/screen_zoom_conversation_timestamp_1"
-        app:iconText="@string/screen_zoom_conversation_icon_alex"
-        app:iconTextColor="@color/message_icon_text_outgoing"
-        app:iconBackgroundColor="@color/message_icon_background_outgoing" />
+        android:layout_height="wrap_content">
 
-    <com.android.settings.display.ConversationMessageView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:incoming="true"
-        app:messageText="@string/screen_zoom_conversation_message_2"
-        app:timestampText="@string/screen_zoom_conversation_timestamp_2"
-        app:iconText="@string/screen_zoom_conversation_icon_pete"
-        app:iconTextColor="@color/message_icon_text_incoming"
-        app:iconBackgroundColor="@color/message_icon_background_incoming" />
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/conversation_background"
+            android:paddingTop="@dimen/conversation_message_list_padding"
+            android:paddingStart="@dimen/conversation_message_list_padding"
+            android:paddingEnd="@dimen/conversation_message_list_padding"
+            android:orientation="vertical"
+            android:importantForAccessibility="noHideDescendants">
 
-    <com.android.settings.display.ConversationMessageView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:incoming="false"
-        app:messageText="@string/screen_zoom_conversation_message_3"
-        app:timestampText="@string/screen_zoom_conversation_timestamp_3"
-        app:iconText="@string/screen_zoom_conversation_icon_alex"
-        app:iconTextColor="@color/message_icon_text_outgoing"
-        app:iconBackgroundColor="@color/message_icon_background_outgoing" />
+            <com.android.settings.display.ConversationMessageView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:incoming="false"
+                app:messageText="@string/screen_zoom_conversation_message_1"
+                app:timestampText="@string/screen_zoom_conversation_timestamp_1"
+                app:iconText="@string/screen_zoom_conversation_icon_alex"
+                app:iconTextColor="@color/message_icon_text_outgoing"
+                app:iconBackgroundColor="@color/message_icon_background_outgoing" />
 
-    <com.android.settings.display.ConversationMessageView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:incoming="true"
-        app:messageText="@string/screen_zoom_conversation_message_4"
-        app:timestampText="@string/screen_zoom_conversation_timestamp_4"
-        app:iconText="@string/screen_zoom_conversation_icon_pete"
-        app:iconTextColor="@color/message_icon_text_incoming"
-        app:iconBackgroundColor="@color/message_icon_background_incoming" />
+            <com.android.settings.display.ConversationMessageView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:incoming="true"
+                app:messageText="@string/screen_zoom_conversation_message_2"
+                app:timestampText="@string/screen_zoom_conversation_timestamp_2"
+                app:iconText="@string/screen_zoom_conversation_icon_pete"
+                app:iconTextColor="@color/message_icon_text_incoming"
+                app:iconBackgroundColor="@color/message_icon_background_incoming" />
 
-</LinearLayout>
+            <com.android.settings.display.ConversationMessageView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:incoming="false"
+                app:messageText="@string/screen_zoom_conversation_message_3"
+                app:timestampText="@string/screen_zoom_conversation_timestamp_3"
+                app:iconText="@string/screen_zoom_conversation_icon_alex"
+                app:iconTextColor="@color/message_icon_text_outgoing"
+                app:iconBackgroundColor="@color/message_icon_background_outgoing" />
+
+            <com.android.settings.display.ConversationMessageView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:incoming="true"
+                app:messageText="@string/screen_zoom_conversation_message_4"
+                app:timestampText="@string/screen_zoom_conversation_timestamp_4"
+                app:iconText="@string/screen_zoom_conversation_icon_pete"
+                app:iconTextColor="@color/message_icon_text_incoming"
+                app:iconBackgroundColor="@color/message_icon_background_incoming" />
+        </LinearLayout>
+    </view>
+</ScrollView>
diff --git a/res/layout/screen_zoom_preview_settings.xml b/res/layout/screen_zoom_preview_settings.xml
index 2e68009..f93adc2 100644
--- a/res/layout/screen_zoom_preview_settings.xml
+++ b/res/layout/screen_zoom_preview_settings.xml
@@ -17,204 +17,210 @@
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:scrollbars="none"
+    android:fillViewport="true"
     android:background="?android:attr/colorBackgroundFloating"
     android:importantForAccessibility="noHideDescendants">
 
-    <LinearLayout
+    <view class="com.android.settings.TouchBlockingFrameLayout"
+        android:id="@+id/frame"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical">
+        android:layout_height="wrap_content">
 
-        <!-- Wifi Setting -->
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingTop="16dp"
-            android:paddingStart="8dp"
-            android:orientation="horizontal">
+            android:orientation="vertical">
 
-            <ImageView
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:src="@drawable/wifi_signal_dark"
-                android:tint="?android:attr/colorAccent"
-                android:scaleType="center" />
-
+            <!-- Wifi Setting -->
             <LinearLayout
-                android:layout_width="0dp"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical"
-                android:paddingStart="16dp">
+                android:paddingTop="16dp"
+                android:paddingStart="8dp"
+                android:orientation="horizontal">
 
-                <TextView
-                    android:layout_width="wrap_content"
+                <ImageView
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:src="@drawable/wifi_signal_dark"
+                    android:tint="?android:attr/colorAccent"
+                    android:scaleType="center" />
+
+                <LinearLayout
+                    android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:text="@string/wifi_settings"
-                    android:textAppearance="@android:style/TextAppearance.Material.Subhead"
-                    android:textColor="?android:attr/textColorPrimary" />
+                    android:layout_weight="1"
+                    android:orientation="vertical"
+                    android:paddingStart="16dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/wifi_settings"
+                        android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+                        android:textColor="?android:attr/textColorPrimary" />
 
 
-                <TextView
-                    android:layout_width="wrap_content"
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/wifi_display_status_not_available"
+                        android:textAppearance="@android:style/TextAppearance.Material.Body1"
+                        android:textColor="?android:attr/textColorSecondary" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <!-- Data usage Setting -->
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingTop="16dp"
+                android:paddingStart="8dp"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:src="@drawable/ic_settings_data_usage"
+                    android:tint="?android:attr/colorAccent"
+                    android:scaleType="center" />
+
+                <LinearLayout
+                    android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:text="@string/wifi_display_status_not_available"
-                    android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                    android:textColor="?android:attr/textColorSecondary" />
+                    android:layout_weight="1"
+                    android:orientation="vertical"
+                    android:paddingStart="16dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/data_usage_summary_title"
+                        android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+                        android:textColor="?android:attr/textColorPrimary" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/no_data_usage"
+                        android:textAppearance="@android:style/TextAppearance.Material.Body1"
+                        android:textColor="?android:attr/textColorSecondary" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <!-- Display Setting -->
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingTop="16dp"
+                android:paddingStart="8dp"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:src="@drawable/ic_settings_display"
+                    android:tint="?android:attr/colorAccent"
+                    android:scaleType="center" />
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:orientation="vertical"
+                    android:paddingStart="16dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/display_settings_title"
+                        android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+                        android:textColor="?android:attr/textColorPrimary" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/display_summary_on"
+                        android:textAppearance="@android:style/TextAppearance.Material.Body1"
+                        android:textColor="?android:attr/textColorSecondary" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <!-- Sound & Notification Setting -->
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingTop="16dp"
+                android:paddingStart="8dp"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:src="@drawable/ic_settings_sound"
+                    android:tint="?android:attr/colorAccent"
+                    android:scaleType="center" />
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:orientation="vertical"
+                    android:paddingStart="16dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/sound_settings"
+                        android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+                        android:textColor="?android:attr/textColorPrimary" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/sound_settings_example_summary"
+                        android:textAppearance="@android:style/TextAppearance.Material.Body1"
+                        android:textColor="?android:attr/textColorSecondary" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <!-- Apps Setting -->
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingTop="16dp"
+                android:paddingStart="8dp"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:src="@drawable/ic_settings_applications"
+                    android:tint="?android:attr/colorAccent"
+                    android:scaleType="center" />
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:orientation="vertical"
+                    android:paddingStart="16dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/applications_settings"
+                        android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+                        android:textColor="?android:attr/textColorPrimary" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/apps_summary_example"
+                        android:textAppearance="@android:style/TextAppearance.Material.Body1"
+                        android:textColor="?android:attr/textColorSecondary" />
+                </LinearLayout>
             </LinearLayout>
         </LinearLayout>
-
-        <!-- Data usage Setting -->
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="16dp"
-            android:paddingStart="8dp"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:src="@drawable/ic_settings_data_usage"
-                android:tint="?android:attr/colorAccent"
-                android:scaleType="center" />
-
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical"
-                android:paddingStart="16dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/data_usage_summary_title"
-                    android:textAppearance="@android:style/TextAppearance.Material.Subhead"
-                    android:textColor="?android:attr/textColorPrimary" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/no_data_usage"
-                    android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                    android:textColor="?android:attr/textColorSecondary" />
-            </LinearLayout>
-        </LinearLayout>
-
-        <!-- Display Setting -->
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="16dp"
-            android:paddingStart="8dp"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:src="@drawable/ic_settings_display"
-                android:tint="?android:attr/colorAccent"
-                android:scaleType="center" />
-
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical"
-                android:paddingStart="16dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/display_settings_title"
-                    android:textAppearance="@android:style/TextAppearance.Material.Subhead"
-                    android:textColor="?android:attr/textColorPrimary" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/display_summary_on"
-                    android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                    android:textColor="?android:attr/textColorSecondary" />
-            </LinearLayout>
-        </LinearLayout>
-
-        <!-- Sound & Notification Setting -->
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="16dp"
-            android:paddingStart="8dp"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:src="@drawable/ic_settings_sound"
-                android:tint="?android:attr/colorAccent"
-                android:scaleType="center" />
-
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical"
-                android:paddingStart="16dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/sound_settings"
-                    android:textAppearance="@android:style/TextAppearance.Material.Subhead"
-                    android:textColor="?android:attr/textColorPrimary" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/sound_settings_example_summary"
-                    android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                    android:textColor="?android:attr/textColorSecondary" />
-            </LinearLayout>
-        </LinearLayout>
-
-        <!-- Apps Setting -->
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="16dp"
-            android:paddingStart="8dp"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:src="@drawable/ic_settings_applications"
-                android:tint="?android:attr/colorAccent"
-                android:scaleType="center" />
-
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical"
-                android:paddingStart="16dp">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/applications_settings"
-                    android:textAppearance="@android:style/TextAppearance.Material.Subhead"
-                    android:textColor="?android:attr/textColorPrimary" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/apps_summary_example"
-                    android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                    android:textColor="?android:attr/textColorSecondary" />
-            </LinearLayout>
-        </LinearLayout>
-    </LinearLayout>
+    </view>
 </ScrollView>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 3cd5503..a4e3401 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -294,6 +294,7 @@
 
     <!-- Display Size and Font Size preview screen -->
     <dimen name="preview_pager_padding">8dp</dimen>
+    <dimen name="preview_pager_min_height">200dp</dimen>
 
     <!-- Padding between the radio buttons/checkbox and text on the redaction interstitial -->
     <dimen name="redaction_padding_start">16dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a1ae9b1..ac7200f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -147,6 +147,8 @@
     <!-- Used for diagnostic info screens, precise translation isn't needed. Formats the SD card in the phone, meaning it will be erased and reformatted -->
     <string name="sdcard_format" product="default">Erase SD card</string>
 
+    <!-- Content description for preview pager. [CHAR LIMIT=NONE] -->
+    <string name="preview_pager_content_description">Preview</string>
     <!-- Content description for dot pager indicator for preview pager. [CHAR LIMIT=NONE] -->
     <string name="preview_page_indicator_content_description">Preview, page <xliff:g id="current_page" example="3">%1$d</xliff:g> of <xliff:g id="num_pages" example="9">%2$d</xliff:g></string>
 
@@ -538,7 +540,7 @@
     </plurals>
 
     <!-- The text of the confirmation dialog shown when the user selects several languages and tries to remove them [CHAR LIMIT=NONE] -->
-    <string name="dlg_remove_locales_message">Text will be displayed in another language</string>
+    <string name="dlg_remove_locales_message">Text will be displayed in another language.</string>
 
     <!-- The title of the error dialog shown when the user selects all the languages and tries to remove them [CHAR LIMIT=60] -->
     <string name="dlg_remove_locales_error_title">Can’t remove all languages</string>
@@ -3349,10 +3351,6 @@
     <string name="app_not_found_dlg_text"> The app wasn\u2019t found in the list of installed apps.</string>
     <!-- Manage applications, individual application dialog box message. Shown when there was an error trying to clear the data. -->
     <string name="clear_data_failed">Couldn\u2019t clear app data.</string>
-    <!-- Manage applications, factory reset dialog title for system applications. -->
-    <string name="app_factory_reset_dlg_title">Uninstall updates?</string>
-    <!-- Manage applications, factory reset option dialog text for system applications. -->
-    <string name="app_factory_reset_dlg_text">All updates to this Android system app will be uninstalled.</string>
     <!-- Manage applications, title for dialog if clear data fails-->
     <string name="clear_failed_dlg_title">Clear data</string>
     <!-- Manage applications, text for dialog if clear data fails-->
@@ -3618,8 +3616,8 @@
     <string name="virtual_keyboard_category">Virtual keyboard</string>
     <!-- Title for the 'available virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
     <string name="available_virtual_keyboard_category">Available virtual keyboard</string>
-    <!-- Title for the button to trigger the 'available virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
-    <string name="add_virtual_keyboard">Add a virtual keyboard</string>
+    <!-- Title for the button to trigger the 'Add or edit virtual keyboards' preference sub-screen. [CHAR LIMIT=35] -->
+    <string name="add_virtual_keyboard">Add or edit virtual keyboards</string>
     <!-- Title for the 'keyboard assistance' preference category. [CHAR LIMIT=35] -->
     <string name="keyboard_assistance_category">Keyboard assistance</string>
     <!-- Title for the 'physical keyboard' settings screen. [CHAR LIMIT=35] -->
@@ -6729,7 +6727,7 @@
     <!-- Title of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for charging only. -->
-    <string name="usb_use_charging_only">Charging</string>
+    <string name="usb_use_charging_only">Charge this device</string>
     <!-- Decription of one of the choices in a dialog (with title defined in usb_use) that lets the
          user select what the USB connection for this device should be used for. This choice
          is for charging only. -->
@@ -6737,15 +6735,15 @@
     <!-- Title of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for powering the other device only. -->
-    <string name="usb_use_power_only">Power supply</string>
+    <string name="usb_use_power_only">Supply power</string>
     <!-- Decription of one of the choices in a dialog (with title defined in usb_use) that lets the
          user select what the USB connection for this device should be used for. This choice
-         is for powering the other device only. -->
-    <string name="usb_use_power_only_desc">Charge the other connected device</string>
+         is for powering the other device. -->
+    <string name="usb_use_power_only_desc">Supply power to the other connected device</string>
     <!-- Title of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for transferring files via MTP. -->
-    <string name="usb_use_file_transfers">File transfers</string>
+    <string name="usb_use_file_transfers">Transfer files</string>
     <!-- Description of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for transferring files via MTP. -->
@@ -6753,7 +6751,7 @@
     <!-- Title of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for transferring photos via PTP. -->
-    <string name="usb_use_photo_transfers">Photo transfer (PTP)</string>
+    <string name="usb_use_photo_transfers">Transfer photos (PTP)</string>
     <!-- Description of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for transferring photos via PTP. -->
@@ -6761,15 +6759,15 @@
     <!-- Title of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for entering MIDI mode. -->
-    <string name="usb_use_MIDI">MIDI</string>
+    <string name="usb_use_MIDI">Use device as MIDI</string>
     <!-- Description of one of the choices in a dialog (with title defined in usb_use) that lets the user
          select what the USB connection for this device should be used for. This choice
          is for entering MIDI mode. -->
-    <string name="usb_use_MIDI_desc">Use device for MIDI input</string>
+    <string name="usb_use_MIDI_desc">Use this device as MIDI</string>
     <!-- The title used in a dialog which lets the user select what the USB connection
          for this device should be used for. Choices are usb_use_charging_only,
          usb_use_file_transfer, use_use_photo_transfer, and usb_use_MIDI -->
-    <string name="usb_use">Use USB for</string>
+    <string name="usb_use">Use USB to</string>
 
     <!-- Settings item title for background check prefs [CHAR LIMIT=35] -->
     <string name="background_check_pref">Background check</string>
diff --git a/res/xml/advanced_apps.xml b/res/xml/advanced_apps.xml
index 99da745..2673569 100644
--- a/res/xml/advanced_apps.xml
+++ b/res/xml/advanced_apps.xml
@@ -44,7 +44,8 @@
         <com.android.settings.applications.DefaultHomePreference
             android:key="default_home"
             android:title="@string/home_app"
-            android:summary="@string/no_default_home" />
+            android:summary="@string/no_default_home"
+            settings:keywords="@string/keywords_home" />
 
         <com.android.settings.applications.DefaultBrowserPreference
             android:key="default_browser"
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index abbb4c6..bb597a6 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -648,8 +648,13 @@
                                 mFingerprintManager.setActiveUser(UserHandle.myUserId());
                             }
                         });
+            } else {
+                // The removal callback will call finish, once all fingerprints are removed.
+                // We need to wait for that to occur, otherwise, the UI will still show that
+                // fingerprints exist even though they are (about to) be removed depending on
+                // the race condition.
+                finish();
             }
-            finish();
         }
 
         @Override
diff --git a/src/com/android/settings/PreviewPagerAdapter.java b/src/com/android/settings/PreviewPagerAdapter.java
index 8032f92..a2e7b0e 100644
--- a/src/com/android/settings/PreviewPagerAdapter.java
+++ b/src/com/android/settings/PreviewPagerAdapter.java
@@ -25,6 +25,8 @@
 import android.view.animation.DecelerateInterpolator;
 import android.view.animation.Interpolator;
 import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.ScrollView;
 
 /**
  * A PagerAdapter used by PreviewSeekBarPreferenceFragment that for showing multiple preview screen
@@ -32,7 +34,7 @@
  */
 public class PreviewPagerAdapter extends PagerAdapter {
 
-    private TouchBlockingFrameLayout[] mPreviewFrames;
+    private FrameLayout[] mPreviewFrames;
 
     /** Duration to use when cross-fading between previews. */
     private static final long CROSS_FADE_DURATION_MS = 400;
@@ -45,11 +47,17 @@
 
     public PreviewPagerAdapter(Context context, int[] previewSampleResIds,
                                Configuration[] configurations) {
-        mPreviewFrames = new TouchBlockingFrameLayout[previewSampleResIds.length];
+        mPreviewFrames = new FrameLayout[previewSampleResIds.length];
+
+        // We need to get the copy of the original configuration before we call
+        // createConfigurationContext() as that call changes the current configuration for the App.
+        final Configuration origConfig = context.getResources().getConfiguration();
 
         for (int i = 0; i < previewSampleResIds.length; ++i) {
-            mPreviewFrames[i] = (TouchBlockingFrameLayout) LayoutInflater.from(context)
-                    .inflate(R.layout.preview_frame_container, null);
+            mPreviewFrames[i] = new FrameLayout(context);
+            mPreviewFrames[i].setLayoutParams(new LinearLayout.LayoutParams(
+                    LinearLayout.LayoutParams.MATCH_PARENT,
+                    LinearLayout.LayoutParams.MATCH_PARENT));
             mPreviewFrames[i].setContentDescription(
                     context.getString(R.string.preview_page_indicator_content_description, i + 1,
                             previewSampleResIds.length));
@@ -65,10 +73,13 @@
                         mPreviewFrames[i], false);
                 sampleView.setAlpha(0);
                 sampleView.setVisibility(View.INVISIBLE);
-
                 mPreviewFrames[i].addView(sampleView);
             }
         }
+
+        // Create a context with the original App configuration since the last configuration passed
+        // to createConfigurationContext() becomes the configuration for any new views inflated.
+        context.createConfigurationContext(origConfig);
     }
 
     @Override
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 4aebe82..9c3a0d9 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -122,6 +122,7 @@
     public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
     public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ }
     public static class MemorySettingsActivity extends SettingsActivity { /* empty */ }
+    public static class AppMemoryUsageActivity extends SettingsActivity { /* empty */ }
     public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ }
     public static class WriteSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 61ab2c3..f91f7bf 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -134,7 +134,6 @@
     private static final int DLG_FORCE_STOP = DLG_BASE + 1;
     private static final int DLG_DISABLE = DLG_BASE + 2;
     private static final int DLG_SPECIAL_DISABLE = DLG_BASE + 3;
-    private static final int DLG_FACTORY_RESET = DLG_BASE + 4;
 
     private static final String KEY_HEADER = "header_view";
     private static final String KEY_NOTIFICATION = "notification_settings";
@@ -473,7 +472,7 @@
                 uninstallPkg(mAppEntry.info.packageName, true, false);
                 return true;
             case UNINSTALL_UPDATES:
-                showDialogInner(DLG_FACTORY_RESET, 0);
+                uninstallPkg(mAppEntry.info.packageName, false, false);
                 return true;
         }
         return false;
@@ -671,19 +670,6 @@
                         })
                         .setNegativeButton(R.string.dlg_cancel, null)
                         .create();
-            case DLG_FACTORY_RESET:
-                return new AlertDialog.Builder(getActivity())
-                        .setTitle(getActivity().getText(R.string.app_factory_reset_dlg_title))
-                        .setMessage(getActivity().getText(R.string.app_factory_reset_dlg_text))
-                        .setPositiveButton(R.string.dlg_ok, new DialogInterface.OnClickListener() {
-                            public void onClick(DialogInterface dialog, int which) {
-                                // Clear user data here
-                                uninstallPkg(mAppEntry.info.packageName,
-                                        false, false);
-                            }
-                        })
-                        .setNegativeButton(R.string.dlg_cancel, null)
-                        .create();
         }
         return null;
     }
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 34fed57..5a29cb7 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -106,6 +106,7 @@
     private static final String EXTRA_SORT_ORDER = "sortOrder";
     private static final String EXTRA_SHOW_SYSTEM = "showSystem";
     private static final String EXTRA_HAS_ENTRIES = "hasEntries";
+    private static final String EXTRA_HAS_BRIDGE = "hasBridge";
 
     // attributes used as keys when passing values to InstalledAppDetails activity
     public static final String APP_CHG = "chg";
@@ -314,6 +315,8 @@
             if (savedInstanceState != null) {
                 mApplications.mHasReceivedLoadEntries =
                         savedInstanceState.getBoolean(EXTRA_HAS_ENTRIES, false);
+                mApplications.mHasReceivedBridgeCallback =
+                        savedInstanceState.getBoolean(EXTRA_HAS_BRIDGE, false);
             }
             mListView.setAdapter(mApplications);
             mListView.setRecyclerListener(mApplications);
@@ -447,6 +450,7 @@
         outState.putInt(EXTRA_SORT_ORDER, mSortOrder);
         outState.putBoolean(EXTRA_SHOW_SYSTEM, mShowSystem);
         outState.putBoolean(EXTRA_HAS_ENTRIES, mApplications.mHasReceivedLoadEntries);
+        outState.putBoolean(EXTRA_HAS_BRIDGE, mApplications.mHasReceivedBridgeCallback);
     }
 
     @Override
@@ -640,7 +644,7 @@
     }
 
     public void setHasDisabled(boolean hasDisabledApps) {
-        if (mListType == LIST_TYPE_HIGH_POWER) {
+        if (mListType != LIST_TYPE_MAIN) {
             return;
         }
         mFilterAdapter.setFilterEnabled(FILTER_APPS_ENABLED, hasDisabledApps);
@@ -822,7 +826,7 @@
                 if (mExtraInfoBridge != null) {
                     mExtraInfoBridge.resume();
                 }
-                rebuild(true);
+                rebuild(false);
             } else {
                 rebuild(sort);
             }
@@ -855,7 +859,7 @@
 
         public void rebuild(boolean eraseold) {
             if (!mHasReceivedLoadEntries
-                    && (mExtraInfoBridge == null || mHasReceivedBridgeCallback)) {
+                    || (mExtraInfoBridge != null && !mHasReceivedBridgeCallback)) {
                 // Don't rebuild the list until all the app entries are loaded.
                 return;
             }
diff --git a/src/com/android/settings/inputmethod/InputMethodPreference.java b/src/com/android/settings/inputmethod/InputMethodPreference.java
index 3d6e7dc..f373749 100755
--- a/src/com/android/settings/inputmethod/InputMethodPreference.java
+++ b/src/com/android/settings/inputmethod/InputMethodPreference.java
@@ -55,7 +55,7 @@
         OnPreferenceChangeListener {
     private static final String TAG = InputMethodPreference.class.getSimpleName();
     private static final String EMPTY_TEXT = "";
-    private static final int SETTINGS_ICON_LAYOUT = R.layout.preference_settings_icon_widget;
+    private static final int NO_WIDGET = 0;
 
     interface OnSavePreferenceListener {
         /**
@@ -99,8 +99,8 @@
         mIsAllowedByOrganization = isAllowedByOrganization;
         mOnSaveListener = onSaveListener;
         if (!isImeEnabler) {
-            // Replace switch widget with settings icon.
-            setWidgetLayoutResource(SETTINGS_ICON_LAYOUT);
+            // Remove switch widget.
+            setWidgetLayoutResource(NO_WIDGET);
         }
         // Disable on/off switch texts.
         setSwitchTextOn(EMPTY_TEXT);
@@ -130,7 +130,7 @@
     private boolean isImeEnabler() {
         // If this {@link SwitchPreference} doesn't have a widget layout, we explicitly hide the
         // switch widget at constructor.
-        return getWidgetLayoutResource() != SETTINGS_ICON_LAYOUT;
+        return getWidgetLayoutResource() != NO_WIDGET;
     }
 
     @Override
diff --git a/src/com/android/settings/widget/LabeledSeekBar.java b/src/com/android/settings/widget/LabeledSeekBar.java
index 35a7d1b..00df09c 100644
--- a/src/com/android/settings/widget/LabeledSeekBar.java
+++ b/src/com/android/settings/widget/LabeledSeekBar.java
@@ -139,6 +139,9 @@
 
     private ExploreByTouchHelper mAccessHelper;
 
+    private boolean mOnMeasureCalled;
+    private boolean mOnAttachedWindowCalled;
+
     public LabeledSeekBar(Context context, AttributeSet attrs) {
         this(context, attrs, com.android.internal.R.attr.seekBarStyle);
     }
@@ -205,10 +208,17 @@
     }
 
     @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+        mOnMeasureCalled = true;
+        tryInitAccessHelper();
+    }
+
+    @Override
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
-        mAccessHelper = new LabeledSeekBarExploreByTouchHelper(this);
-        ViewCompat.setAccessibilityDelegate(this, mAccessHelper);
+        mOnAttachedWindowCalled = true;
+        tryInitAccessHelper();
     }
 
     @Override
@@ -227,6 +237,18 @@
         return super.dispatchHoverEvent(event);
     }
 
+    /**
+     * Initialize accessibility delegation only when both onAttachedWindow and onMeasure
+     * has been called.
+     */
+    private void tryInitAccessHelper() {
+        if (mOnAttachedWindowCalled && mOnMeasureCalled) {
+            mAccessHelper = new LabeledSeekBarExploreByTouchHelper(this);
+            ViewCompat.setAccessibilityDelegate(this, mAccessHelper);
+            mOnAttachedWindowCalled = mOnMeasureCalled = false;
+        }
+    }
+
     private void sendClickEventForAccessibility(int progress) {
         if (mAccessHelper != null) {
             mAccessHelper.invalidateRoot();
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 1c5ddc5..17cc3b6 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -175,7 +175,6 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        setAnimationAllowed(true);
         addPreferencesFromResource(R.xml.wifi_settings);
         mAddPreference = new Preference(getContext());
         mAddPreference.setIcon(R.drawable.ic_menu_add_inset);