diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index 1a69b13..eb2e730 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -937,27 +937,11 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;status_bar_color&quot;>#3c3c3c&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="99"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;shortcut_background&quot;>#fff5f5f5&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="102"
+            line="100"
             column="5"/>
     </issue>
 
@@ -973,23 +957,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="105"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;fallback_tintColor&quot;>#89000000&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="108"
+            line="103"
             column="5"/>
     </issue>
 
@@ -1005,7 +973,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="111"
+            line="106"
             column="5"/>
     </issue>
 
@@ -1021,7 +989,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="112"
+            line="107"
             column="5"/>
     </issue>
 
@@ -1037,7 +1005,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="115"
+            line="110"
             column="5"/>
     </issue>
 
@@ -1053,7 +1021,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="116"
+            line="111"
             column="5"/>
     </issue>
 
@@ -1069,7 +1037,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="117"
+            line="112"
             column="5"/>
     </issue>
 
@@ -1085,7 +1053,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="118"
+            line="113"
             column="5"/>
     </issue>
 
@@ -1101,7 +1069,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="119"
+            line="114"
             column="5"/>
     </issue>
 
@@ -1117,7 +1085,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="120"
+            line="115"
             column="5"/>
     </issue>
 
@@ -1133,7 +1101,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="121"
+            line="116"
             column="5"/>
     </issue>
 
@@ -1149,7 +1117,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="122"
+            line="117"
             column="5"/>
     </issue>
 
@@ -1165,7 +1133,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="123"
+            line="118"
             column="5"/>
     </issue>
 
@@ -1181,7 +1149,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="124"
+            line="119"
             column="5"/>
     </issue>
 
@@ -1197,7 +1165,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="125"
+            line="120"
             column="5"/>
     </issue>
 
@@ -1213,7 +1181,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="126"
+            line="121"
             column="5"/>
     </issue>
 
@@ -1229,7 +1197,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="127"
+            line="122"
             column="5"/>
     </issue>
 
@@ -1245,7 +1213,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="128"
+            line="123"
             column="5"/>
     </issue>
 
@@ -1261,7 +1229,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="129"
+            line="124"
             column="5"/>
     </issue>
 
@@ -1277,7 +1245,23 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="130"
+            line="125"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;homepage_card_stroke_color&quot;>#1f000000&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="126"
             column="5"/>
     </issue>
 
@@ -1293,7 +1277,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="134"
+            line="130"
             column="5"/>
     </issue>
 
@@ -1309,7 +1293,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="139"
+            line="135"
             column="5"/>
     </issue>
 
@@ -1325,7 +1309,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="140"
+            line="136"
             column="5"/>
     </issue>
 
@@ -1341,7 +1325,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="141"
+            line="137"
             column="5"/>
     </issue>
 
@@ -1357,7 +1341,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="142"
+            line="138"
             column="5"/>
     </issue>
 
@@ -1373,7 +1357,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="143"
+            line="139"
             column="5"/>
     </issue>
 
@@ -1389,7 +1373,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="144"
+            line="140"
             column="5"/>
     </issue>
 
@@ -1405,7 +1389,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="147"
+            line="143"
             column="5"/>
     </issue>
 
@@ -1421,7 +1405,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="148"
+            line="144"
             column="5"/>
     </issue>
 
@@ -1437,7 +1421,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="149"
+            line="145"
             column="5"/>
     </issue>
 
@@ -1453,7 +1437,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="150"
+            line="146"
             column="5"/>
     </issue>
 
@@ -1469,7 +1453,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="151"
+            line="147"
             column="5"/>
     </issue>
 
@@ -2621,7 +2605,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/strings.xml"
-            line="5902"
+            line="5806"
             column="36"/>
     </issue>
 
@@ -2637,7 +2621,7 @@
         errorLine2="                                        ^">
         <location
             file="res/values/styles.xml"
-            line="179"
+            line="174"
             column="41"/>
     </issue>
 
@@ -2653,7 +2637,7 @@
         errorLine2="                                           ^">
         <location
             file="res/values/styles.xml"
-            line="448"
+            line="419"
             column="44"/>
     </issue>
 
@@ -2669,7 +2653,7 @@
         errorLine2="                                           ^">
         <location
             file="res/values/styles.xml"
-            line="454"
+            line="425"
             column="44"/>
     </issue>
 
@@ -2685,7 +2669,7 @@
         errorLine2="                                           ^">
         <location
             file="res/values/styles.xml"
-            line="455"
+            line="426"
             column="44"/>
     </issue>
 
@@ -2697,6 +2681,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="        &lt;item name=&quot;strokeColor&quot;>@color/homepage_card_stroke_color&lt;/item>"
+        errorLine2="                                 ^">
+        <location
+            file="res/values/styles.xml"
+            line="461"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="        &lt;item name=&quot;batteryGoodColor&quot;>@color/battery_good_color_light&lt;/item>"
         errorLine2="                                      ^">
         <location
@@ -3089,68 +3089,4 @@
             column="5"/>
     </issue>
 
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="            android:background=&quot;@color/divider_color&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml"
-            line="71"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="            android:background=&quot;@color/divider_color&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml"
-            line="71"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="        android:background=&quot;@color/divider_color&quot; />  &lt;!-- TODO: fix this -->"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml"
-            line="178"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="        android:background=&quot;@color/divider_color&quot; />  &lt;!-- TODO: fix this -->"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml"
-            line="178"
-            column="9"/>
-    </issue>
-
 </issues>
