Merge "Fixed AccessPreference listener." into nyc-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3ceeedf..6637d7e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1293,7 +1293,7 @@
         </activity>
 
         <activity android:name="MonitoringCertInfoActivity"
-                android:label="@string/ssl_ca_cert_dialog_title"
+                android:label=""
                 android:theme="@style/Transparent"
                 android:excludeFromRecents="true"
                 android:taskAffinity="">
@@ -1478,8 +1478,7 @@
         <activity android:name=".accessibility.AccessibilitySettingsForSetupWizardActivity"
                 android:label="@string/vision_settings_title"
                 android:theme="@style/SetupWizardAccessibilityTheme"
-                android:taskAffinity="com.android.wizard"
-                android:configChanges="orientation|keyboardHidden|screenSize" >
+                android:taskAffinity="com.android.wizard" >
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ACCESSIBILITY_SETTINGS_FOR_SUW" />
                 <category android:name="android.intent.category.DEFAULT" />
diff --git a/res/layout-h360dp/font_size_activity.xml b/res/layout-land/font_size_activity.xml
similarity index 73%
rename from res/layout-h360dp/font_size_activity.xml
rename to res/layout-land/font_size_activity.xml
index aa3930c..69abac1 100644
--- a/res/layout-h360dp/font_size_activity.xml
+++ b/res/layout-land/font_size_activity.xml
@@ -14,18 +14,34 @@
      limitations under the License.
 -->
 
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:fillViewport="true">
+            android:orientation="horizontal">
 
     <LinearLayout
         android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" >
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="match_parent">
 
         <include layout="@layout/preview_seek_bar_view_pager" />
 
+        <com.android.settings.widget.DotsPageIndicator
+            android:id="@+id/page_indicator"
+            style="@style/PreviewPagerPageIndicator"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:padding="6dp" />
+    </LinearLayout>
+
+    <ScrollView
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:layout_height="match_parent"
+            android:fillViewport="true">
+
         <LinearLayout
             android:orientation="vertical"
             android:layout_width="match_parent"
@@ -34,14 +50,6 @@
             android:paddingStart="?android:attr/listPreferredItemPaddingStart"
             android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
 
-            <com.android.settings.widget.DotsPageIndicator
-                android:id="@+id/page_indicator"
-                style="@style/PreviewPagerPageIndicator"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal"
-                android:padding="6dp" />
-
             <TextView
                 android:id="@+id/current_label"
                 android:layout_width="wrap_content"
@@ -51,16 +59,22 @@
                 android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
                 android:elevation="2dp" />
 
-            <LinearLayout
+            <com.android.settings.widget.LabeledSeekBar
+                android:id="@+id/seek_bar"
+                android:layout_width="match_parent"
+                android:layout_height="48dp"
+                style="@android:style/Widget.Material.SeekBar.Discrete" />
+
+            <RelativeLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:gravity="center_vertical"
-                android:paddingTop="8dp">
+                android:gravity="center_vertical">
 
                 <ImageView
                     android:id="@+id/smaller"
                     android:layout_width="48dp"
                     android:layout_height="48dp"
+                    android:layout_alignParentStart="true"
                     android:background="?android:attr/selectableItemBackgroundBorderless"
                     android:src="@drawable/ic_font_size_16dp"
                     android:tint="?android:attr/textColorPrimary"
@@ -69,17 +83,11 @@
                     android:focusable="true"
                     android:contentDescription="@string/font_size_make_smaller_desc" />
 
-                <com.android.settings.widget.LabeledSeekBar
-                    android:id="@+id/seek_bar"
-                    android:layout_width="0dp"
-                    android:layout_height="48dp"
-                    android:layout_weight="1"
-                    style="@android:style/Widget.Material.SeekBar.Discrete"/>
-
                 <ImageView
                     android:id="@+id/larger"
                     android:layout_width="48dp"
                     android:layout_height="48dp"
+                    android:layout_alignParentEnd="true"
                     android:background="?android:attr/selectableItemBackgroundBorderless"
                     android:src="@drawable/ic_font_size_24dp"
                     android:tint="?android:attr/textColorPrimary"
@@ -87,7 +95,7 @@
                     android:scaleType="center"
                     android:focusable="true"
                     android:contentDescription="@string/font_size_make_larger_desc" />
-            </LinearLayout>
+            </RelativeLayout>
 
             <TextView
                 android:layout_width="wrap_content"
@@ -96,5 +104,5 @@
                 android:layout_marginBottom="16dp"
                 android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
         </LinearLayout>
-    </LinearLayout>
-</ScrollView>
+    </ScrollView>
+</LinearLayout>
diff --git a/res/layout-h360dp/screen_zoom_activity.xml b/res/layout-land/screen_zoom_activity.xml
similarity index 74%
rename from res/layout-h360dp/screen_zoom_activity.xml
rename to res/layout-land/screen_zoom_activity.xml
index 0141019..8d6e735 100644
--- a/res/layout-h360dp/screen_zoom_activity.xml
+++ b/res/layout-land/screen_zoom_activity.xml
@@ -14,18 +14,34 @@
      limitations under the License.
 -->
 
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:fillViewport="true">
+            android:orientation="horizontal">
 
     <LinearLayout
         android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" >
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="match_parent" >
 
         <include layout="@layout/preview_seek_bar_view_pager" />
 
+        <com.android.settings.widget.DotsPageIndicator
+            android:id="@+id/page_indicator"
+            style="@style/PreviewPagerPageIndicator"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:padding="6dp" />
+    </LinearLayout>
+
+    <ScrollView
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:layout_height="match_parent"
+            android:fillViewport="true">
+
         <LinearLayout
             android:orientation="vertical"
             android:layout_width="match_parent"
@@ -34,14 +50,6 @@
             android:paddingStart="?android:attr/listPreferredItemPaddingStart"
             android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
 
-            <com.android.settings.widget.DotsPageIndicator
-                android:id="@+id/page_indicator"
-                style="@style/PreviewPagerPageIndicator"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal"
-                android:padding="6dp" />
-
             <TextView
                 android:id="@+id/current_label"
                 android:layout_width="wrap_content"
@@ -51,7 +59,13 @@
                 android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
                 android:elevation="2dp" />
 
-            <LinearLayout
+            <com.android.settings.widget.LabeledSeekBar
+                android:id="@+id/seek_bar"
+                android:layout_width="match_parent"
+                android:layout_height="48dp"
+                style="@android:style/Widget.Material.SeekBar.Discrete"/>
+
+            <RelativeLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:gravity="center_vertical">
@@ -60,6 +74,7 @@
                     android:id="@+id/smaller"
                     android:layout_width="48dp"
                     android:layout_height="48dp"
+                    android:layout_alignParentStart="true"
                     android:background="?android:attr/selectableItemBackgroundBorderless"
                     android:src="@drawable/ic_remove_24dp"
                     android:tint="?android:attr/textColorPrimary"
@@ -68,17 +83,11 @@
                     android:focusable="true"
                     android:contentDescription="@string/screen_zoom_make_smaller_desc" />
 
-                <com.android.settings.widget.LabeledSeekBar
-                    android:id="@+id/seek_bar"
-                    android:layout_width="0dp"
-                    android:layout_height="48dp"
-                    android:layout_weight="1"
-                    style="@android:style/Widget.Material.SeekBar.Discrete"/>
-
                 <ImageView
                     android:id="@+id/larger"
                     android:layout_width="48dp"
                     android:layout_height="48dp"
+                    android:layout_alignParentEnd="true"
                     android:background="?android:attr/selectableItemBackgroundBorderless"
                     android:src="@drawable/ic_add_24dp"
                     android:tint="?android:attr/textColorPrimary"
@@ -86,7 +95,7 @@
                     android:scaleType="center"
                     android:focusable="true"
                     android:contentDescription="@string/screen_zoom_make_larger_desc" />
-            </LinearLayout>
+            </RelativeLayout>
 
             <TextView
                 android:layout_width="wrap_content"
@@ -95,5 +104,5 @@
                 android:layout_marginBottom="16dp"
                 android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
         </LinearLayout>
-    </LinearLayout>
-</ScrollView>
+    </ScrollView>
+</LinearLayout>
diff --git a/res/layout/condition_card.xml b/res/layout/condition_card.xml
index 0e480a5..c1224b5 100644
--- a/res/layout/condition_card.xml
+++ b/res/layout/condition_card.xml
@@ -85,11 +85,13 @@
 
             <!-- TODO: Better background -->
             <View
+                android:id="@+id/divider"
                 android:layout_width="match_parent"
                 android:layout_height=".25dp"
                 android:background="@android:color/white" />
 
             <com.android.internal.widget.ButtonBarLayout