diff --git a/res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml b/res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml
deleted file mode 100644
index 70d868a..0000000
--- a/res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml
+++ /dev/null
@@ -1,228 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
-  -->
-
-<RelativeLayout
-    android:id="@+id/layout_root"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:paddingTop="60dip"
-    android:paddingStart="@dimen/screen_margin_sides"
-    android:paddingEnd="@dimen/screen_margin_sides"
-    android:paddingBottom="0dip" >
-
-    <FrameLayout
-        android:id="@+id/top_padding_layout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_alignParentTop="true">
-        <!-- Set to gone when software keyboard appears -->
-        <View
-             android:id="@+id/top_padding"
-             android:layout_width="match_parent"
-             android:layout_height="94dip" />
-    </FrameLayout>
-
-    <TextView
-        android:id="@+id/wifi_setup_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:minHeight="48dip"
-        android:layout_alignParentStart="true"
-        android:layout_centerVertical="true"
-        android:layout_marginStart="16dip"
-        android:layout_below="@id/top_padding_layout"
-        android:textSize="32dip"
-        android:textColor="@color/title_color"
-        android:text="@string/wifi_setup_title"
-        android:gravity="bottom"/>
-
-    <!-- Divider -->
-    <FrameLayout
-        android:id="@+id/top_divider"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/wifi_setup_title">
-        <ProgressBar
-            android:id="@+id/scanning_progress_bar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="?android:attr/progressBarStyleHorizontal" />
-        <View
-            android:id="@+id/top_divider_no_progress"
-            android:layout_width="match_parent"
-            android:layout_height="3dip"
-            android:layout_marginTop="6dip"
-            android:layout_marginBottom="0dip"
-            android:background="@color/divider_color"
-            android:visibility="gone" />
-    </FrameLayout>
-
-    <!-- Dummy view to have the left edge of following Views.
-         @id/content needs to have layout_width="match_parent" to accommodate
-         every views inside @id/wifi_config_ui while sometimes config ui becomes
-         very wide. -->
-    <View
-        android:id="@+id/dummy_for_left_edge"
-        android:layout_width="716dip"
-        android:layout_height="0dip"
-        android:layout_below="@id/top_divider"
-        android:layout_centerHorizontal="true" />
-
-    <RelativeLayout
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/top_divider"
-        android:layout_alignStart="@id/dummy_for_left_edge"
-        android:layout_centerHorizontal="true">
-
-        <!-- Padding for @id/content shown when keyboard isn't available -->
-        <View
-            android:id="@+id/content_padding"
-            android:layout_width="match_parent"
-            android:layout_height="370dip"
-            android:visibility="gone" />
-
-        <FrameLayout
-            android:id="@+id/wifi_settings_fragment_layout"
-            android:layout_width="716dip"
-            android:layout_height="370dip">
-            <fragment
-                class="com.android.settings.wifi.WifiSettings"
-                android:id="@+id/wifi_setup_fragment"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
-        </FrameLayout>
-        <FrameLayout
-            android:id="@+id/wifi_config_ui"
-            android:layout_width="wrap_content"
-            android:minWidth="406dip"
-            android:layout_height="wrap_content"
-            android:minHeight="160dip"
-            android:layout_marginTop="10dip"
-            android:layout_alignParentStart="true"
-            android:visibility="gone" />
-        <LinearLayout
-            android:id="@+id/connecting_status_layout"
-            android:layout_width="716dip"
-            android:layout_height="360dip"
-            android:layout_marginTop="10dip"
-            android:visibility="gone">
-            <TextView
-                android:id="@+id/connecting_status"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:lineSpacingExtra="10dip"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textSize="20sp" />
-        </LinearLayout>
-
-    </RelativeLayout>
-
-    <!-- Shown when @id/top_divider is using View instead of ProgressBar.
-         We need this padding to place @id/bottom_divider at the same position
-         regardless of @id/top_divider state.
-
-         Detail:
-         When ProgressBar is used in @id/top_divider, we have 7dip implicit
-         padding inside the ProgressBar object, while we don't have the
-         padding when View is used. As a result, all the objects below it
-         including @id/bottom_divider moves up/down in 7dip between those
-         two states. It is WAI for @id/content, but not for the others.
-
-         Note that we cannot let bottom dividers/buttons align with parent's
-         bottom edge using layout_alignParentBottom="true", since we'd like
-         to control bottom margin between @id/bottom_buttons and the edge
-         depending on software keyboard is shown/hidden.
-
-         We need to enclose @id/bottom_padding with @id/bottom_padding_layout
-         to let @id/bottom_divider use android:layout_below.
-         android:visibility="gone" really let the object go away,
-         causing @id/bottom_divider to lose the target for android:layout_below.
-      -->
-    <FrameLayout
-        android:id="@+id/bottom_padding_layout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/content">
-        <View
-             android:id="@+id/bottom_padding"
-             android:layout_width="match_parent"
-             android:layout_height="7dip"
-             android:visibility="gone" />
-    </FrameLayout>
-
-    <!-- Divider -->
-    <View
-        android:id="@+id/bottom_divider"
-        android:layout_width="match_parent"
-        android:layout_height="3dip"
-        android:layout_marginBottom="16dip"
-        android:layout_below="@id/bottom_padding_layout"
-        android:layout_alignStart="@id/content"
-        android:background="@color/divider_color" />  <!-- TODO: fix this -->
-
-    <RelativeLayout
-        android:id="@+id/bottom_buttons"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/bottom_divider"
-        android:layout_alignStart="@id/bottom_divider"
-        android:layout_alignParentEnd="true"
-        android:layout_alignParentBottom="true">
-
-        <Button
-            android:id="@+id/wifi_setup_add_network"
-            style="@style/setup_wizard_button"
-            android:layout_alignParentStart="true"
-            android:text="@string/wifi_setup_add_network"
-            android:enabled="false" />
-
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentEnd="true"
-            android:orientation="horizontal">
-
-            <!-- This misleading name is for keeping consistency between non-XL
-                 layouts -->
-            <Button android:id="@+id/wifi_setup_cancel"
-                    style="@style/setup_wizard_button"
-                    android:text="@string/wifi_setup_back"
-                    android:visibility="gone" />
-
-            <Button android:id="@+id/wifi_setup_connect"
-                    style="@style/setup_wizard_button"
-                    android:layout_marginStart="16dip"
-                    android:text="@string/wifi_setup_connect"
-                    android:enabled="false"
-                    android:visibility="gone" />
-
-            <Button android:id="@+id/wifi_setup_refresh_list"
-                    style="@style/setup_wizard_button"
-                    android:layout_marginStart="16dip"
-                    android:text="@string/wifi_setup_refresh_list"
-                    android:enabled="false" />
-
-            <Button android:id="@+id/wifi_setup_skip_or_next"
-                    style="@style/setup_wizard_button"
-                    android:layout_marginStart="16dip"
-                    android:text="@string/wifi_setup_skip" />
-        </LinearLayout>
-    </RelativeLayout>
-</RelativeLayout>
diff --git a/res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml b/res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml
deleted file mode 100644
index 94833e8..0000000
--- a/res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml
+++ /dev/null
@@ -1,238 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
-  -->
-
-<RelativeLayout
-    android:id="@+id/layout_root"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:paddingTop="60dip"
-    android:paddingStart="@dimen/screen_margin_sides"
-    android:paddingEnd="@dimen/screen_margin_sides"
-    android:paddingBottom="0dip" >
-
-    <FrameLayout
-        android:id="@+id/top_padding_layout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_alignParentTop="true">
-        <!-- Set to gone when software keyboard appears -->
-        <View
-             android:id="@+id/top_padding"
-             android:layout_width="match_parent"
-             android:layout_height="94dip" />
-    </FrameLayout>
-
-    <TextView
-        android:id="@+id/wifi_setup_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:minHeight="48dip"
-        android:layout_alignParentStart="true"
-        android:layout_centerVertical="true"
-        android:layout_marginStart="16dip"
-        android:layout_below="@id/top_padding_layout"
-        android:textSize="32dip"
-        android:textColor="@color/title_color"
-        android:text="@string/wifi_setup_title"
-        android:gravity="bottom"/>
-
-    <!-- Divider -->
-    <FrameLayout
-        android:id="@+id/top_divider"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/wifi_setup_title">
-        <ProgressBar
-            android:id="@+id/scanning_progress_bar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="?android:attr/progressBarStyleHorizontal" />
-        <View
-            android:id="@+id/top_divider_no_progress"
-            android:layout_width="match_parent"
-            android:layout_height="3dip"
-            android:layout_marginTop="6dip"
-            android:layout_marginBottom="0dip"
-            android:background="@color/divider_color"
-            android:visibility="gone" />
-    </FrameLayout>
-
-    <!-- Dummy view to have the left edge of following Views.
-         @id/content needs to have layout_width="match_parent" to accommodate
-         every views inside @id/wifi_config_ui while sometimes config ui becomes
-         very wide. -->
-    <View
-        android:id="@+id/dummy_for_left_edge"
-        android:layout_width="716dip"
-        android:layout_height="0dip"
-        android:layout_below="@id/top_divider"
-        android:layout_centerHorizontal="true" />
-
-    <RelativeLayout
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/top_divider"
-        android:layout_alignStart="@id/dummy_for_left_edge"
-        android:layout_centerHorizontal="true">
-
-        <!-- Padding for @id/content shown when keyboard isn't available -->
-        <View
-            android:id="@+id/content_padding"
-            android:layout_width="match_parent"
-            android:layout_height="370dip"
-            android:visibility="gone" />
-
-        <FrameLayout
-            android:id="@+id/wifi_settings_fragment_layout"
-            android:layout_width="716dip"
-            android:layout_height="377dip">
-            <fragment
-                class="com.android.settings.wifi.WifiSettings"
-                android:id="@+id/wifi_setup_fragment"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
-        </FrameLayout>
-        <FrameLayout
-            android:id="@+id/wifi_config_ui"
-            android:layout_width="wrap_content"
-            android:minWidth="406dip"
-            android:layout_height="wrap_content"
-            android:minHeight="160dip"
-            android:layout_marginTop="10dip"
-            android:layout_alignParentStart="true"
-            android:visibility="gone" />
-        <LinearLayout
-            android:id="@+id/connecting_status_layout"
-            android:layout_width="716dip"
-            android:layout_height="360dip"
-            android:layout_marginTop="10dip"
-            android:visibility="gone">
-            <TextView
-                android:id="@+id/connecting_status"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:lineSpacingExtra="10dip"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textSize="20sp" />
-        </LinearLayout>
-
-    </RelativeLayout>
-
-    <!-- Shown when @id/top_divider is using View instead of ProgressBar.
-         We need this padding to place @id/bottom_divider at the same position
-         regardless of @id/top_divider state.
-
-         Detail:
-         When ProgressBar is used in @id/top_divider, we have 7dip implicit
-         padding inside the ProgressBar object, while we don't have the
-         padding when View is used. As a result, all the objects below it
-         including @id/bottom_divider moves up/down in 7dip between those
-         two states. It is WAI for @id/content, but not for the others.
-
-         Note that we cannot let bottom dividers/buttons align with parent's
-         bottom edge using layout_alignParentBottom="true", since we'd like
-         to control bottom margin between @id/bottom_buttons and the edge
-         depending on software keyboard is shown/hidden.
-
-         We need to enclose @id/bottom_padding with @id/bottom_padding_layout
-         to let @id/bottom_divider use android:layout_below.
-         android:visibility="gone" really let the object go away,
-         causing @id/bottom_divider to lose the target for android:layout_below.
-      -->
-    <FrameLayout
-        android:id="@+id/bottom_padding_layout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/content">
-        <View
-             android:id="@+id/bottom_padding"
-             android:layout_width="match_parent"
-             android:layout_height="7dip"
-             android:visibility="gone" />
-    </FrameLayout>
-
-    <!-- Divider -->
-    <View
-        android:id="@+id/bottom_divider"
-        android:layout_width="match_parent"
-        android:layout_height="3dip"
-        android:layout_marginBottom="16dip"
-        android:layout_below="@id/bottom_padding_layout"
-        android:layout_alignStart="@id/content"
-        android:background="@color/divider_color" />  <!-- TODO: fix this -->
-
-    <LinearLayout
-        android:id="@+id/bottom_buttons"
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/bottom_divider"
-        android:layout_alignStart="@id/bottom_divider">
-
-        <RelativeLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/bottom_divider"
-            android:layout_alignStart="@id/bottom_divider"
-            android:layout_alignParentEnd="true"
-            android:layout_alignParentBottom="true">
-
-            <Button
-                android:id="@+id/wifi_setup_add_network"
-                style="@style/setup_wizard_button"
-                android:layout_alignParentStart="true"
-                android:text="@string/wifi_setup_add_network"
-                android:enabled="false" />
-
-            <LinearLayout
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentEnd="true"
-                android:orientation="horizontal">
-
-                <!-- This misleading name is for keeping consistency between non-XL
-                     layouts -->
-                <Button android:id="@+id/wifi_setup_cancel"
-                        style="@style/setup_wizard_button"
-                        android:text="@string/wifi_setup_back"
-                        android:visibility="gone" />
-
-                <Button android:id="@+id/wifi_setup_connect"
-                        style="@style/setup_wizard_button"
-                        android:layout_marginStart="16dip"
-                        android:text="@string/wifi_setup_connect"
-                        android:enabled="false"
-                        android:visibility="gone" />
-
-                <Button android:id="@+id/wifi_setup_skip_or_next"
-                        style="@style/setup_wizard_button"
-                        android:layout_marginStart="16dip"
-                        android:text="@string/wifi_setup_skip" />
-            </LinearLayout>
-
-        </RelativeLayout>
-
-        <Button android:id="@+id/wifi_setup_refresh_list"
-                style="@style/setup_wizard_button"
-                android:layout_alignParentEnd="true"
-                android:text="@string/wifi_setup_refresh_list"
-                android:enabled="false" />
-
-    </LinearLayout>
-</RelativeLayout>
diff --git a/res/layout/homepage_condition_full_tile.xml b/res/layout/homepage_condition_full_tile.xml
index 415defc..4b12625 100644
--- a/res/layout/homepage_condition_full_tile.xml
+++ b/res/layout/homepage_condition_full_tile.xml
@@ -15,7 +15,7 @@
      limitations under the License.
 -->
 
-<androidx.cardview.widget.CardView
+<com.google.android.material.card.MaterialCardView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -71,4 +71,4 @@
 
     </LinearLayout>
 
-</androidx.cardview.widget.CardView>
+</com.google.android.material.card.MaterialCardView>
diff --git a/res/layout/homepage_condition_half_tile.xml b/res/layout/homepage_condition_half_tile.xml
index 0b7eec7..fb83389 100644
--- a/res/layout/homepage_condition_half_tile.xml
+++ b/res/layout/homepage_condition_half_tile.xml
@@ -15,7 +15,7 @@
      limitations under the License.
 -->
 
-<androidx.cardview.widget.CardView
+<com.google.android.material.card.MaterialCardView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="@dimen/homepage_condition_half_card_height"
@@ -65,4 +65,4 @@
 
     </LinearLayout>
 
-</androidx.cardview.widget.CardView>
\ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/res/layout/homepage_condition_header.xml b/res/layout/homepage_condition_header.xml
index a440d7f..8f3a92c 100644
--- a/res/layout/homepage_condition_header.xml
+++ b/res/layout/homepage_condition_header.xml
@@ -15,7 +15,7 @@
   limitations under the License.
   -->
 
-<androidx.cardview.widget.CardView
+<com.google.android.material.card.MaterialCardView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -49,4 +49,4 @@
 
     </LinearLayout>
 