+                android:id="@+id/buttonBar"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:paddingTop="8dp"
diff --git a/res/layout/conversation_message_content.xml b/res/layout/conversation_message_content.xml
index 7bc53e5..bdb0ea7 100644
--- a/res/layout/conversation_message_content.xml
+++ b/res/layout/conversation_message_content.xml
@@ -25,7 +25,6 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:orientation="vertical"
-        android:minHeight="@dimen/conversation_message_contact_icon_size"
         android:layout_marginTop="0dp" >
 
         <TextView
diff --git a/res/layout/conversation_message_icon.xml b/res/layout/conversation_message_icon.xml
index 4ffd285..9f9f0ac 100644
--- a/res/layout/conversation_message_icon.xml
+++ b/res/layout/conversation_message_icon.xml
@@ -16,8 +16,8 @@
 
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/conversation_icon"
-    android:layout_width="@dimen/conversation_message_contact_icon_size"
-    android:layout_height="@dimen/conversation_message_contact_icon_size"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
     android:fontFamily="sans-serif"
     android:textStyle="bold"
     android:textSize="@dimen/conversation_message_contact_icon_text_size"
diff --git a/res/layout/font_size_activity.xml b/res/layout/font_size_activity.xml
index 4825f24..aa3930c 100644
--- a/res/layout/font_size_activity.xml
+++ b/res/layout/font_size_activity.xml
@@ -22,63 +22,79 @@
     <LinearLayout
         android:orientation="vertical"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingTop="16dp"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+        android:layout_height="wrap_content" >
 
-        <TextView
-            android:id="@+id/current_label"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:padding="6dp"
-            android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
-            android:elevation="2dp" />
+        <include layout="@layout/preview_seek_bar_view_pager" />
 
         <LinearLayout
+            android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:gravity="center_vertical"
-            android:paddingTop="8dp">
+            android:paddingTop="16dp"
+            android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+            android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
 
-            <ImageView
-                android:id="@+id/smaller"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:background="?android:attr/selectableItemBackgroundBorderless"
-                android:src="@drawable/ic_font_size_16dp"
-                android:tint="?android:attr/textColorPrimary"
-                android:tintMode="src_in"
-                android:scaleType="center"
-                android:focusable="true"
-                android:contentDescription="@string/font_size_make_smaller_desc" />
+            <com.android.settings.widget.DotsPageIndicator
+                android:id="@+id/page_indicator"
+                style="@style/PreviewPagerPageIndicator"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:padding="6dp" />
 
-            <com.android.settings.widget.LabeledSeekBar
-                android:id="@+id/seek_bar"
-                android:layout_width="0dp"
-                android:layout_height="48dp"
-                android:layout_weight="1"
-                style="@android:style/Widget.Material.SeekBar.Discrete"/>
+            <TextView
+                android:id="@+id/current_label"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:padding="6dp"
+                android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
+                android:elevation="2dp" />
 
-            <ImageView
-                android:id="@+id/larger"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:background="?android:attr/selectableItemBackgroundBorderless"
-                android:src="@drawable/ic_font_size_24dp"
-                android:tint="?android:attr/textColorPrimary"
-                android:tintMode="src_in"
-                android:scaleType="center"
-                android:focusable="true"
-                android:contentDescription="@string/font_size_make_larger_desc" />
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center_vertical"
+                android:paddingTop="8dp">
+
+                <ImageView
+                    android:id="@+id/smaller"
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:background="?android:attr/selectableItemBackgroundBorderless"
+                    android:src="@drawable/ic_font_size_16dp"
+                    android:tint="?android:attr/textColorPrimary"
+                    android:tintMode="src_in"
+                    android:scaleType="center"
+                    android:focusable="true"
+                    android:contentDescription="@string/font_size_make_smaller_desc" />
+
+                <com.android.settings.widget.LabeledSeekBar
+                    android:id="@+id/seek_bar"
+                    android:layout_width="0dp"
+                    android:layout_height="48dp"
+                    android:layout_weight="1"
+                    style="@android:style/Widget.Material.SeekBar.Discrete"/>
+
+                <ImageView
+                    android:id="@+id/larger"
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:background="?android:attr/selectableItemBackgroundBorderless"
+                    android:src="@drawable/ic_font_size_24dp"
+                    android:tint="?android:attr/textColorPrimary"
+                    android:tintMode="src_in"
+                    android:scaleType="center"
+                    android:focusable="true"
+                    android:contentDescription="@string/font_size_make_larger_desc" />
+            </LinearLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/font_size_summary"
+                android:layout_marginBottom="16dp"
+                android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
         </LinearLayout>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/font_size_summary"