-</androidx.cardview.widget.CardView>
\ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/res/layout/homepage_slice_tile.xml b/res/layout/homepage_slice_tile.xml
index e062dba..9165abc 100644
--- a/res/layout/homepage_slice_tile.xml
+++ b/res/layout/homepage_slice_tile.xml
@@ -15,7 +15,7 @@
      limitations under the License.
 -->
 
-<androidx.cardview.widget.CardView
+<com.google.android.material.card.MaterialCardView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -70,4 +70,4 @@
             </LinearLayout>
         </LinearLayout>
     </ViewFlipper>
-</androidx.cardview.widget.CardView>
\ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/res/layout/homepage_suggestion_tile.xml b/res/layout/homepage_suggestion_tile.xml
index 36ad45c..5d3a79c 100644
--- a/res/layout/homepage_suggestion_tile.xml
+++ b/res/layout/homepage_suggestion_tile.xml
@@ -15,7 +15,7 @@
   limitations under the License.
   -->
 
-<androidx.cardview.widget.CardView
+<com.google.android.material.card.MaterialCardView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/suggestion_card"
     android:layout_width="match_parent"
@@ -67,4 +67,4 @@
 
     </LinearLayout>
 
-</androidx.cardview.widget.CardView>
\ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
index b132f9f..27b31be 100644
--- a/res/values-sw600dp/styles.xml
+++ b/res/values-sw600dp/styles.xml
@@ -20,12 +20,4 @@
         <item name="android:windowNoTitle">true</item>
     </style>
 