-            android:layout_marginBottom="16dp"
-            android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
     </LinearLayout>
 </ScrollView>
diff --git a/res/layout/preview_seek_bar_view_pager.xml b/res/layout/preview_seek_bar_view_pager.xml
index e24b674..5524d8a 100644
--- a/res/layout/preview_seek_bar_view_pager.xml
+++ b/res/layout/preview_seek_bar_view_pager.xml
@@ -19,7 +19,6 @@
     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" >
 
diff --git a/res/layout/screen_zoom_activity.xml b/res/layout/screen_zoom_activity.xml
index 36dd9fa..0141019 100644
--- a/res/layout/screen_zoom_activity.xml
+++ b/res/layout/screen_zoom_activity.xml
@@ -22,62 +22,78 @@
     <LinearLayout
         android:orientation="vertical"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingTop="16dp"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+        android:layout_height="wrap_content" >
 
-        <TextView
-            android:id="@+id/current_label"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:padding="6dp"
-            android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
-            android:elevation="2dp" />
+        <include layout="@layout/preview_seek_bar_view_pager" />
 
         <LinearLayout
+            android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:gravity="center_vertical">
+            android:paddingTop="16dp"
+            android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+            android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
 
-            <ImageView
-                android:id="@+id/smaller"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:background="?android:attr/selectableItemBackgroundBorderless"
-                android:src="@drawable/ic_remove_24dp"
-                android:tint="?android:attr/textColorPrimary"
-                android:tintMode="src_in"
-                android:scaleType="center"
-                android:focusable="true"
-                android:contentDescription="@string/screen_zoom_make_smaller_desc" />
+            <com.android.settings.widget.DotsPageIndicator
+                android:id="@+id/page_indicator"
+                style="@style/PreviewPagerPageIndicator"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:padding="6dp" />
 
-            <com.android.settings.widget.LabeledSeekBar
-                android:id="@+id/seek_bar"
-                android:layout_width="0dp"
-                android:layout_height="48dp"
-                android:layout_weight="1"
-                style="@android:style/Widget.Material.SeekBar.Discrete"/>
+            <TextView
+                android:id="@+id/current_label"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:padding="6dp"
+                android:textAppearance="@android:style/TextAppearance.Material.Widget.TextView"
+                android:elevation="2dp" />
 
-            <ImageView
-                android:id="@+id/larger"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:background="?android:attr/selectableItemBackgroundBorderless"
-                android:src="@drawable/ic_add_24dp"
-                android:tint="?android:attr/textColorPrimary"
-                android:tintMode="src_in"
-                android:scaleType="center"
-                android:focusable="true"
-                android:contentDescription="@string/screen_zoom_make_larger_desc" />
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center_vertical">
+
+                <ImageView
+                    android:id="@+id/smaller"
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:background="?android:attr/selectableItemBackgroundBorderless"
+                    android:src="@drawable/ic_remove_24dp"
+                    android:tint="?android:attr/textColorPrimary"
+                    android:tintMode="src_in"
+                    android:scaleType="center"
+                    android:focusable="true"
+                    android:contentDescription="@string/screen_zoom_make_smaller_desc" />
+
+                <com.android.settings.widget.LabeledSeekBar
+                    android:id="@+id/seek_bar"
+                    android:layout_width="0dp"
+                    android:layout_height="48dp"
+                    android:layout_weight="1"
+                    style="@android:style/Widget.Material.SeekBar.Discrete"/>
+
+                <ImageView
+                    android:id="@+id/larger"
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:background="?android:attr/selectableItemBackgroundBorderless"
+                    android:src="@drawable/ic_add_24dp"
+                    android:tint="?android:attr/textColorPrimary"
+                    android:tintMode="src_in"
+                    android:scaleType="center"
+                    android:focusable="true"
+                    android:contentDescription="@string/screen_zoom_make_larger_desc" />
+            </LinearLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/screen_zoom_summary"
+                android:layout_marginBottom="16dp"
+                android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
         </LinearLayout>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/screen_zoom_summary"
-            android:layout_marginBottom="16dp"
-            android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
     </LinearLayout>
 </ScrollView>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index eb06105..ef7efa2 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -263,10 +263,8 @@
     <dimen name="unmount_button_padding">8dp</dimen>
 
     <!-- Display, Screen zoom -->