-    <style name="setup_wizard_button">
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:minWidth">208dip</item>
-        <item name="android:layout_height">48dip</item>
-        <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
-        <item name="android:textSize">20sp</item>
-    </style>
-
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index f470610..e477277 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -96,17 +96,12 @@
     <!-- Gestures settings -->
     <color name="gestures_setting_background_color">#ffffff</color>
 
-    <color name="status_bar_color">#3c3c3c</color>
-
     <!-- Color for the background of the shortcut icons.-->
     <color name="shortcut_background">#fff5f5f5</color>
 
     <!-- Color for preference icons on the Wifi Network Details page -->
     <color name="wifi_details_icon_color">#8A000000</color>
 
-    <!-- The fallback color for tinting icons. Only used when colorControlNormal is unavailable -->
-    <color name="fallback_tintColor">#89000000</color>
-
     <!-- Suggestion/condition colors -->
     <color name="suggestion_condition_background">#f2f2f2</color>
     <color name="condition_card_background">#f8f8f8</color>
@@ -128,6 +123,7 @@
     <color name="homepage_location_background">#2EC7DC</color>
     <color name="homepage_about_background">#9FA8DA</color>
     <color name="homepage_privacy_background">#5E97F6</color>
+    <color name="homepage_card_stroke_color">#1f000000</color>
     <!-- End of dashboard/homepage icon background colors -->
 
     <color name="switchbar_text_color">@android:color/white</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 075979d..f55ef10 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -327,8 +327,6 @@
 
     <!-- Homepage cards size and padding -->
     <dimen name="homepage_card_icon_size">24dp</dimen>
-    <dimen name="homepage_card_corner_radius">8dp</dimen>
-    <dimen name="homepage_card_elevation">2dp</dimen>
     <dimen name="homepage_card_vertical_margin">8dp</dimen>
     <dimen name="homepage_card_side_margin">4dp</dimen>
     <dimen name="homepage_card_padding_start">16dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9c69bd1..876be51 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5721,116 +5721,14 @@
     <!-- Message displayed to let the user know that some of the options are disabled by admin. [CHAR LIMIT=NONE] -->
     <string name="admin_disabled_other_options">Other options are disabled by your admin</string>
     <string name="admin_more_details">More details</string>
-
-    <string name="sound_category_sound_title">General</string>
     <string name="notification_log_title">Notification log</string>
 
     <!-- Category title for phone call's ringtone and vibration settings in the Sound Setting.
          [CHAR LIMIT=40] -->
     <string name="sound_category_call_ringtone_vibrate_title">Call ringtone &amp; vibrate</string>
-
-    <!-- Category title for system-wide notification and feedback settings in the Sound Setting.
-         [CHAR LIMIT=40] -->
-    <string name="sound_category_system_title">System</string>
-
-    <!-- Wifi Setup For Setup Wizard with XL screen -->
-    <!-- Title shown in Wifi Setup Wizard with XL screen -->
-    <string name="wifi_setup_title">Wi\u2011Fi setup</string>
-    <!-- Title shown in Wifi Setup Wizard with XL screen when
-         a user is configuring password for a network.
-         The argument should be the name of the network.
-         [CHAR LIMIT=50] -->
-    <string name="wifi_setup_title_editing_network">Connect to Wi\u2011Fi network <xliff:g id="network_name" example="Happy Mobile">%s</xliff:g></string>
-    <!-- Title shown in Wifi Setup For Setup Wizard with XL screen when
-         the device is connecting a network the user specified.
-         The argument should be the name of the network.
-         [CHAR LIMIT=50] -->
-    <string name="wifi_setup_title_connecting_network">Connecting to Wi\u2011Fi network <xliff:g id="network_name" example="Happy Mobile">%s</xliff:g>\u2026</string>
-    <!-- Title shown in Wifi Setup For Setup Wizard with XL screen when
-         the device successfully connected to a network the user specified.
-         The argument should be the name of the network.
-         [CHAR LIMIT=50] -->
-    <string name="wifi_setup_title_connected_network">Connected to Wi\u2011Fi network <xliff:g id="network_name" example="Happy Mobile">%s</xliff:g></string>
-    <!-- Title shown in Wifi Setup For Setup Wizard with XL screen when
-         a user is adding a network.
-         [CHAR LIMIT=50] -->
-    <string name="wifi_setup_title_add_network">Add a network</string>
-    <!-- Text message shown when Wifi is not connected.
-         Used in Wifi Setup For Setup Wizard with XL screen. -->
-    <string name="wifi_setup_not_connected">Not connected</string>
-    <!-- Button message shown on the button adding manual setting.
-         Used in Wifi Setup For Setup Wizard with XL screen. -->
-    <string name="wifi_setup_add_network">Add network</string>
-    <!-- Button message shown on the button refreshing a list of network.
-         Used in Wifi Setup For Setup Wizard with XL screen. -->
-    <string name="wifi_setup_refresh_list">Refresh list</string>
-    <!-- Button message shown on the button enabling users skip Wifi Setup.
-         Used in Wifi Setup For Setup Wizard with XL screen. [CHAR LIMIT=10] -->
-    <string name="wifi_setup_skip">Skip</string>
-    <!-- Button message shown on the button enabling users go the next step.
-         Used in Wifi Setup For Setup Wizard with XL screen. [CHAR LIMIT=10] -->
-    <string name="wifi_setup_next">Next</string>
-    <!-- Button label to go back to previous screen. Used in SetupWizard for
-      XLarge screen [CHAR LIMIT=10] -->
-    <string name="wifi_setup_back">Back</string>
     <!-- Button label to show detailed dialog for a selected Wi-Fi settings.
          Used in SetupWizard for XLarge screen [CHAR LIMIT=20] -->
     <string name="wifi_setup_detail">Network details</string>
-    <!-- Button label to connect to a Wi-Fi network.
-         Used in SetupWizard for XLarge screen [CHAR LIMIT=10] -->
-    <string name="wifi_setup_connect">Connect</string>
-    <!-- Button label to delete a Wi-Fi network.
-         Used in SetupWizard for XLarge screen [CHAR LIMIT=10] -->
-    <string name="wifi_setup_forget">Forget</string>
-    <!-- Button label to save a Wi-Fi network configuration.
-         Used in SetupWizard for XLarge screen [CHAR LIMIT=10] -->
-    <string name="wifi_setup_save">Save</string>
-    <!-- Button label to dismiss the dialog.
-         Used in SetupWizard for XLarge screen [CHAR LIMIT=10] -->
-    <string name="wifi_setup_cancel">Cancel</string>
-
-    <!-- The message shown above available networks when the device is scanning
-         available networks [CHAR LIMIT=35] -->
-    <string name="wifi_setup_status_scanning">Scanning networks\u2026</string>
-    <!-- Message shown above available network when there's no connected network.
-         Used in Wifi Setup For Setup Wizard with XL screen. -->
-    <string name="wifi_setup_status_select_network">Tap a network to connect to it</string>
-    <!-- Message shown above available networks when a user clicked one of available
-         networks and the UI is showing one possible existing network.
-         Used in Wifi Setup. -->
-    <string name="wifi_setup_status_existing_network">Connect to existing network</string>
-    <!-- Message shown above available networks when a user clicked one of available
-         networks and the network doesn't require configuration (e.g. password)
-         Used in Wifi Setup with XL screen. [CHAR LIMIT=35] -->
-    <string name="wifi_setup_status_unsecured_network">Connect to unsecured network</string>
-    <!-- Message shown above available networks when a user clicked one of available
-         networks and the UI is prompting the user to edit the network configuration
-         if needed. Used in Wifi Setup with XL screen. [CHAR LIMIT=35] -->
-    <string name="wifi_setup_status_edit_network">Type network configuration</string>
-    <!-- The message shown above available networks when a user clicked "Add network"
-         button. Used in Wifi Setup For Setup Wizard with XL screen. [CHAR LIMIT=35] -->
-    <string name="wifi_setup_status_new_network">Connect to new network</string>
-    <!-- The message shown above available networks when a user clicked one of available
-         networks or created another profile and he/she is waiting for the connection
-         is established.
-         Used in Wifi Setup For Setup Wizard with XL screen. [CHAR LIMIT=35] -->
-    <string name="wifi_setup_status_connecting">Connecting\u2026</string>
-    <!-- The message shown above available networks when connection is established,
-         letting a user to proceed to the next step of the SetupWizard.
-         Used in Wifi Setup For Setup Wizard with XL screen. [CHAR LIMIT=35] -->
-    <string name="wifi_setup_status_proceed_to_next">Go to the next step</string>
-    <!-- The message shown above available networks when a user clicked a network secured by
-         EAP. We don't allow the user to connect it.
-         Used in Wifi Setup For Setup Wizard with XL screen. [CHAR LIMIT=35] -->
-    <string name="wifi_setup_status_eap_not_supported">EAP isn\u2019t supported.</string>
-    <!-- Message shown when users select EAP in Wi-Fi settings for SetupWizard,
-         saying EAP can't be configured in SetupWizard flow.
-         [CHAR LIMIT=NONE] -->
-    <string name="wifi_setup_eap_not_supported">You can\u2019t configure an EAP Wi\u2011Fi connection during setup. After setup, you can do that in Settings &gt; Wireless &amp; networks.</string>
-    <!-- Message shown when the device is connecting a network [CHAR LIMIT=NONE] -->
-    <string name="wifi_setup_description_connecting">Connecting can take a few minutes\u2026</string>
-    <!-- Message shown when the device is connected to a network [CHAR LIMIT=NONE] -->
-    <string name="wifi_setup_description_connected">Tap <b>Next</b> to continue with setup.\n\nTap <b>Back</b> to connect to a different Wi\u2011Fi network.</string>
 
     <!-- Do not translate. This is a stub which will be removed soon. -->
     <string name="time_zone_auto_stub" translatable="false">Select Time Zone</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 4be1bb3..bf3b15c 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -164,11 +164,6 @@
         <item name="android:orientation">vertical</item>
     </style>
 