-    <dimen name="screen_zoom_preview_height">240dp</dimen>
     <dimen name="screen_zoom_preview_app_icon_width">88dp</dimen>
     <dimen name="conversation_message_list_padding">10dp</dimen>
-    <dimen name="conversation_message_contact_icon_size">42dp</dimen>
     <dimen name="conversation_message_contact_icon_text_size">32sp</dimen>
     <dimen name="conversation_message_text_size">16sp</dimen>
     <dimen name="conversation_status_text_size">12sp</dimen>
@@ -282,9 +280,6 @@
     <dimen name="accessibility_layout_margin_start_end">24dp</dimen>
     <dimen name="accessibility_button_preference_padding_top_bottom">18dp</dimen>
 
-    <!-- Accessibility, Font size -->
-    <dimen name="font_size_preview_height">240dp</dimen>
-
     <!-- Accessibility, Screen magnification. These values are meant to be relative values and the actual layout value will be set programmatically. -->
     <dimen name="screen_magnification_video_background_width">750dp</dimen>
     <dimen name="screen_magnification_video_background_height">383dp</dimen>
@@ -297,7 +292,6 @@
 
     <!-- Display Size and Font Size preview screen -->
     <dimen name="preview_pager_padding">8dp</dimen>
-    <dimen name="preview_pager_min_height">240dp</dimen>
 
     <!-- Padding between the radio buttons/checkbox and text on the redaction interstitial -->
     <dimen name="redaction_padding_start">16dp</dimen>
diff --git a/src/com/android/settings/MonitoringCertInfoActivity.java b/src/com/android/settings/MonitoringCertInfoActivity.java
index cfa8e6f..7bf5768 100644
--- a/src/com/android/settings/MonitoringCertInfoActivity.java
+++ b/src/com/android/settings/MonitoringCertInfoActivity.java
@@ -41,10 +41,12 @@
         DevicePolicyManager dpm = getSystemService(DevicePolicyManager.class);
         final int numberOfCertificates = getIntent().getIntExtra(
                 Settings.EXTRA_NUMBER_OF_CERTIFICATES, 1);
+        final CharSequence title = getResources().getQuantityText(
+                R.plurals.ssl_ca_cert_dialog_title, numberOfCertificates);
+        setTitle(title);
 
         final AlertDialog.Builder builder = new AlertDialog.Builder(this);
-        builder.setTitle(getResources().getQuantityText(R.plurals.ssl_ca_cert_dialog_title,
-                numberOfCertificates));
+        builder.setTitle(title);
         builder.setCancelable(true);
         builder.setPositiveButton(getResources().getQuantityText(
                 R.plurals.ssl_ca_cert_settings_button, numberOfCertificates) , this);
diff --git a/src/com/android/settings/PreviewSeekBarPreferenceFragment.java b/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
index ff9e035..9d4a09e 100644
--- a/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
+++ b/src/com/android/settings/PreviewSeekBarPreferenceFragment.java
@@ -156,21 +156,19 @@
         }
 
         mPreviewPager = (ViewPager) content.findViewById(R.id.preview_pager);
-        if (mPreviewPager != null) {
-            mPreviewPagerAdapter = new PreviewPagerAdapter(context, isLayoutRtl,
-                    mPreviewSampleResIds, configurations);
-            mPreviewPager.setAdapter(mPreviewPagerAdapter);
-            mPreviewPager.setCurrentItem(isLayoutRtl ? mPreviewSampleResIds.length - 1 : 0);
-            mPreviewPager.addOnPageChangeListener(mPreviewPageChangeListener);
+        mPreviewPagerAdapter = new PreviewPagerAdapter(context, isLayoutRtl,
+                mPreviewSampleResIds, configurations);
+        mPreviewPager.setAdapter(mPreviewPagerAdapter);
+        mPreviewPager.setCurrentItem(isLayoutRtl ? mPreviewSampleResIds.length - 1 : 0);
+        mPreviewPager.addOnPageChangeListener(mPreviewPageChangeListener);
 
-            mPageIndicator = (DotsPageIndicator) content.findViewById(R.id.page_indicator);
-            if (mPreviewSampleResIds.length > 1) {
-                mPageIndicator.setViewPager(mPreviewPager);
-                mPageIndicator.setVisibility(View.VISIBLE);
-                mPageIndicator.setOnPageChangeListener(mPageIndicatorPageChangeListener);
-            } else {
-                mPageIndicator.setVisibility(View.GONE);
-            }
+        mPageIndicator = (DotsPageIndicator) content.findViewById(R.id.page_indicator);
+        if (mPreviewSampleResIds.length > 1) {
+            mPageIndicator.setViewPager(mPreviewPager);
+            mPageIndicator.setVisibility(View.VISIBLE);
+            mPageIndicator.setOnPageChangeListener(mPageIndicatorPageChangeListener);
+        } else {
+            mPageIndicator.setVisibility(View.GONE);
         }
 
         setPreviewLayer(mInitialIndex, false);
@@ -191,11 +189,9 @@
         mLabel.setText(mEntries[index]);
         mSmaller.setEnabled(index > 0);
         mLarger.setEnabled(index < mEntries.length - 1);
-        if (mPreviewPager != null) {
-            setPagerIndicatorContentDescription(mPreviewPager.getCurrentItem());
-            mPreviewPagerAdapter.setPreviewLayer(index, mCurrentIndex,
-                    mPreviewPager.getCurrentItem(), animate);
-        }
+        setPagerIndicatorContentDescription(mPreviewPager.getCurrentItem());
+        mPreviewPagerAdapter.setPreviewLayer(index, mCurrentIndex,
+                mPreviewPager.getCurrentItem(), animate);
 
         mCurrentIndex = index;
     }