-    <style name="setup_wizard_button">
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:layout_height">wrap_content</item>
-    </style>
-
     <style name="ConfirmDeviceCredentialsAnimationStyle"
            parent="@*android:style/Animation.Material.Activity">
         <item name="android:activityOpenEnterAnimation">@anim/confirm_credential_open_enter</item>
@@ -461,8 +456,10 @@
         <item name="android:layout_marginBottom">@dimen/homepage_card_vertical_margin</item>
         <item name="android:layout_marginStart">@dimen/homepage_card_side_margin</item>
         <item name="android:layout_marginEnd">@dimen/homepage_card_side_margin</item>
-        <item name="cardCornerRadius">@dimen/homepage_card_corner_radius</item>
-        <item name="cardElevation">@dimen/homepage_card_elevation</item>
+        <item name="cardCornerRadius">8dp</item>
+        <item name="cardElevation">0dp</item>
+        <item name="strokeColor">@color/homepage_card_stroke_color</item>
+        <item name="strokeWidth">1dp</item>
     </style>
 
     <style name="ConditionCardBorderlessButton"
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRendererTest.java
index 376042d..bb61c7d 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRendererTest.java
@@ -19,11 +19,10 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.content.Context;
+import android.app.Activity;
 import android.view.LayoutInflater;
 import android.view.View;
 
@@ -40,7 +39,8 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.android.controller.ActivityController;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class ConditionContextualCardRendererTest {
@@ -49,25 +49,29 @@
     private ControllerRendererPool mControllerRendererPool;
     @Mock
     private ConditionContextualCardController mController;
-    private Context mContext;
+    private Activity mActivity;
     private ConditionContextualCardRenderer mRenderer;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mRenderer = new ConditionContextualCardRenderer(mContext, mControllerRendererPool);
+        final ActivityController<Activity> activityController = Robolectric.buildActivity(
+                Activity.class);
+        mActivity = activityController.get();
+        mActivity.setTheme(R.style.Theme_AppCompat);
+        activityController.create();
+        mRenderer = new ConditionContextualCardRenderer(mActivity, mControllerRendererPool);
     }
 
     @Test
     public void bindView_shouldSetListener() {
         final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
-        final RecyclerView recyclerView = new RecyclerView(mContext);
-        recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-        final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
         final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
         final View card = view.findViewById(R.id.content);
-        when(mControllerRendererPool.getController(mContext,
+        when(mControllerRendererPool.getController(mActivity,
                 ContextualCard.CardType.CONDITIONAL)).thenReturn(mController);
 
         mRenderer.bindView(viewHolder, buildConditionContextualCard());
@@ -79,12 +83,12 @@
     @Test
     public void viewClick_shouldInvokeControllerPrimaryClick() {
         final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
-        final RecyclerView recyclerView = new RecyclerView(mContext);
-        recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-        final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
         final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
         final View card = view.findViewById(R.id.content);
-        when(mControllerRendererPool.getController(mContext,
+        when(mControllerRendererPool.getController(mActivity,
                 ContextualCard.CardType.CONDITIONAL)).thenReturn(mController);
 
         mRenderer.bindView(viewHolder, buildConditionContextualCard());
@@ -103,7 +107,7 @@
                 .setName("test_name")
                 .setTitleText("test_title")
                 .setSummaryText("test_summary")
-                .setIconDrawable(mContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
+                .setIconDrawable(mActivity.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
                 .setIsHalfWidth(true)
                 .build();
     }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRendererTest.java
index dbe5544..d0b5a24 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRendererTest.java
@@ -18,17 +18,17 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.content.Context;
+import android.app.Activity;
 import android.view.LayoutInflater;
 import android.view.View;
 
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.settings.R;
 import com.android.settings.homepage.contextualcards.ContextualCard;
 import com.android.settings.homepage.contextualcards.ControllerRendererPool;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -38,7 +38,8 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.android.controller.ActivityController;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -50,24 +51,28 @@
     private ControllerRendererPool mControllerRendererPool;
     @Mock
     private ConditionContextualCardController mController;
-    private Context mContext;
+    private Activity mActivity;
     private ConditionHeaderContextualCardRenderer mRenderer;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mRenderer = new ConditionHeaderContextualCardRenderer(mContext, mControllerRendererPool);
+        final ActivityController<Activity> activityController = Robolectric.buildActivity(
+                Activity.class);
+        mActivity = activityController.get();
+        mActivity.setTheme(R.style.Theme_AppCompat);
+        activityController.create();
+        mRenderer = new ConditionHeaderContextualCardRenderer(mActivity, mControllerRendererPool);
     }
 
     @Test
     public void bindView_shouldSetClickListener() {
         final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
-        final RecyclerView recyclerView = new RecyclerView(mContext);
-        recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-        final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
         final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
-        when(mControllerRendererPool.getController(mContext,
+        when(mControllerRendererPool.getController(mActivity,
                 ContextualCard.CardType.CONDITIONAL_HEADER)).thenReturn(mController);
 
         mRenderer.bindView(viewHolder, generateConditionHeaderContextualCard());
@@ -79,11 +84,11 @@
     @Test
     public void bindView_clickView_shouldSetTrueToIsConditionExpanded() {
         final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
-        final RecyclerView recyclerView = new RecyclerView(mContext);
-        recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-        final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
         final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
-        when(mControllerRendererPool.getController(mContext,
+        when(mControllerRendererPool.getController(mActivity,
                 ContextualCard.CardType.CONDITIONAL_HEADER)).thenReturn(mController);
 
         mRenderer.bindView(viewHolder, generateConditionHeaderContextualCard());
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRendererTest.java
index 20f1b7b..2618e1b 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRendererTest.java
@@ -23,7 +23,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.content.Context;
+import android.app.Activity;
 import android.view.LayoutInflater;
 import android.view.View;
 
@@ -40,7 +40,8 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.android.controller.ActivityController;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class LegacySuggestionContextualCardRendererTest {
@@ -48,26 +49,31 @@
     private ControllerRendererPool mControllerRendererPool;
     @Mock
     private LegacySuggestionContextualCardController mController;
-    private Context mContext;
+    private Activity mActivity;
     private LegacySuggestionContextualCardRenderer mRenderer;
 
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mRenderer = new LegacySuggestionContextualCardRenderer(mContext, mControllerRendererPool);
+        final ActivityController<Activity> activityController = Robolectric.buildActivity(
+                Activity.class);
+        mActivity = activityController.get();
+        mActivity.setTheme(R.style.Theme_AppCompat);
+        activityController.create();
+
+        mRenderer = new LegacySuggestionContextualCardRenderer(mActivity, mControllerRendererPool);
     }
 
     @Test
     public void bindView_shouldSetListener() {
         final int viewType = mRenderer.getViewType(true /* isHalfWidth */);
-        final RecyclerView recyclerView = new RecyclerView(mContext);
-        recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-        final View card = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View card = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
         final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(card);
 
-        when(mControllerRendererPool.getController(mContext,
+        when(mControllerRendererPool.getController(mActivity,
                 ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
 
         mRenderer.bindView(viewHolder, buildContextualCard());
@@ -79,11 +85,11 @@
     @Test
     public void viewClick_shouldInvokeControllerPrimaryClick() {
         final int viewType = mRenderer.getViewType(true /* isHalfWidth */);
-        final RecyclerView recyclerView = new RecyclerView(mContext);
-        recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-        final View card = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View card = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
         final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(card);
-        when(mControllerRendererPool.getController(mContext,
+        when(mControllerRendererPool.getController(mActivity,
                 ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
 
         mRenderer.bindView(viewHolder, buildContextualCard());
@@ -99,7 +105,7 @@
                 .setName("test_name")
                 .setTitleText("test_title")
                 .setSummaryText("test_summary")
-                .setIconDrawable(mContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
+                .setIconDrawable(mActivity.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
                 .build();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index 1ba329c..abfddbb 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -20,7 +20,7 @@
 
 import static org.mockito.Mockito.verify;
 
-import android.content.Context;
+import android.app.Activity;
 import android.net.Uri;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -45,7 +45,8 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.android.controller.ActivityController;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class SliceContextualCardRendererTest {
@@ -54,19 +55,21 @@
     private LiveData<Slice> mSliceLiveData;
     @Mock
     private ControllerRendererPool mControllerRendererPool;
-    @Mock
-    private SliceContextualCardController mController;
 
-    private Context mContext;
+    private Activity mActivity;
     private SliceContextualCardRenderer mRenderer;
     private LifecycleOwner mLifecycleOwner;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        final ActivityController<Activity> activityController = Robolectric.buildActivity(
+                Activity.class);
+        mActivity = activityController.get();
+        mActivity.setTheme(R.style.Theme_AppCompat);
+        activityController.create();
         mLifecycleOwner = new ContextualCardsFragment();
-        mRenderer = new SliceContextualCardRenderer(mContext, mLifecycleOwner,
+        mRenderer = new SliceContextualCardRenderer(mActivity, mLifecycleOwner,
                 mControllerRendererPool);
     }
 
@@ -156,9 +159,9 @@
 
     private RecyclerView.ViewHolder getSliceViewHolder() {
         final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
-        final RecyclerView recyclerView = new RecyclerView(mContext);
-        recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
-        final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
 
         return mRenderer.createViewHolder(view);
     }