diff --git a/src/com/android/settings/accounts/AccountSettings.java b/src/com/android/settings/accounts/AccountSettings.java
index 852d33a..3b4c722 100644
--- a/src/com/android/settings/accounts/AccountSettings.java
+++ b/src/com/android/settings/accounts/AccountSettings.java
@@ -191,6 +191,7 @@
     @Override
     public void onResume() {
         super.onResume();
+        cleanUpPreferences();
         updateUi();
         mManagedProfileBroadcastReceiver.register(getActivity());
         listenToAccountUpdates();
@@ -201,7 +202,6 @@
         super.onPause();
         stopListeningToAccountUpdates();
         mManagedProfileBroadcastReceiver.unregister(getActivity());
-        cleanUpPreferences();
     }
 
     @Override
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 3679699..14277c9 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -52,7 +52,6 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
-import android.service.notification.NotificationListenerService;
 import android.service.notification.NotificationListenerService.Ranking;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceClickListener;
@@ -936,7 +935,7 @@
     }
 
     private boolean hasPermission(String permission) {
-        if (mPackageInfo.requestedPermissions == null) {
+        if (mPackageInfo == null || mPackageInfo.requestedPermissions == null) {
             return false;
         }
         for (int i = 0; i < mPackageInfo.requestedPermissions.length; i++) {
diff --git a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
index a5d0701..9a45a5a 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
@@ -74,13 +74,13 @@
         expand.setOnClickListener(onExpandListener);
 
         View detailGroup = view.itemView.findViewById(R.id.detail_group);
+        CharSequence[] actions = condition.getActions();
         if (isExpanded != (detailGroup.getVisibility() == View.VISIBLE)) {
             animateChange(view.itemView, view.itemView.findViewById(R.id.content),
-                    detailGroup, isExpanded);
+                    detailGroup, isExpanded, actions.length > 0);
         }
         if (isExpanded) {
             view.summary.setText(condition.getSummary());
-            CharSequence[] actions = condition.getActions();
             for (int i = 0; i < 2; i++) {
                 Button button = (Button) detailGroup.findViewById(i == 0
                         ? R.id.first_action : R.id.second_action);
@@ -105,7 +105,9 @@
     }
 
     private static void animateChange(final View view, final View content,
-            final View detailGroup, final boolean visible) {
+            final View detailGroup, final boolean visible, final boolean hasButtons) {
+        setViewVisibility(detailGroup, R.id.divider, hasButtons);
+        setViewVisibility(detailGroup, R.id.buttonBar, hasButtons);
         final int beforeBottom = content.getBottom();
         setHeight(detailGroup, visible ? LayoutParams.WRAP_CONTENT : 0);
         detailGroup.setVisibility(View.VISIBLE);
@@ -138,4 +140,11 @@
         params.height = height;
         detailGroup.setLayoutParams(params);
     }
+
+    private static void setViewVisibility(View containerView, int viewId, boolean visible) {
+        View view = containerView.findViewById(viewId);
+        if (view != null) {
+            view.setVisibility(visible ? View.VISIBLE : View.GONE);
+        }
+    }
 }
diff --git a/src/com/android/settings/dashboard/conditional/HotspotCondition.java b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
index be74c9e..17be591 100644
--- a/src/com/android/settings/dashboard/conditional/HotspotCondition.java
+++ b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
@@ -21,10 +21,15 @@
 import android.graphics.drawable.Icon;
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiManager;
+import android.os.UserHandle;
+import android.os.UserManager;
+
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.TetherSettings;
 import com.android.settings.Utils;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.TetherUtil;
 
 public class HotspotCondition extends Condition {
@@ -74,7 +79,12 @@
 
     @Override
     public CharSequence[] getActions() {
-        return new CharSequence[] { mManager.getContext().getString(R.string.condition_turn_off) };
+        final Context context = mManager.getContext();
+        if (RestrictedLockUtils.hasBaseUserRestriction(context,
+                UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId())) {
+            return new CharSequence[0];
+        }
+        return new CharSequence[] { context.getString(R.string.condition_turn_off) };
     }
 
     @Override
@@ -86,8 +96,15 @@
     @Override
     public void onActionClick(int index) {
         if (index == 0) {
-            TetherUtil.setWifiTethering(false, mManager.getContext());
-            setActive(false);
+            final Context context = mManager.getContext();
+            final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(context,
+                    UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId());
+            if (admin != null) {
+                RestrictedLockUtils.sendShowAdminSupportDetailsIntent(context, admin);
+            } else {
+                TetherUtil.setWifiTethering(false, context);
+                setActive(false);
+            }
         } else {
             throw new IllegalArgumentException("Unexpected index " + index);
         }
diff --git a/src/com/android/settings/display/ConversationMessageView.java b/src/com/android/settings/display/ConversationMessageView.java
index a0889c4..06e7b9b 100644
--- a/src/com/android/settings/display/ConversationMessageView.java
+++ b/src/com/android/settings/display/ConversationMessageView.java
@@ -96,13 +96,15 @@
         updateViewAppearance();
 
         final int horizontalSpace = MeasureSpec.getSize(widthMeasureSpec);
-        final int iconSize = getResources()
-                .getDimensionPixelSize(R.dimen.conversation_message_contact_icon_size);
 
         final int unspecifiedMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
-        final int iconMeasureSpec = MeasureSpec.makeMeasureSpec(iconSize, MeasureSpec.EXACTLY);
+        int iconMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
 
         mContactIconView.measure(iconMeasureSpec, iconMeasureSpec);
+        iconMeasureSpec = MeasureSpec.makeMeasureSpec(
+                Math.max(mContactIconView.getMeasuredWidth(), mContactIconView.getMeasuredHeight()),
+                MeasureSpec.EXACTLY);
+        mContactIconView.measure(iconMeasureSpec, iconMeasureSpec);
 
         final int arrowWidth =
                 getResources().getDimensionPixelSize(R.dimen.message_bubble_arrow_width);
diff --git a/src/com/android/settings/inputmethod/SpellCheckersSettings.java b/src/com/android/settings/inputmethod/SpellCheckersSettings.java
index bc2a5c0..3309af2 100644
--- a/src/com/android/settings/inputmethod/SpellCheckersSettings.java
+++ b/src/com/android/settings/inputmethod/SpellCheckersSettings.java
@@ -113,7 +113,7 @@
         mSwitchBar.setChecked(isSpellCheckerEnabled);
 
         final SpellCheckerSubtype currentScs;
-        if (mCurrentSci == null) {
+        if (mCurrentSci != null) {
             currentScs = mTsm.getCurrentSpellCheckerSubtype(
                     false /* allowImplicitlySelectedSubtype */);
         } else {
diff --git a/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java b/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java
index fe81a81..3b36de6 100644
--- a/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java
@@ -113,7 +113,7 @@
             InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference(pref);
             pref.updatePreferenceViews();
         }
-        mAddVirtualKeyboardScreen.setIcon(R.drawable.ic_add);
+        mAddVirtualKeyboardScreen.setIcon(R.drawable.ic_add_24dp);
         mAddVirtualKeyboardScreen.setOrder(N);
         getPreferenceScreen().addPreference(mAddVirtualKeyboardScreen);
     }
diff --git a/src/com/android/settings/widget/LabeledSeekBar.java b/src/com/android/settings/widget/LabeledSeekBar.java
index bf6983e..f1a6788 100644
--- a/src/com/android/settings/widget/LabeledSeekBar.java
+++ b/src/com/android/settings/widget/LabeledSeekBar.java
@@ -17,6 +17,7 @@
 package com.android.settings.widget;
 
 import android.content.Context;
+import android.content.res.Configuration;
 import android.graphics.Rect;
 import android.os.Bundle;
 import android.support.v4.view.ViewCompat;
@@ -24,6 +25,7 @@
 import android.support.v4.widget.ExploreByTouchHelper;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
+import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
@@ -121,8 +123,12 @@
 
     private class LabeledSeekBarExploreByTouchHelper extends ExploreByTouchHelper {
 
+        private boolean mIsLayoutRtl;
+
         public LabeledSeekBarExploreByTouchHelper(LabeledSeekBar forView) {
             super(forView);
+            mIsLayoutRtl = forView.getResources().getConfiguration()
+                    .getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
         }
 
         @Override
@@ -192,20 +198,23 @@
         }
 
         private int getVirtualViewIdIndexFromX(float x) {
-            final int posBase = Math.max(0,
+            int posBase = Math.max(0,
                     ((int) x - LabeledSeekBar.this.getPaddingStart()) / getHalfVirtualViewWidth());
-            return (posBase + 1) / 2;
+            posBase = (posBase + 1) / 2;
+            return mIsLayoutRtl ? LabeledSeekBar.this.getMax() - posBase : posBase;
         }
 
         private Rect getBoundsInParentFromVirtualViewId(int virtualViewId) {
-            int left = (virtualViewId * 2 - 1) * getHalfVirtualViewWidth()
+            final int updatedVirtualViewId = mIsLayoutRtl
+                    ? LabeledSeekBar.this.getMax() - virtualViewId : virtualViewId;
+            int left = (updatedVirtualViewId * 2 - 1) * getHalfVirtualViewWidth()
                     + LabeledSeekBar.this.getPaddingStart();
-            int right = (virtualViewId * 2 + 1) * getHalfVirtualViewWidth()
+            int right = (updatedVirtualViewId * 2 + 1) * getHalfVirtualViewWidth()
                     + LabeledSeekBar.this.getPaddingStart();
 
             // Edge case
-            left = virtualViewId == 0 ? 0 : left;
-            right = virtualViewId == LabeledSeekBar.this.getMax()
+            left = updatedVirtualViewId == 0 ? 0 : left;
+            right = updatedVirtualViewId == LabeledSeekBar.this.getMax()
                     ? LabeledSeekBar.this.getWidth() : right;
 
             final Rect r = new Rect();
diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java
index 2ff404d..f064050 100644
--- a/src/com/android/settings/wifi/WifiEnabler.java
+++ b/src/com/android/settings/wifi/WifiEnabler.java
@@ -26,6 +26,8 @@
 import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.os.Message;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.provider.Settings;
 import android.widget.Switch;
 import android.widget.Toast;
@@ -35,6 +37,8 @@
 import com.android.settings.R;
 import com.android.settings.search.Index;
 import com.android.settings.widget.SwitchBar;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.WirelessUtils;
 
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -136,6 +140,9 @@
     }
 
     private void handleWifiStateChanged(int state) {
+        // Clear any previous state
+        mSwitchBar.setDisabledByAdmin(null);
+
         switch (state) {
             case WifiManager.WIFI_STATE_ENABLING:
                 mSwitchBar.setEnabled(false);
@@ -158,6 +165,16 @@
                 mSwitchBar.setEnabled(true);
                 updateSearchIndex(false);
         }
+        if (mayDisableTethering(!mSwitchBar.isChecked())) {
+            if (RestrictedLockUtils.hasBaseUserRestriction(mContext,
+                    UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId())) {
+                mSwitchBar.setEnabled(false);
+            } else {
+                final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(mContext,
+                    UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId());
+                mSwitchBar.setDisabledByAdmin(admin);
+            }
+        }
     }
 
     private void updateSearchIndex(boolean isWiFiOn) {
@@ -206,9 +223,7 @@
         }
 
         // Disable tethering if enabling Wifi
-        int wifiApState = mWifiManager.getWifiApState();
-        if (isChecked && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) ||
-                (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) {
+        if (mayDisableTethering(isChecked)) {
             mWifiManager.setWifiApEnabled(null, false);
         }
         MetricsLogger.action(mContext,
@@ -219,4 +234,10 @@
             Toast.makeText(mContext, R.string.wifi_error, Toast.LENGTH_SHORT).show();
         }
     }
+
+    private boolean mayDisableTethering(boolean isChecked) {
+        final int wifiApState = mWifiManager.getWifiApState();
+        return isChecked && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) ||
+            (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED));
+    }
 }