diff --git a/res/drawable/background_primary_background.xml b/res/drawable/background_primary_background.xml
new file mode 100644
index 0000000..4f86159
--- /dev/null
+++ b/res/drawable/background_primary_background.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="@color/background_primary" />
+    <corners
+        android:topLeftRadius="@dimen/quickcontact_edge_radius"
+        android:topRightRadius="@dimen/quickcontact_edge_radius" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/omni_fab.xml b/res/drawable/omni_fab.xml
new file mode 100644
index 0000000..120812b
--- /dev/null
+++ b/res/drawable/omni_fab.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="60dp"
+    android:height="60dp"
+    android:viewportWidth="60"
+    android:viewportHeight="60"
+    android:tint="@color/material_star_pink" >
+    <group
+            android:translateX="-73.176193"
+            android:translateY="-117.71072">
+        <path
+            android:fillColor="#000000"
+            android:strokeWidth="0.30393162"
+            android:pathData="M 132.80953,147.71072 a 29.633333,29.633333 0 0 1 -29.63334,29.63334 29.633333,29.633333 0 0 1 -29.63333,-29.63334 29.633333,29.633333 0 0 1 29.63333,-29.63333 29.633333,29.633333 0 0 1 29.63334,29.63333 z" />
+    </group>
+</vector>
diff --git a/res/drawable/quantum_ic_add_vd_white_24.xml b/res/drawable/quantum_ic_add_vd_white_24.xml
new file mode 100644
index 0000000..ae40abe
--- /dev/null
+++ b/res/drawable/quantum_ic_add_vd_white_24.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
diff --git a/res/drawable/quantum_launchscreen_contacts.xml b/res/drawable/quantum_launchscreen_contacts.xml
index 276b2da..ba5b5cc 100755
--- a/res/drawable/quantum_launchscreen_contacts.xml
+++ b/res/drawable/quantum_launchscreen_contacts.xml
@@ -16,7 +16,7 @@
 
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"
     android:opacity="opaque">
-  <item android:drawable="@android:color/white" />
+  <item android:drawable="@color/background_primary" />
   <item
       android:id="@+id/launchscreens_product_logo"
       android:bottom="@dimen/launchscreens_product_logo_bottom">
diff --git a/res/drawable/thumb.xml b/res/drawable/thumb.xml
new file mode 100644
index 0000000..f0962cd
--- /dev/null
+++ b/res/drawable/thumb.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2017 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.
+  -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+
+    <corners
+        android:topLeftRadius="8dp"
+        android:topRightRadius="8dp"
+        android:bottomLeftRadius="8dp"
+        android:bottomRightRadius="8dp"/>
+    <size android:height="48dp" android:width="8dp"/>
+    <solid android:color="@color/primary_color" />
+
+</shape>
diff --git a/res/drawable/thumb_default.xml b/res/drawable/thumb_default.xml
new file mode 100644
index 0000000..4ab2445
--- /dev/null
+++ b/res/drawable/thumb_default.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2017 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.
+  -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <corners
+        android:topLeftRadius="8dp"
+        android:topRightRadius="8dp"
+        android:bottomLeftRadius="8dp"
+        android:bottomRightRadius="8dp"/>
+    <size android:height="48dp" android:width="8dp"/>
+    <solid android:color="@color/secondary_text_color" />
+</shape>
diff --git a/res/drawable/thumb_drawable.xml b/res/drawable/thumb_drawable.xml
new file mode 100644
index 0000000..530dd4a
--- /dev/null
+++ b/res/drawable/thumb_drawable.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2017 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.
+  -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_pressed="true"
+        android:drawable="@drawable/thumb"/>
+
+    <item
+        android:drawable="@drawable/thumb_default"/>
+</selector>
diff --git a/res/layout/account_selector_list_item_condensed.xml b/res/layout/account_selector_list_item_condensed.xml
index ae91726..b0e8ceb 100644
--- a/res/layout/account_selector_list_item_condensed.xml
+++ b/res/layout/account_selector_list_item_condensed.xml
@@ -17,6 +17,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="72dp"
+    android:background="@color/navigation_drawer_background_color"
     android:orientation="horizontal">
     <ImageView android:id="@android:id/icon"
         android:layout_width="@dimen/detail_network_icon_size"
diff --git a/res/layout/contact_editor_accounts_changed_activity_with_picker.xml b/res/layout/contact_editor_accounts_changed_activity_with_picker.xml
index 0faea20..794337f 100644
--- a/res/layout/contact_editor_accounts_changed_activity_with_picker.xml
+++ b/res/layout/contact_editor_accounts_changed_activity_with_picker.xml
@@ -47,6 +47,7 @@
     <Button
         android:id="@+id/add_account_button"
         style="?android:attr/buttonBarButtonStyle"
+        android:textColor="@color/quantum_black_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:paddingStart="24dp"
diff --git a/res/layout/contact_list_content.xml b/res/layout/contact_list_content.xml
index 901e04c..416bba6 100644
--- a/res/layout/contact_list_content.xml
+++ b/res/layout/contact_list_content.xml
@@ -45,7 +45,7 @@
             android:paddingTop="16dp"
             android:paddingBottom="16dp"
             android:layout_weight="1"
-            android:textColor="@android:color/black"
+            android:textColor="@color/quantum_black_text"
             android:textSize="16sp"/>
 
         <ImageView
diff --git a/res/layout/date_picker.xml b/res/layout/date_picker.xml
index c700f9e..32ff0d3 100644
--- a/res/layout/date_picker.xml
+++ b/res/layout/date_picker.xml
@@ -25,18 +25,9 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_gravity="center_horizontal"
-    android:layout_width="270dip"
+    android:layout_width="wrap_content"
     android:layout_height="wrap_content">
 
-    <CheckBox
-        android:id="@+id/yearToggle"
-        android:text="@string/date_year_toggle"
-        android:paddingTop="5dip"
-        android:paddingBottom="5dip"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:layout_gravity="center_horizontal"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
     <!-- Warning: everything within the parent is removed and re-ordered depending
          on the date format selected by the user. -->
     <LinearLayout
@@ -85,4 +76,12 @@
             android:focusableInTouchMode="true"
             />
     </LinearLayout>
+
+    <CheckBox
+        android:id="@+id/yearToggle"
+        android:text="@string/date_year_toggle"
+        android:padding="10dip"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="?android:attr/textColorPrimary" />
 </LinearLayout>
diff --git a/res/layout/dialog_title.xml b/res/layout/dialog_title.xml
index 45f5f73..f1b6854 100644
--- a/res/layout/dialog_title.xml
+++ b/res/layout/dialog_title.xml
@@ -18,7 +18,6 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:paddingTop="18dp"
     android:paddingStart="24dp"
     android:paddingEnd="24dp"
     android:textSize="20sp"
@@ -26,4 +25,4 @@
     android:textAlignment="viewStart"
     android:fontFamily="sans-serif-medium"
     android:ellipsize="end"
-/>
\ No newline at end of file
+/>
diff --git a/res/layout/drawer_fragment.xml b/res/layout/drawer_fragment.xml
index bd55d6a..5af2c95 100644
--- a/res/layout/drawer_fragment.xml
+++ b/res/layout/drawer_fragment.xml
@@ -23,12 +23,36 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fitsSystemWindows="true">
-
-    <ListView
-        android:id="@+id/list"
-        android:background="@color/navigation_drawer_background_color"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:clipToPadding="false"
-        android:divider="@null" />
+        android:orientation="vertical" >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="84dp"
+            android:orientation="vertical"
+            android:background="@color/actionbar_background_color" >
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:text="@string/applicationLabel"
+                android:textColor="@android:color/white"
+                android:paddingTop="40dp"
+                android:paddingStart="18dp"
+                style="@style/ContactsActionBarTitleText" />
+
+        </LinearLayout>
+
+        <ListView
+            android:id="@+id/list"
+            android:background="@color/navigation_drawer_background_color"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:clipToPadding="false"
+            android:divider="@null" />
+
+    </LinearLayout>
 </FrameLayout>
diff --git a/res/layout/expanding_entry_card_item.xml b/res/layout/expanding_entry_card_item.xml
index dbbeee5..5f6a9ce 100644
--- a/res/layout/expanding_entry_card_item.xml
+++ b/res/layout/expanding_entry_card_item.xml
@@ -18,6 +18,7 @@
     class="com.android.contacts.quickcontact.ExpandingEntryCardView$EntryView"
     xmlns:android="http://schemas.android.com/apk/res/android"
     style="@style/SelectableItem"
+    android:background="@color/expanding_entry_card_background_color"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:paddingStart="@dimen/expanding_entry_card_item_padding_start"
diff --git a/res/layout/expanding_entry_card_view.xml b/res/layout/expanding_entry_card_view.xml
index 7eacd1f..f57a851 100644
--- a/res/layout/expanding_entry_card_view.xml
+++ b/res/layout/expanding_entry_card_view.xml
@@ -17,6 +17,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
+    android:background="@color/expanding_entry_card_background_color"
     android:id="@+id/container">
 
     <TextView
@@ -43,4 +44,4 @@
         android:layout_height="wrap_content"
         android:orientation="vertical" />
 
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/layout/floating_action_button.xml b/res/layout/floating_action_button.xml
index a31512f..e76962a 100644
--- a/res/layout/floating_action_button.xml
+++ b/res/layout/floating_action_button.xml
@@ -26,7 +26,7 @@
     android:layout_gravity="bottom|end"
     android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
     android:layout_marginEnd="@dimen/floating_action_button_margin_right"
-    android:background="@drawable/fab_pink"
+    android:background="@drawable/omni_fab"
     android:elevation="@dimen/design_fab_elevation"
     app:layout_dodgeInsetEdges="bottom" >
 
@@ -36,6 +36,6 @@
         android:layout_height="match_parent"
         android:background="@drawable/floating_action_button"
         android:contentDescription="@string/action_menu_add_new_contact_button"
-        android:src="@drawable/quantum_ic_add_vd_theme_24"
-        android:tint="@color/floating_action_button_icon_color"/>
-</FrameLayout>
\ No newline at end of file
+        android:src="@drawable/quantum_ic_add_vd_white_24"
+        app:tint="@color/floating_action_button_icon_color"/>
+</FrameLayout>
diff --git a/res/layout/group_membership_list_item.xml b/res/layout/group_membership_list_item.xml
index 19e8d80..7382f27 100644
--- a/res/layout/group_membership_list_item.xml
+++ b/res/layout/group_membership_list_item.xml
@@ -25,4 +25,5 @@
     android:paddingRight="6dip"
     android:paddingStart="6dip"
     android:paddingEnd="6dip"
+    android:background="@color/navigation_drawer_background_color"
 />
diff --git a/res/layout/quickcontact_activity.xml b/res/layout/quickcontact_activity.xml
index c3b035d..81d2243 100644
--- a/res/layout/quickcontact_activity.xml
+++ b/res/layout/quickcontact_activity.xml
@@ -51,4 +51,4 @@
          this title can not be inside @style/quickcontact_header. -->
     <include layout="@layout/quickcontact_title_and_phoneticname" />
 
-</com.android.contacts.widget.MultiShrinkScroller>
\ No newline at end of file
+</com.android.contacts.widget.MultiShrinkScroller>
diff --git a/res/layout/quickcontact_collapsed_suggestion_card.xml b/res/layout/quickcontact_collapsed_suggestion_card.xml
index ac2ec49..e68342e 100644
--- a/res/layout/quickcontact_collapsed_suggestion_card.xml
+++ b/res/layout/quickcontact_collapsed_suggestion_card.xml
@@ -30,7 +30,7 @@
 
         <ImageView
                 android:src="@drawable/quantum_ic_assistant_vd_theme_24"
-                android:tint="@color/editor_icon_color"
+                android:tint="@color/dialtacts_secondary_text_color"
                 android:layout_width="@dimen/quickcontact_collapse_icon_size"
                 android:layout_height="@dimen/quickcontact_collapse_icon_size"
                 android:layout_margin="@dimen/quickcontact_collapse_image_padding"
@@ -61,4 +61,4 @@
                 android:paddingBottom="@dimen/editor_round_button_padding_bottom"/>
     </LinearLayout>>
 
-</androidx.cardview.widget.CardView>
\ No newline at end of file
+</androidx.cardview.widget.CardView>
diff --git a/res/layout/quickcontact_content.xml b/res/layout/quickcontact_content.xml
index b6cff4b..bbdfe01 100644
--- a/res/layout/quickcontact_content.xml
+++ b/res/layout/quickcontact_content.xml
@@ -20,7 +20,7 @@
     android:layout_height="match_parent"
     android:fillViewport="true"
     android:id="@+id/content_scroller"
-    android:background="@color/card_margin_color">
+    android:background="@drawable/background_primary_background">
 
     <!-- All the cards should be inserted into this LinearLayout -->
     <LinearLayout
@@ -28,6 +28,7 @@
         android:layout_height="wrap_content"
         android:orientation="vertical"
         android:paddingTop="@dimen/first_card_marginTop"
+        android:background="@drawable/background_primary_background"
         android:id="@+id/card_container" >
 
         <com.android.contacts.quickcontact.ExpandingEntryCardView
@@ -65,4 +66,4 @@
 
     </LinearLayout>
 
-</com.android.contacts.widget.TouchlessScrollView>
\ No newline at end of file
+</com.android.contacts.widget.TouchlessScrollView>
diff --git a/res/layout/select_dialog_item.xml b/res/layout/select_dialog_item.xml
index 05f2ae5..7d0cd81 100644
--- a/res/layout/select_dialog_item.xml
+++ b/res/layout/select_dialog_item.xml
@@ -39,6 +39,7 @@
         android:gravity="start|center_vertical"
         android:textAlignment="viewStart"
         android:textAppearance="?android:textAppearanceListItem"
+        android:textColor="@color/quantum_black_text"
         android:textSize="16sp"/>
 
     <TextView
@@ -49,6 +50,6 @@
         android:gravity="center_vertical|start"
         android:textAlignment="viewStart"
         android:textAppearance="?android:textAppearanceListItemSecondary"
-        android:textColor="?android:textColorSecondary"
+        android:textColor="@color/quantum_black_secondary_text"
         />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/layout/select_dialog_item_single.xml b/res/layout/select_dialog_item_single.xml
new file mode 100644
index 0000000..5ebd333
--- /dev/null
+++ b/res/layout/select_dialog_item_single.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:textAppearance="?android:attr/textAppearanceListItemSmall"
+    android:textColor="@color/contacts_text_color"
+    android:gravity="center_vertical"
+    android:paddingStart="24dp"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:ellipsize="marquee" />
diff --git a/res/layout/selection_bar.xml b/res/layout/selection_bar.xml
index 272a2fc..76e2358 100644
--- a/res/layout/selection_bar.xml
+++ b/res/layout/selection_bar.xml
@@ -25,7 +25,7 @@
         android:layout_width="@dimen/selection_bar_close_icon_size"
         android:layout_height="@dimen/selection_bar_close_icon_size"
         android:layout_gravity="center_vertical|start"
-        android:tint="@color/quantum_black_secondary_text"
+        android:tint="@color/actionbar_text_color_black"
         android:background="?attr/selectableItemBackgroundBorderless"
         android:contentDescription="@string/action_menu_back_from_edit_select"
         android:src="@drawable/quantum_ic_close_vd_theme_24"/>
diff --git a/res/mipmap-anydpi-v26/ic_contacts_launcher.xml b/res/mipmap-anydpi-v26/ic_contacts_launcher.xml
new file mode 100644
index 0000000..a36b29f
--- /dev/null
+++ b/res/mipmap-anydpi-v26/ic_contacts_launcher.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@color/ic_contacts_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_contacts_launcher_foreground"/>
+</adaptive-icon>
diff --git a/res/mipmap-hdpi/ic_contacts_launcher_foreground.png b/res/mipmap-hdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..8088777
--- /dev/null
+++ b/res/mipmap-hdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_contacts_launcher_foreground.png b/res/mipmap-mdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..abea159
--- /dev/null
+++ b/res/mipmap-mdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..1fb6752
--- /dev/null
+++ b/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..f1be7b1
--- /dev/null
+++ b/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png
new file mode 100644
index 0000000..4b1a4b4
--- /dev/null
+++ b/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png
Binary files differ
diff --git a/res/values-night-v31/colors.xml b/res/values-night-v31/colors.xml
new file mode 100644
index 0000000..45d6128
--- /dev/null
+++ b/res/values-night-v31/colors.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources>
+    <color name="primary_color_dark">@android:color/system_accent1_600</color>
+    <color name="primary_color">@android:color/system_accent1_600</color>
+    <color name="group_primary_color_dark">@android:color/system_accent2_600</color>
+    <color name="group_primary_color">@android:color/system_accent2_600</color>
+    <color name="contacts_accent_color">@color/primary_color</color>
+    <color name="floating_action_button_icon_color">@android:color/white</color>
+    <color name="material_star_pink">@color/primary_color</color>
+    <color name="frequently_contacted_title_color">@color/primary_color</color>
+    <color name="people_app_theme_color">@color/primary_color</color>
+    <color name="dialtacts_theme_color">@color/primary_color</color>
+    <color name="action_bar_background">@color/primary_color</color>
+    <color name="actionbar_background_color">@color/primary_color</color>
+    <color name="contextual_selection_bar_color">@color/primary_color</color>
+    <color name="swipe_refresh_color1">@color/primary_color</color>
+    <color name="contextual_selection_bar_status_bar_color">@color/primary_color</color>
+    <color name="quickcontact_default_photo_tint_color">@color/primary_color</color>
+    <color name="ic_contacts_launcher_background">@android:color/system_accent1_600</color>
+    <color name="background_primary">@android:color/system_neutral1_900</color>
+    <color name="contact_all_list_background_color">@android:color/system_neutral1_900</color>
+    <color name="actionbar_text_color">@android:color/white</color>
+    <color name="actionbar_icon_color_grey">#8C000000</color>
+    <color name="actionbar_text_color_black">#DF000000</color>
+    <color name="actionbar_color_grey_solid">#777777</color>
+    <color name="searchbox_text_color">@color/omni_text1</color>
+    <color name="searchbox_background_color">@color/background_primary</color>
+    <color name="searchbox_hint_text_color">#66000000</color>
+    <color name="search_shortcut_icon_color">@color/dialtacts_theme_color</color>
+    <color name="expanding_entry_card_background_color">@android:color/system_neutral1_800</color>
+    <color name="divider_line_color_light">@android:color/system_neutral1_700</color>
+</resources>
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
new file mode 100644
index 0000000..ca6cc82
--- /dev/null
+++ b/res/values-night/colors.xml
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The OmniROm 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.
+-->
+<resources>
+    <color name="omni_color5">@*android:color/accent_device_default_light</color>
+    <color name="omni_color4">@*android:color/accent_device_default_dark</color>
+    <color name="omni_color3">#80eeeeee</color>
+    <color name="omni_color1">@*android:color/primary_dark_device_default_settings</color>
+    <color name="omni_color2">@*android:color/primary_device_default_settings</color>
+    <color name="omni_color7">@*android:color/background_floating_device_default_dark</color>
+    <color name="omni_text1">#ffffffff</color>
+    <color name="omni_text2">#ffeeeeee</color>
+    <color name="omni_text3">#eeeeeeee</color>
+
+    <color name="ic_add_contact_shortcut_background">@color/omni_color2</color>
+
+    <!-- 87% black -->
+    <color name="quantum_black_text">@color/omni_text1</color>
+
+    <!-- 54% black -->
+    <color name="quantum_black_secondary_text">@color/omni_text2</color>
+
+    <!-- 38% black -->
+    <color name="quantum_black_hint_text">@color/omni_text3</color>
+
+    <color name="quickcontact_entry_sub_header_text_color">@color/omni_text2</color>
+    <color name="quickcontact_entry_header_text_color">@color/omni_text1</color>
+
+    <color name="action_bar_background">@color/omni_color5</color>
+
+    <color name="actionbar_background_color">@color/omni_color5</color>
+
+    <color name="contextual_selection_bar_color">@color/omni_color5</color>
+    <!-- Color of the status bar above the contextual selection bar. -->
+    <color name="contextual_selection_bar_status_bar_color">@color/omni_color4</color>
+
+    <color name="primary_color_dark">@color/omni_color5</color>
+    <color name="primary_color">@color/omni_color5</color>
+
+    <color name="group_primary_color_dark">@color/omni_color5</color>
+    <color name="group_primary_color">@color/omni_color5</color>
+
+    <!-- Color of the selected tab underline -->
+    <color name="contacts_accent_color">@color/omni_color2</color>
+
+    <color name="floating_action_button_icon_color">@color/omni_color2</color>
+
+    <!-- Horizontal separator line should be 12% dark in the light theme. -->
+    <color name="divider_line_color_light">#80808080</color>
+
+    <!-- Color of the text on an ExpandingEntryCard button -->
+    <color name="expanding_entry_card_button_text_color">@color/omni_text1</color>
+
+    <!-- Background color for an ExpandingEntryCard (LAST) -->
+    <color name="expanding_entry_card_background_color">@color/omni_color2</color>
+
+    <!-- Color of the margin for cards -->
+    <color name="card_margin_color">@color/omni_color1</color>
+
+    <!-- Background color of pinned header items. -->
+    <color name="list_item_pinned_header_color">@color/omni_color1</color>
+
+    <!-- Color of disabled text and unfocused hint text inside the contact editor. 25% black. -->
+    <color name="editor_disabled_text_color">@color/omni_text3</color>
+
+    <!-- Color of text of people names in contact list when item is disabled. 30% black -->
+    <color name="disabled_contact_list_name_text">@color/omni_text3</color>
+
+    <!-- Color of background of all empty states. -->
+    <color name="empty_state_background">@color/omni_color1</color>
+
+    <!-- Colors of swipeRefreshLayout's spinning circle. -->
+    <color name="swipe_refresh_color1">@color/omni_color5</color>
+    <color name="swipe_refresh_color2">@color/omni_color2</color>
+    <color name="swipe_refresh_color3">@color/omni_color3</color>
+    <color name="swipe_refresh_color4">#777777</color>
+
+    <!-- Divider color for header separator -->
+    <color name="primary_text_color">@color/omni_text1</color>
+
+    <color name="secondary_text_color">@color/omni_text2</color>
+
+    <!-- Color of the theme of the People app -->
+    <color name="people_app_theme_color">@color/omni_color5</color>
+
+    <!-- Color of the theme of the Dialer app -->
+    <color name="dialtacts_theme_color">@color/omni_color5</color>
+
+    <!-- Text color for section header. -->
+    <color name="section_header_text_color">@color/omni_text1</color>
+
+    <!-- Color of image view placeholder. -->
+    <color name="image_placeholder">#222222</color>
+
+    <!-- Primary text color in the Phone app -->
+    <color name="dialtacts_primary_text_color">@color/omni_text1</color>
+
+    <!-- Secondary text color in the Phone app -->
+    <color name="dialtacts_secondary_text_color">@color/omni_text2</color>
+
+    <color name="shortcut_overlay_text_background">#7f000000</color>
+
+    <color name="textColorIconOverlay">#fff</color>
+    <color name="textColorIconOverlayShadow">#000</color>
+
+    <!-- Background colors for LetterTileDrawables. This set of colors is a subset of
+        https://spec.googleplex.com/quantumpalette#extended which passes Google Accessibility
+        Requirements for the color in question on white with >= 3.0 contrast. We used
+        http://leaverou.github.io/contrast-ratio/#white-on-%23db4437 to double-check the contrast.
+        These colors are also used by MaterialColorMapUtils to generate primary activity colors.
+    -->
+    <array name="letter_tile_colors">
+        <item>#8c2b23</item>
+        <item>#af164a</item>
+        <item>#51d847</item>
+        <item>#4e2b8c</item>
+        <item>#2e3b84</item>
+        <item>#2d5dad</item>
+        <item>#0071a8</item>
+        <item>#0f5d66</item>
+        <item>#02665c</item>
+        <item>#0b7743</item>
+        <item>#507a2c</item>
+        <item>#af4f00</item>
+        <item>#cc451a</item>
+        <item>#595959</item>
+    </array>
+
+    <!-- Darker versions of letter_tile_colors, two shades darker. These colors are used
+        for settings secondary activity colors. -->
+    <array name="letter_tile_colors_dark">
+        <item>#8c2b23</item>
+        <item>#af164a</item>
+        <item>#51d847</item>
+        <item>#4e2b8c</item>
+        <item>#2e3b84</item>
+        <item>#2d5dad</item>
+        <item>#0071a8</item>
+        <item>#0f5d66</item>
+        <item>#02665c</item>
+        <item>#0b7743</item>
+        <item>#507a2c</item>
+        <item>#af4f00</item>
+        <item>#cc451a</item>
+        <item>#595959</item>
+    </array>
+
+    <!-- The default color used for tinting photos when no color can be extracted via Palette,
+            this is Blue Grey 500 -->
+    <color name="quickcontact_default_photo_tint_color">@color/omni_color4</color>
+    <!-- The default secondary color when no color can be extracted via Palette,
+            this is Blue Grey 700 -->
+    <color name="quickcontact_default_photo_tint_color_dark">@color/omni_color2</color>
+
+    <!-- Color of the title to the Frequently Contacted section -->
+    <color name="frequently_contacted_title_color">@color/omni_color5</color>
+
+    <!-- Text color of the search box text as entered by user  -->
+    <color name="searchbox_text_color">@color/omni_text1</color>
+    <!-- Background color of the search box -->
+    <color name="searchbox_background_color">@color/omni_color2</color>
+
+    <color name="searchbox_hint_text_color">@color/omni_text2</color>
+
+    <color name="search_shortcut_icon_color">@color/omni_color7</color>
+
+    <!-- Color of the background of the contact detail and editor pages -->
+    <color name="background_primary">@color/omni_color1</color>
+    <color name="contact_all_list_background_color">@color/omni_color2</color>
+
+    <!-- Text color used for character counter when the max limit has been exceeded -->
+    <color name="call_subject_limit_exceeded">#d1041c</color>
+
+    <!-- Tint color for the call subject history icon. -->
+    <color name="call_subject_history_icon">#ffffff</color>
+
+    <!-- Text color for the SEND & CALL button on the call subject dialog. -->
+    <color name="call_subject_button">#00c853</color>
+
+    <!-- Background color for the call subject history view. -->
+    <color name="call_subject_history_background">@color/omni_color1</color>
+    <color name="search_video_call_icon_tint">@color/omni_text3</color>
+
+    <!-- Text color for an action in a snackbar. -->
+    <color name="snackbar_action_text">@color/omni_text1</color>
+    <!-- Background color for a snackbar. -->
+    <color name="snackbar_background">@color/omni_color1</color>
+
+    <!-- Color of account/custom filters -->
+    <color name="account_filter_text_color">@color/omni_text1</color>
+    <color name="custom_filter_divider">#0b0b0b</color>
+
+    <color name="material_star_pink">@color/omni_color5</color>
+
+    <!-- Primary text color in Contacts app -->
+    <color name="contacts_text_color">@color/omni_text1</color>
+
+    <!-- tint color for device account icons -->
+    <color name="device_account_tint_color">#7f7f7f</color>
+
+    <!-- Background color for sync-off alert. -->
+    <color name="alert_background">@color/omni_color7</color>
+
+    <!-- Divider color in navigation drawer -->
+    <color name="drawer_divider_color">@color/omni_color2</color>
+
+    <!-- Background color for the navigation drawer -->
+    <color name="navigation_drawer_background_color">@color/omni_color2</color>
+
+    <!-- Background color for the current selected item in the navigation drawer -->
+    <color name="drawer_selected_color">@color/omni_color1</color>
+
+    <!-- Highlight color used in places such as ripples -->
+    <color name="control_highlight_color">#1Affffff</color>
+
+    <color name="ic_contacts_launcher_background">#2458CA</color>
+
+    <!-- Color of ripples used for views with dark backgrounds -->
+    <color name="ripple_material_dark">@color/omni_color3</color>
+
+    <color name="actionbar_text_color_black">@android:color/white</color>
+
+    <color name="actionbar_color_grey_solid">@android:color/white</color>
+
+    <color name="actionbar_icon_color_grey">@android:color/white</color>
+
+    <color name="actionbar_icon_color">@android:color/white</color>
+
+    <color name="actionbar_text_color">@android:color/white</color>
+
+</resources>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
new file mode 100644
index 0000000..b4b967f
--- /dev/null
+++ b/res/values-night/styles.xml
@@ -0,0 +1,596 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+           xmlns:tools="http://schemas.android.com/tools">
+
+    <style name="EditorActivityTheme" parent="@style/PeopleActivityTheme">
+        <item name="actionBarStyle">@style/EditorActionBarStyle</item>
+        <item name="colorButtonNormal">@color/background_primary</item>
+        <item name="windowActionModeOverlay">true</item>
+    </style>
+
+    <style name="Theme.QuickContact" parent="@style/PeopleTheme">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:colorBackgroundCacheHint">@null</item>
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
+        <item name="android:windowIsFloating">false</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <!-- We need to use a light ripple behind ActionBar items in order for them to
+             be visible when using some of the darker ActionBar tints -->
+        <item name="android:actionBarItemBackground">
+            @drawable/item_background_material_borderless_dark
+        </item>
+    </style>
+
+    <style name="PeopleTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
+        <item name="android:actionBarStyle">@style/ContactsActionBarStyle</item>
+        <!-- Style for the overflow button in the actionbar. -->
+        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
+        <item name="android:actionModeCloseDrawable">@drawable/quantum_ic_close_vd_theme_24</item>
+        <item name="android:textColorPrimary">@color/primary_text_color</item>
+        <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:icon">@android:color/transparent</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:windowBackground">@color/background_primary</item>
+        <item name="android:colorPrimaryDark">@color/primary_color</item>
+        <item name="android:colorPrimary">@color/primary_color</item>
+        <item name="android:colorAccent">@color/primary_color</item>
+        <item name="android:alertDialogTheme">@style/ContactsAlertDialogTheme</item>
+        <item name="list_item_height">@dimen/contact_browser_list_item_height</item>
+        <item name="list_section_header_height">24dip</item>
+        <item name="list_item_padding_top">
+            @dimen/contact_browser_list_item_padding_top_or_bottom
+        </item>
+        <item name="list_item_padding_right">32dp</item>
+        <item name="list_item_padding_bottom">
+            @dimen/contact_browser_list_item_padding_top_or_bottom
+        </item>
+        <item name="list_item_padding_left">0dp</item>
+        <item name="list_item_gap_between_image_and_text">
+            @dimen/contact_browser_list_item_gap_between_image_and_text
+        </item>
+        <item name="list_item_gap_between_label_and_data">5dip</item>
+        <item name="list_item_presence_icon_margin">4dip</item>
+        <item name="list_item_presence_icon_size">16dip</item>
+        <item name="list_item_photo_size">@dimen/contact_browser_list_item_photo_size</item>
+        <item name="list_item_profile_photo_size">70dip</item>
+        <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
+        <item name="list_item_background_color">@color/list_item_pinned_header_color</item>
+        <item name="list_item_header_text_color">@color/people_app_theme_color</item>
+        <item name="list_item_header_text_size">14sp</item>
+        <item name="list_item_header_height">30dip</item>
+        <item name="list_item_header_text_indent">8dip</item>
+        <item name="contact_browser_list_padding_left">0dip</item>
+        <item name="contact_browser_list_padding_right">0dip</item>
+        <item name="contact_browser_background">@color/background_primary</item>
+        <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
+        <item name="list_item_text_offset_top">-2dp</item>
+        <item name="list_item_avatar_offset_top">-1dp</item>
+        <!-- Favorites -->
+        <item name="favorites_padding_bottom">0dip</item>
+        <!-- Popup menu -->
+        <item name="android:popupMenuStyle">@style/PopupMenuStyle</item>
+        <item name="android:popupTheme">@style/PopupMenuStyle</item>
+        <item name="android:contextPopupMenuStyle">@style/ContextPopupMenuStyle</item>
+    </style>
+
+    <style name="LaunchScreenTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+        <item name="android:windowBackground">@drawable/quantum_launchscreen_contacts</item>
+        <item name="android:colorPrimary">@color/background_primary</item>
+        <item name="android:colorPrimaryDark">@color/primary_color</item>
+    </style>
+
+    <style name="PeopleActivityTheme" parent="@style/PeopleThemeAppCompat">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+        <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
+    </style>
+
+    <style name="PeopleThemeAppCompat" parent="Theme.AppCompat.Light.DarkActionBar">
+        <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+        <item name="android:actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
+        <item name="actionBarStyle">@style/ContactsActionBarStyleAppCompat</item>
+        <item name="android:actionButtonStyle">@style/ContactsActionButtonStyle</item>
+        <item name="actionButtonStyle">@style/ContactsActionButtonStyle</item>
+        <!-- Style for the overflow button in the actionbar. -->
+        <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
+        <item name="actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
+        <item name="toolbarNavigationButtonStyle">@style/ContactToolbarNavigationButtonStyle</item>
+        <item name="android:actionModeCloseDrawable">@drawable/quantum_ic_close_vd_theme_24</item>
+        <item name="android:textColorPrimary">@color/primary_text_color</item>
+        <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:icon">@android:color/transparent</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:windowBackground">@color/background_primary</item>
+        <item name="android:colorPrimaryDark">@color/primary_color</item>
+        <item name="colorPrimaryDark">@color/primary_color</item>
+        <item name="android:colorPrimary">@color/primary_color</item>
+        <item name="colorPrimary">@color/primary_color</item>
+        <item name="android:colorAccent">@color/primary_color</item>
+        <item name="colorAccent">@color/primary_color</item>
+        <item name="android:alertDialogTheme">@style/ContactsAlertDialogThemeAppCompat</item>
+        <item name="alertDialogTheme">@style/ContactsAlertDialogThemeAppCompat</item>
+        <item name="list_item_height">@dimen/contact_browser_list_item_height</item>
+        <item name="list_section_header_height">24dip</item>
+        <item name="list_item_padding_top">
+            @dimen/contact_browser_list_item_padding_top_or_bottom
+        </item>
+        <item name="list_item_padding_right">32dp</item>
+        <item name="list_item_padding_bottom">
+            @dimen/contact_browser_list_item_padding_top_or_bottom
+        </item>
+        <item name="list_item_padding_left">0dp</item>
+        <item name="list_item_gap_between_image_and_text">
+            @dimen/contact_browser_list_item_gap_between_image_and_text
+        </item>
+        <item name="list_item_gap_between_indexer_and_image">
+            @dimen/contact_browser_list_item_gap_between_indexer_and_image
+        </item>
+        <item name="list_item_gap_between_label_and_data">5dip</item>
+        <item name="list_item_presence_icon_margin">4dip</item>
+        <item name="list_item_presence_icon_size">16dip</item>
+        <item name="list_item_photo_size">@dimen/contact_browser_list_item_photo_size</item>
+        <item name="list_item_profile_photo_size">70dip</item>
+        <item name="list_item_prefix_highlight_color">@color/people_app_theme_color</item>
+        <item name="list_item_background_color">@color/list_item_pinned_header_color</item>
+        <item name="list_item_header_text_color">@color/people_app_theme_color</item>
+        <item name="list_item_header_text_size">14sp</item>
+        <item name="list_item_header_height">30dip</item>
+        <item name="list_item_header_text_indent">8dip</item>
+        <item name="contact_browser_list_padding_left">0dip</item>
+        <item name="contact_browser_list_padding_right">0dip</item>
+        <item name="contact_browser_background">@color/background_primary</item>
+        <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
+        <item name="list_item_text_offset_top">-2dp</item>
+        <item name="list_item_avatar_offset_top">-1dp</item>
+        <!-- Favorites -->
+        <item name="favorites_padding_bottom">0dip</item>
+        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
+        <!-- Popup menu -->
+        <item name="android:popupMenuStyle">@style/PopupMenuStyleAppCompat</item>
+        <item name="popupMenuStyle">@style/PopupMenuStyleAppCompat</item>
+        <item name="android:contextPopupMenuStyle">@style/PopupMenuStyleAppCompat</item>
+
+        <item name="android:fastScrollThumbDrawable">@drawable/thumb_drawable</item>
+        <item name="android:fastScrollTrackDrawable">@null</item>
+        <item name="android:fastScrollTextColor">@android:color/white</item>
+    </style>
+
+    <style name="PopupMenuStyle" parent="@android:style/Theme.DeviceDefault.Dialog">
+    </style>
+
+    <style name="PopupMenuStyleAppCompat" parent="@android:style/Theme.DeviceDefault.Dialog">
+    </style>
+
+    <style name="ContextPopupMenuStyle" parent="@android:style/Widget.PopupMenu">
+        <item name="android:popupBackground">@android:color/white</item>
+    </style>
+
+    <style name="ContactsActionButtonStyle" parent="Widget.AppCompat.ActionButton">
+        <item name="android:paddingStart">16dp</item>
+        <item name="android:paddingEnd">16dp</item>
+    </style>
+
+    <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
+        <item name="spinBars">false</item>
+        <item name="color">@android:color/white</item>
+        <item name="android:color">@android:color/white</item>
+    </style>
+
+    <!-- Use the non-light style so that the up button & icons aren't black. If we use the
+         Light style, then it is impossible to tint the homeAsUp icon anything other than black -->
+    <style name="ContactsActionBarStyle" parent="@android:style/Widget.Material.ActionBar">
+        <item name="android:background">@color/actionbar_background_color</item>
+        <item name="android:titleTextStyle">@style/ContactsActionBarTitleText</item>
+        <item name="android:backgroundStacked">@color/actionbar_background_color</item>
+        <!-- Empty icon -->
+        <item name="android:icon">@android:color/transparent</item>
+    </style>
+
+    <style name="ContactsActionBarStyleAppCompat"
+        parent="@style/Widget.AppCompat.ActionBar.Solid">
+        <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+        <item name="android:background">@color/actionbar_background_color</item>
+        <item name="background">@color/actionbar_background_color</item>
+        <item name="android:titleTextStyle">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="titleTextStyle">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="android:backgroundStacked">@color/actionbar_background_color</item>
+        <item name="backgroundStacked">@color/actionbar_background_color</item>
+        <!-- Empty icon -->
+        <item name="android:icon">@android:color/transparent</item>
+        <item name="icon">@android:color/transparent</item>
+    </style>
+
+    <style name="EditorActionBarStyle" parent="@style/ContactsToolbarStyle">
+        <item name="android:contentInsetStart">72dp</item>
+        <item name="android:contentInsetStartWithNavigation">72dp</item>
+        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleText</item>
+    </style>
+
+    <!-- When this style was added, android:toolbarStyle was private. Therefore, this style
+         must be directly applied to every toolbar -->
+    <style name="ContactsToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
+        <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="popupTheme">@style/PopupMenuStyleAppCompat</item>
+    </style>
+
+    <style name="LightToolbarNavigationButtonStyle" parent="@style/Widget.AppCompat.Toolbar.Button.Navigation">
+        <item name="android:tint">?android:textColorSecondary</item>
+    </style>
+
+    <style name="LightToolbarThemeOverlay" parent="@style/ThemeOverlay.AppCompat.ActionBar">
+        <item name="toolbarNavigationButtonStyle">@style/LightToolbarNavigationButtonStyle</item>
+    </style>
+
+    <style name="LightToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
+        <item name="android:background">@color/contextual_selection_bar_color</item>
+        <item name="background">@color/contextual_selection_bar_color</item>
+        <item name="android:titleTextAppearance">@style/ContactsActionBarTitleTextBlack</item>
+        <item name="titleTextAppearance">@style/ContactsActionBarTitleTextBlack</item>
+    </style>
+
+    <!-- Text in the action bar at the top of the screen -->
+    <style name="ContactsActionBarTitleText"
+        parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
+        <item name="android:textSize">20dp</item>
+        <item name="android:textColor">@color/actionbar_text_color</item>
+    </style>
+
+    <style name="ContactsActionBarTitleTextAppCompat" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
+        <item name="android:textSize">20dp</item>
+        <item name="android:textColor">@color/actionbar_text_color</item>
+    </style>
+
+    <style name="ContactsActionBarTitleTextBlack" parent="@style/ContactsActionBarTitleTextAppCompat">
+        <item name="android:textColor">@color/actionbar_text_color_black</item>
+    </style>
+
+    <!-- Action bar overflow menu icon. -->
+    <style name="ContactsActionBarOverflowQP"
+        parent="Widget.AppCompat.Light.ActionButton.Overflow">
+        <item name="android:src">@drawable/quantum_ic_more_vert_vd_theme_24</item>
+        <item name="android:tint">@color/action_bar_button_text_color</item>
+    </style>
+
+    <!-- Toolbar navigation button. -->
+    <style name="ContactToolbarNavigationButtonStyle" parent="@style/Widget.AppCompat.Toolbar.Button.Navigation">
+        <item name="android:tint">@color/action_bar_button_text_color</item>
+    </style>
+
+    <style name="ContactPickerTheme" parent="PeopleActivityTheme">
+    </style>
+
+    <style name="ContactsPreferencesTheme" parent="@style/PeopleThemeAppCompat">
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+    </style>
+
+    <style name="ContactListFilterTheme" parent="@style/PeopleTheme">
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:actionButtonStyle">@style/FilterActionButtonStyle</item>
+    </style>
+
+    <style name="NonPhoneActivityTheme" parent="@android:Theme.Translucent.NoTitleBar">
+    </style>
+
+    <style name="NonPhoneDialogTheme" parent="@android:Theme.DeviceDefault.Dialog">
+    </style>
+
+    <style name="ConfirmAddDetailDialogTheme" parent="@android:style/Theme.DeviceDefault.Dialog.MinWidth">
+        <item name="android:windowCloseOnTouchOutside">true</item>
+    </style>
+
+    <style name="ContactEditorAccountsChangedActivityTheme" parent="@android:style/Theme.DeviceDefault.Dialog.NoActionBar.MinWidth">
+        <item name="android:windowCloseOnTouchOutside">true</item>
+        <item name="android:textColorPrimary">@color/primary_text_color</item>
+        <item name="android:textColorSecondary">@color/secondary_text_color</item>
+        <item name="android:listViewStyle">@style/ListViewStyle</item>
+        <item name="android:colorAccent">@color/primary_color</item>
+    </style>
+
+    <style name="SelectableItem" parent="@android:style/Theme.DeviceDefault">
+        <item name="android:background">@color/background_primary</item>
+    </style>
+
+    <style name="SpinnerButtonStyle" parent="@android:style/Widget.Material.Spinner.Underlined">
+        <!-- When applying the spinner style to a Button we need to disable the shadow animation
+            on the button since the spinner background is transparent. Otherwise the spinner-button
+            will look ridiculous. -->
+        <item name="android:stateListAnimator">@null</item>
+        <!-- We want our spinner's to use the same gravity as an EditText, so that they look
+            visually consistent with other controls in our forms -->
+        <item name="android:gravity">start|center_vertical</item>
+    </style>
+
+    <style name="EditKindSeparatorTextViewStyle" parent="ContactListSeparatorTextViewStyle">
+        <item name="android:textAppearance">@style/EditKindTextAppearanceStyle</item>
+    </style>
+
+    <style name="EditKindTextAppearanceStyle" parent="@android:style/TextAppearance.Small">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textAllCaps">true</item>
+        <item name="android:textColor">#363636</item>
+        <item name="android:fontFamily">sans-serif</item>
+    </style>
+
+    <!-- Inherit from Theme.Material.Light.Dialog instead of Theme.Material.Light.Dialog.Alert
+        since the Alert dialog is private. They are identical anyway. -->
+    <style name="ContactsAlertDialogTheme" parent="@android:style/Theme.DeviceDefault.Dialog">
+        <item name="android:colorAccent">@color/primary_color</item>
+        <item name="android:background">@color/background_primary</item>
+    </style>
+
+    <style name="ContactsAlertDialogThemeAppCompat" parent="Theme.AppCompat.Light.Dialog.MinWidth">
+        <item name="android:colorAccent">@color/primary_color</item>
+        <item name="colorAccent">@color/primary_color</item>
+    </style>
+
+    <style name="EditKindIconStyle">
+        <item name="android:layout_width">24dp</item>
+        <item name="android:layout_height">24dp</item>
+        <item name="android:tint">@color/dialtacts_secondary_text_color</item>
+        <item name="android:layout_marginStart">16dp</item>
+        <!-- We want 32dp of padding between these icon's and EditText's. Since EditText's have
+            4dp of starting padding built in, we set this as 28dp. -->
+        <item name="android:layout_marginEnd">28dp</item>
+        <item name="android:layout_marginTop">@dimen/editor_kind_icon_top_margin</item>
+    </style>
+
+    <style name="EditSelectorIconStyle">
+        <item name="android:layout_width">24dp</item>
+        <item name="android:layout_height">24dp</item>
+        <item name="android:layout_marginStart">16dp</item>
+        <!-- We want 32dp of padding between these icon's and EditText's. Since EditText's have
+            4dp of starting padding built in, we set this as 28dp. -->
+        <item name="android:layout_marginEnd">28dp</item>
+        <item name="android:layout_marginTop">@dimen/editor_kind_icon_top_margin</item>
+    </style>
+
+    <style name="AccountTypeIconStyle">
+        <item name="android:layout_width">12dp</item>
+        <item name="android:layout_height">12dp</item>
+        <item name="android:layout_marginStart">4dp</item>
+        <item name="android:layout_marginEnd">4dp</item>
+    </style>
+
+    <style name="AccountTypeNameStyle">
+        <item name="android:textSize">10sp</item>
+        <item name="android:textColor">#363636</item>
+        <item name="android:fontFamily">sans-serif</item>
+    </style>
+
+    <style name="NavigationDrawerMenuItemTextAppearance">
+        <item name="android:ellipsize">end</item>
+    </style>
+
+    <!-- Text style for empty states (no account view, empty label). -->
+    <style name="EmptyStateTextStyle">
+        <item name="android:textSize">18sp</item>
+        <item name="android:textColor">#000000</item>
+        <item name="android:alpha">0.54</item>
+        <item name="android:fontFamily">sans-serif</item>
+    </style>
+
+    <!-- Button style for main contacts no account empty view. -->
+    <style name="NoAccountViewButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">@color/primary_color</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
+
+    <!-- Add contacts button style for empty states. -->
+    <style name="AddContactsButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless">
+        <item name="android:textSize">16sp</item>
+        <item name="android:textColor">@color/primary_color</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
+
+    <style name="SectionHeaderStyle" parent="@android:style/TextAppearance.Large">
+        <item name="android:textSize">16sp</item>
+        <item name="android:textAllCaps">true</item>
+        <item name="android:textColor">@color/section_header_text_color</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="DirectoryHeaderStyle" parent="@android:style/TextAppearance.Small">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">@color/dialtacts_secondary_text_color</item>
+        <item name="android:fontFamily">sans-serif-medium</item>
+    </style>
+
+    <!-- TextView style used for headers.
+
+This is similar to ?android:attr/listSeparatorTextView but uses different
+background and text color. See also android:style/Widget.Holo.TextView.ListSeparator
+(which is private, so we cannot specify it as a parent style).  -->
+    <style name="ContactListSeparatorTextViewStyle">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <!-- See comments for @dimen/list_section_divider_min_height -->
+        <item name="android:minHeight">@dimen/list_section_divider_min_height</item>
+        <item name="android:textAppearance">@style/DirectoryHeaderStyle</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="android:paddingLeft">8dip</item>
+        <item name="android:paddingStart">8dip</item>
+        <item name="android:paddingTop">4dip</item>
+        <item name="android:paddingBottom">4dip</item>
+        <item name="android:ellipsize">end</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:textAllCaps">true</item>
+    </style>
+
+    <style name="TextAppearanceMedium" parent="@android:style/TextAppearance.Medium">
+        <item name="android:textSize">16sp</item>
+        <item name="android:textColor">#000000</item>
+    </style>
+
+    <style name="TextAppearanceSmall" parent="@android:style/TextAppearance.Small">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">#737373</item>
+    </style>
+
+    <style name="ListViewStyle" parent="@android:style/Widget.Material.ListView">
+        <item name="android:overScrollMode">always</item>
+        <item name="android:background">@color/background_primary</item>
+    </style>
+
+    <!-- Adding padding to action button doesn't move it to left, we increase the button width to
+     make margin between the button and screen edge 16dp -->
+    <style name="FilterActionButtonStyle" parent="@android:Widget.ActionButton">
+        <item name="android:minWidth">@dimen/contact_filter_action_button_width</item>
+        <item name="android:textColor">@color/actionbar_text_color</item>
+    </style>
+
+    <style name="CustomContactListFilterView" parent="ContactListFilterTheme">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+    </style>
+
+    <style name="BackgroundOnlyTheme" parent="@android:style/Theme.DeviceDefault">
+        <item name="android:windowBackground">@null</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@null</item>
+        <item name="android:windowNoTitle">true</item>
+        <!-- Activities that use this theme are background activities without obvious displays.
+            However, some also have dialogs. Therefore, it doesn't make sense to set this true.-->
+        <item name="android:windowNoDisplay">false</item>
+        <item name="android:windowIsFloating">true</item>
+    </style>
+
+    <style name="Theme.CallSubjectDialogTheme" parent="@android:style/Theme.DeviceDefault.Dialog">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+
+        <!-- No backgrounds, titles or window float -->
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowFullscreen">false</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowDrawsSystemBarBackgrounds">false</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowElevation">0dp</item>
+    </style>
+
+    <!-- Transparent/blank activity -->
+    <style name="TransparentThemeAppCompat" parent="@style/PeopleActivityTheme">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:backgroundDimEnabled">false</item>
+    </style>
+
+    <style name="FullScreenDialogAnimationStyle">
+        <item name="android:windowEnterAnimation">@anim/slide_and_fade_in</item>
+        <item name="android:windowExitAnimation">@anim/slide_and_fade_out</item>
+    </style>
+
+    <style name="PeopleThemeAppCompat.FullScreenDialog">
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+        <item name="windowActionBar">false</item>
+        <item name="android:listSelector">?android:attr/listChoiceBackgroundIndicator</item>
+        <item name="android:windowAnimationStyle">@style/FullScreenDialogAnimationStyle</item>
+    </style>
+
+    <style name="PeopleThemeAppCompat.FullScreenDialog.SimImportActivity">
+        <!-- This is necessary because the window is partially transparent during the enter
+             and exit animations -->
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:statusBarColor">@color/contextual_selection_bar_status_bar_color</item>
+    </style>
+
+    <!-- Style for item in navigation drawer -->
+    <style name="DrawerItemStyle">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">@dimen/drawer_item_fixed_height</item>
+        <item name="android:layout_gravity">center_vertical</item>
+        <item name="android:background">@drawable/drawer_item_background</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:paddingStart">@dimen/drawer_side_padding</item>
+    </style>
+
+    <style name="DrawerPrimaryItemStyle" parent="DrawerItemStyle">
+        <item name="android:paddingEnd">@dimen/drawer_item_text_margin</item>
+    </style>
+
+    <!-- Style for item icon in navigation drawer -->
+    <style name="DrawerItemIconStyle">
+        <item name="android:layout_width">@dimen/drawer_item_icon_size</item>
+        <item name="android:layout_height">@dimen/drawer_item_icon_size</item>
+        <item name="android:layout_gravity">center</item>
+        <item name="android:gravity">center</item>
+        <item name="android:scaleType">center</item>
+    </style>
+
+    <!-- Style for primary item text in navigation drawer -->
+    <style name="DrawerItemTextStyle" parent="DrawerTextStyle">
+        <item name="android:textColor">@color/primary_text_color</item>
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:textAlignment">viewStart</item>
+        <item name="android:layout_marginStart">@dimen/drawer_item_text_margin</item>
+        <item name="android:layout_marginEnd">@dimen/drawer_item_text_margin</item>
+    </style>
+
+    <style name="DrawerTextStyle">
+        <item name="android:fontFamily" tools:ignore="NewApi">sans-serif-medium</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="android:layout_gravity">center_vertical</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:ellipsize">end</item>
+    </style>
+
+    <style name="DrawerItemTextActiveStyle">
+        <item name="android:textColor">@color/primary_color</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="DrawerItemTextInactiveStyle">
+        <item name="android:textColor">@color/quantum_black_text</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="DrawerHeaderTextStyle" parent="DrawerTextStyle">
+        <item name="android:layout_gravity">center_vertical|start</item>
+        <item name="android:paddingTop">12dp</item>
+        <item name="android:paddingBottom">12dp</item>
+        <item name="android:textColor">@color/quantum_black_secondary_text</item>
+        <item name="android:textSize">14sp</item>
+    </style>
+
+    <style name="DrawerBadgeStyle" parent="DrawerHeaderTextStyle">
+        <item name="android:layout_gravity">center_vertical|end</item>
+    </style>
+
+    <style name="DrawerHeaderItemStyle">
+        <item name="android:paddingStart">@dimen/drawer_side_padding</item>
+        <item name="android:paddingEnd">@dimen/drawer_label_header_end_padding</item>
+    </style>
+</resources>
diff --git a/res/values-v31/colors.xml b/res/values-v31/colors.xml
new file mode 100644
index 0000000..38b1708
--- /dev/null
+++ b/res/values-v31/colors.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources>
+    <color name="primary_color_dark">@android:color/system_accent1_600</color>
+    <color name="primary_color">@android:color/system_accent1_600</color>
+    <color name="group_primary_color_dark">@android:color/system_accent2_600</color>
+    <color name="group_primary_color">@android:color/system_accent2_600</color>
+    <color name="contacts_accent_color">@color/primary_color</color>
+    <color name="floating_action_button_icon_color">@android:color/white</color>
+    <color name="material_star_pink">@color/primary_color</color>
+    <color name="frequently_contacted_title_color">@color/primary_color</color>
+    <color name="people_app_theme_color">@color/primary_color</color>
+    <color name="dialtacts_theme_color">@color/primary_color</color>
+    <color name="action_bar_background">@color/primary_color</color>
+    <color name="actionbar_background_color">@color/primary_color</color>
+    <color name="contextual_selection_bar_color">@color/primary_color</color>
+    <color name="swipe_refresh_color1">@color/primary_color</color>
+    <color name="contextual_selection_bar_status_bar_color">@color/primary_color</color>
+    <color name="quickcontact_default_photo_tint_color">@color/primary_color</color>
+    <color name="ic_contacts_launcher_background">@android:color/system_accent1_600</color>
+    <color name="background_primary">@android:color/system_neutral1_10</color>
+    <color name="contact_all_list_background_color">@android:color/system_neutral1_10</color>
+    <color name="actionbar_text_color">@android:color/white</color>
+    <color name="actionbar_icon_color_grey">#8C000000</color>
+    <color name="actionbar_text_color_black">#DF000000</color>
+    <color name="actionbar_color_grey_solid">#777777</color>
+    <color name="searchbox_text_color">@android:color/black</color>
+    <color name="searchbox_background_color">@color/background_primary</color>
+    <color name="searchbox_hint_text_color">#66000000</color>
+    <color name="search_shortcut_icon_color">@color/dialtacts_theme_color</color>
+    <color name="expanding_entry_card_background_color">@android:color/system_neutral1_50</color>
+    <color name="divider_line_color_light">@android:color/system_neutral1_200</color>
+</resources>
diff --git a/res/values-v31/dimens.xml b/res/values-v31/dimens.xml
new file mode 100644
index 0000000..07a2cdc
--- /dev/null
+++ b/res/values-v31/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+<resources>
+    <dimen name="expanding_entry_card_elevation">0dp</dimen>
+    <dimen name="quickcontact_edge_radius">12dp</dimen>
+    <dimen name="expanding_entry_card_card_corner_radius">8dp</dimen>
+    <dimen name="quick_contact_toolbar_elevation">0dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/res/values/colors.xml b/res/values/colors.xml
index aeba877..15e0294 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -69,9 +69,6 @@
     <!-- Background color of pinned header items. -->
     <color name="list_item_pinned_header_color">@color/background_primary</color>
 
-    <!-- Color of the mime-type icons inside the editor. 50% black. -->
-    <color name="editor_icon_color">#7f7f7f</color>
-
     <!-- Color of disabled text and unfocused hint text inside the contact editor. 25% black. -->
     <color name="editor_disabled_text_color">#40000000</color>
 
@@ -102,7 +99,7 @@
     <color name="secondary_text_color">@color/dialtacts_secondary_text_color</color>
 
     <!-- Text color for section header. -->
-    <color name="section_header_text_color">@color/dialtacts_theme_color</color>
+    <color name="section_header_text_color">@color/primary_text_color</color>
 
     <!-- Color of the theme of the People app -->
     <color name="people_app_theme_color">#363636</color>
@@ -151,20 +148,20 @@
     <!-- Darker versions of letter_tile_colors, two shades darker. These colors are used
         for settings secondary activity colors. -->
     <array name="letter_tile_colors_dark">
-        <item>#C53929</item>
-        <item>#C2185B</item>
-        <item>#7B1FA2</item>
-        <item>#512DA8</item>
-        <item>#303F9F</item>
-        <item>#3367D6</item>
-        <item>#0277BD</item>
-        <item>#006064</item>
-        <item>#00796B</item>
-        <item>#0B8043</item>
-        <item>#33691E</item>
-        <item>#E65100</item>
-        <item>#E64A19</item>
-        <item>#424242</item>
+        <item>#DB4437</item>
+        <item>#E91E63</item>
+        <item>#9C27B0</item>
+        <item>#673AB7</item>
+        <item>#3F51B5</item>
+        <item>#4285F4</item>
+        <item>#039BE5</item>
+        <item>#0097A7</item>
+        <item>#009688</item>
+        <item>#0F9D58</item>
+        <item>#689F38</item>
+        <item>#EF6C00</item>
+        <item>#FF5722</item>
+        <item>#757575</item>
     </array>
 
     <!-- The default color used for tinting photos when no color can be extracted via Palette,
@@ -256,4 +253,5 @@
     <!-- Highlight color used in places such as ripples -->
     <color name="control_highlight_color">#1A000000</color>
 
+    <color name="ic_contacts_launcher_background">#2458CA</color>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 6d100ac..0be7772 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -122,7 +122,7 @@
     <dimen name="expanding_entry_card_marginBottom">12dp</dimen>
 
     <!-- Top margin for the communication card, used to add space from header. -->
-    <dimen name="first_card_marginTop">12dp</dimen>
+    <dimen name="first_card_marginTop">@dimen/expanding_entry_card_marginStartEnd</dimen>
 
     <!-- Elevation of an ExpandingEntryCard, for the sake of shadow casting -->
     <dimen name="expanding_entry_card_elevation">2dp</dimen>
@@ -382,4 +382,5 @@
     <!-- Side padding within the navigation drawer -->
     <dimen name="drawer_label_header_end_padding">24dp</dimen>
 
+    <dimen name="quickcontact_edge_radius">0dp</dimen>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index ffd800f..d24a7b2 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -49,7 +49,7 @@
         <item name="android:icon">@android:color/transparent</item>
         <item name="android:listViewStyle">@style/ListViewStyle</item>
         <item name="android:windowBackground">@color/background_primary</item>
-        <item name="android:colorPrimaryDark">@color/primary_color_dark</item>
+        <item name="android:colorPrimaryDark">@color/primary_color</item>
         <item name="android:colorPrimary">@color/primary_color</item>
         <item name="android:colorAccent">@color/primary_color</item>
         <item name="android:alertDialogTheme">@style/ContactsAlertDialogTheme</item>
@@ -87,13 +87,14 @@
         <item name="favorites_padding_bottom">0dip</item>
         <!-- Popup menu -->
         <item name="android:popupMenuStyle">@style/PopupMenuStyle</item>
+        <item name="android:popupTheme">@style/PopupMenuStyle</item>
+        <item name="android:contextPopupMenuStyle">@style/ContextPopupMenuStyle</item>
     </style>
 
     <style name="LaunchScreenTheme" parent="Theme.AppCompat.Light.DarkActionBar">
         <item name="android:windowBackground">@drawable/quantum_launchscreen_contacts</item>
-        <!-- Ensure the status bar color matches the background (grey 500) -->
-        <!-- TODO(yaolu): Switch to use quantum_grey if in Google3 -->
-        <item name="android:colorPrimaryDark">#9e9e9e</item>
+        <item name="android:colorPrimary">@color/background_primary</item>
+        <item name="android:colorPrimaryDark">@color/primary_color</item>
     </style>
 
     <style name="PeopleActivityTheme" parent="@style/PeopleThemeAppCompat">
@@ -118,8 +119,8 @@
         <item name="android:icon">@android:color/transparent</item>
         <item name="android:listViewStyle">@style/ListViewStyle</item>
         <item name="android:windowBackground">@color/background_primary</item>
-        <item name="android:colorPrimaryDark">@color/primary_color_dark</item>
-        <item name="colorPrimaryDark">@color/primary_color_dark</item>
+        <item name="android:colorPrimaryDark">@color/primary_color</item>
+        <item name="colorPrimaryDark">@color/primary_color</item>
         <item name="android:colorPrimary">@color/primary_color</item>
         <item name="colorPrimary">@color/primary_color</item>
         <item name="android:colorAccent">@color/primary_color</item>
@@ -165,13 +166,20 @@
         <!-- Popup menu -->
         <item name="android:popupMenuStyle">@style/PopupMenuStyleAppCompat</item>
         <item name="popupMenuStyle">@style/PopupMenuStyleAppCompat</item>
+        <item name="android:contextPopupMenuStyle">@style/PopupMenuStyleAppCompat</item>
+
+        <item name="android:fastScrollThumbDrawable">@drawable/thumb_drawable</item>
+        <item name="android:fastScrollTrackDrawable">@null</item>
+        <item name="android:fastScrollTextColor">@android:color/white</item>
     </style>
 
-    <style name="PopupMenuStyle" parent="@android:style/Widget.PopupMenu">
-        <item name="android:popupBackground">@android:color/white</item>
+    <style name="PopupMenuStyle" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
     </style>
 
-    <style name="PopupMenuStyleAppCompat" parent="Widget.AppCompat.PopupMenu">
+    <style name="PopupMenuStyleAppCompat" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
+    </style>
+
+    <style name="ContextPopupMenuStyle" parent="@android:style/Widget.PopupMenu">
         <item name="android:popupBackground">@android:color/white</item>
     </style>
 
@@ -222,6 +230,7 @@
         <!-- Styles that require AppCompat compatibility, remember to update both sets -->
         <item name="android:titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
         <item name="titleTextAppearance">@style/ContactsActionBarTitleTextAppCompat</item>
+        <item name="popupTheme">@style/PopupMenuStyleAppCompat</item>
     </style>
 
     <style name="LightToolbarNavigationButtonStyle" parent="@style/Widget.AppCompat.Toolbar.Button.Navigation">
@@ -282,14 +291,14 @@
     <style name="NonPhoneActivityTheme" parent="@android:Theme.Translucent.NoTitleBar">
     </style>
 
-    <style name="NonPhoneDialogTheme" parent="@android:Theme.Material.Light.Dialog">
+    <style name="NonPhoneDialogTheme" parent="@android:Theme.DeviceDefault.Light.Dialog">
     </style>
 
-    <style name="ConfirmAddDetailDialogTheme" parent="@android:style/Theme.Material.Light.Dialog.MinWidth">
+    <style name="ConfirmAddDetailDialogTheme" parent="@android:style/Theme.DeviceDefault.Light.Dialog.MinWidth">
         <item name="android:windowCloseOnTouchOutside">true</item>
     </style>
 
-    <style name="ContactEditorAccountsChangedActivityTheme" parent="@android:style/Theme.Material.Light.Dialog.NoActionBar.MinWidth">
+    <style name="ContactEditorAccountsChangedActivityTheme" parent="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth">
         <item name="android:windowCloseOnTouchOutside">true</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
@@ -297,13 +306,14 @@
         <item name="android:colorAccent">@color/primary_color</item>
     </style>
 
-    <style name="SelectableItem" parent="@android:style/Theme.Material.Light">
-        <item name="android:background">?android:attr/selectableItemBackground</item>
+    <style name="SelectableItem" parent="@android:style/Theme.DeviceDefault.Light">
+        <item name="android:background">@color/background_primary</item>
     </style>
 
     <style name="ExpandingEntryCardStyle">
-        <item name="android:elevation">@dimen/expanding_entry_card_elevation</item>
-        <item name="android:background">@color/expanding_entry_card_background_color</item>
+        <item name="cardElevation">@dimen/expanding_entry_card_elevation</item>
+        <item name="cardBackgroundColor">@color/expanding_entry_card_background_color</item>
+        <item name="contentPadding">4dp</item>
         <item name="android:layout_marginBottom">@dimen/expanding_entry_card_marginBottom</item>
         <item name="android:layout_marginEnd">@dimen/expanding_entry_card_marginStartEnd</item>
         <item name="android:layout_marginStart">@dimen/expanding_entry_card_marginStartEnd</item>
@@ -336,8 +346,9 @@
 
     <!-- Inherit from Theme.Material.Light.Dialog instead of Theme.Material.Light.Dialog.Alert
         since the Alert dialog is private. They are identical anyway. -->
-    <style name="ContactsAlertDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
+    <style name="ContactsAlertDialogTheme" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
         <item name="android:colorAccent">@color/primary_color</item>
+        <item name="android:background">@color/background_primary</item>
     </style>
 
     <style name="ContactsAlertDialogThemeAppCompat" parent="Theme.AppCompat.Light.Dialog.MinWidth">
@@ -348,7 +359,7 @@
     <style name="EditKindIconStyle">
         <item name="android:layout_width">24dp</item>
         <item name="android:layout_height">24dp</item>
-        <item name="android:tint">@color/editor_icon_color</item>
+        <item name="android:tint">@color/dialtacts_secondary_text_color</item>
         <item name="android:layout_marginStart">16dp</item>
         <!-- We want 32dp of padding between these icon's and EditText's. Since EditText's have
             4dp of starting padding built in, we set this as 28dp. -->
@@ -453,6 +464,7 @@
 
     <style name="ListViewStyle" parent="@android:style/Widget.Material.Light.ListView">
         <item name="android:overScrollMode">always</item>
+        <item name="android:background">@color/background_primary</item>
     </style>
 
     <!-- Adding padding to action button doesn't move it to left, we increase the button width to
@@ -467,7 +479,7 @@
         <item name="android:layout_height">match_parent</item>
     </style>
 
-    <style name="BackgroundOnlyTheme" parent="@android:style/Theme.Material.Light">
+    <style name="BackgroundOnlyTheme" parent="@android:style/Theme.DeviceDefault.Light">
         <item name="android:windowBackground">@null</item>
         <item name="android:windowContentOverlay">@null</item>
         <item name="android:windowAnimationStyle">@null</item>
@@ -478,7 +490,7 @@
         <item name="android:windowIsFloating">true</item>
     </style>
 
-    <style name="Theme.CallSubjectDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
+    <style name="Theme.CallSubjectDialogTheme" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">match_parent</item>
 
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index ceb3d59..629f6cd 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -1042,7 +1042,7 @@
     private void resetToolBarStatusBarColor() {
         findViewById(R.id.toolbar_frame).setBackgroundColor(
                 ContextCompat.getColor(this, R.color.primary_color));
-        updateStatusBarBackground(ContextCompat.getColor(this, R.color.primary_color_dark));
+        updateStatusBarBackground(ContextCompat.getColor(this, R.color.primary_color));
     }
 
     protected DefaultContactBrowseListFragment getListFragment() {
diff --git a/src/com/android/contacts/datepicker/DatePickerDialog.java b/src/com/android/contacts/datepicker/DatePickerDialog.java
index de04af9..163bd39 100644
--- a/src/com/android/contacts/datepicker/DatePickerDialog.java
+++ b/src/com/android/contacts/datepicker/DatePickerDialog.java
@@ -90,8 +90,7 @@
             int monthOfYear,
             int dayOfMonth,
             boolean yearOptional) {
-        // Don't pass a theme id. Instead use the default alert dialog theme.
-        this(context, /* themeId = */ 0, callBack, year, monthOfYear, dayOfMonth,
+        this(context, /* themeId = */ R.style.ContactsAlertDialogTheme, callBack, year, monthOfYear, dayOfMonth,
                 yearOptional);
     }
 
@@ -121,7 +120,7 @@
 
         mTitleDateFormat = DateFormat.getDateInstance(DateFormat.FULL);
         mTitleNoYearDateFormat = DateUtils.getLocalizedDateFormatWithoutYear(getContext());
-        updateTitle(mInitialYear, mInitialMonth, mInitialDay);
+        //updateTitle(mInitialYear, mInitialMonth, mInitialDay);
 
         setButton(BUTTON_POSITIVE, context.getText(R.string.date_time_set),
                 this);
@@ -147,7 +146,7 @@
 
     @Override
     public void onDateChanged(DatePicker view, int year, int month, int day) {
-        updateTitle(year, month, day);
+        //updateTitle(year, month, day);
     }
 
     private void updateTitle(int year, int month, int day) {
diff --git a/src/com/android/contacts/dialog/IndeterminateProgressDialog.java b/src/com/android/contacts/dialog/IndeterminateProgressDialog.java
index f0b7eec..05a6d56 100644
--- a/src/com/android/contacts/dialog/IndeterminateProgressDialog.java
+++ b/src/com/android/contacts/dialog/IndeterminateProgressDialog.java
@@ -24,6 +24,9 @@
 import android.os.Bundle;
 import android.os.Handler;
 
+import com.android.contacts.R;
+
+
 /**
  * Indeterminate progress dialog wrapped up in a DialogFragment to work even when the device
  * orientation is changed. Currently, only supports adding a title and/or message to the progress
@@ -87,7 +90,8 @@
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         // Create the progress dialog and set its properties
-        final ProgressDialog dialog = new ProgressDialog(getActivity());
+        final ProgressDialog dialog = new ProgressDialog(getActivity()
+                , R.style.ContactsAlertDialogTheme);
         dialog.setIndeterminate(true);
         dialog.setIndeterminateDrawable(null);
         dialog.setTitle(mTitle);
diff --git a/src/com/android/contacts/drawer/DrawerFragment.java b/src/com/android/contacts/drawer/DrawerFragment.java
index 485513a..c876d71 100644
--- a/src/com/android/contacts/drawer/DrawerFragment.java
+++ b/src/com/android/contacts/drawer/DrawerFragment.java
@@ -300,9 +300,9 @@
     private void applyTopInset(int insetTop) {
         // set height of the scrim
         mScrimDrawable.setIntrinsicHeight(insetTop);
-        mDrawerListView.setPadding(mDrawerListView.getPaddingLeft(),
+        /*mDrawerListView.setPadding(mDrawerListView.getPaddingLeft(),
                 insetTop, mDrawerListView.getPaddingRight(),
-                mDrawerListView.getPaddingBottom());
+                mDrawerListView.getPaddingBottom());*/
     }
 
     public interface DrawerFragmentListener {
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
index 3df3222..32a7581 100644
--- a/src/com/android/contacts/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -634,7 +634,7 @@
         public View getDropDownView(int position, View convertView, ViewGroup parent) {
             final CheckedTextView dropDownView = (CheckedTextView) createViewFromResource(
                     position, convertView, parent, android.R.layout.simple_spinner_dropdown_item);
-            dropDownView.setBackground(getContext().getDrawable(R.drawable.drawer_item_background));
+            dropDownView.setBackgroundColor(getResources().getColor(R.color.navigation_drawer_background_color));
             dropDownView.setChecked(position == mSelectedIndex);
             return dropDownView;
         }
diff --git a/src/com/android/contacts/editor/PhotoSourceDialogFragment.java b/src/com/android/contacts/editor/PhotoSourceDialogFragment.java
index 4ca4d30..c1f365c 100644
--- a/src/com/android/contacts/editor/PhotoSourceDialogFragment.java
+++ b/src/com/android/contacts/editor/PhotoSourceDialogFragment.java
@@ -24,6 +24,8 @@
 import android.os.Bundle;
 import androidx.appcompat.app.AlertDialog;
 import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.ListAdapter;
 import android.widget.TextView;
 
 import com.android.contacts.R;
@@ -67,11 +69,6 @@
         final ArrayList<ChoiceListItem> choices =
                 PhotoActionPopup.getChoices(getActivity(), photoMode);
 
-        // Prepare the AlertDialog items and click listener
-        final CharSequence[] items = new CharSequence[choices.size()];
-        for (int i = 0; i < items.length; i++) {
-            items[i] = choices.get(i).toString();
-        }
         final OnClickListener clickListener = new OnClickListener() {
             @Override
             public void onClick(DialogInterface dialogInterface, int which) {
@@ -95,9 +92,12 @@
         // Build the AlertDialog
         final TextView title = (TextView) View.inflate(getActivity(), R.layout.dialog_title, null);
         title.setText(R.string.menu_change_photo);
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()
+               , R.style.ContactsAlertDialogTheme);
         builder.setCustomTitle(title);
-        builder.setItems(items, clickListener);
+        final ListAdapter adapter = new ArrayAdapter<ChoiceListItem>(getActivity(),
+                R.layout.select_dialog_item_single, choices);
+        builder.setAdapter(adapter, clickListener);
         builder.setNegativeButton(android.R.string.cancel, /* listener =*/ null);
         return builder.create();
     }
diff --git a/src/com/android/contacts/editor/PickRawContactDialogFragment.java b/src/com/android/contacts/editor/PickRawContactDialogFragment.java
index 5a9c9fd..07ce912 100644
--- a/src/com/android/contacts/editor/PickRawContactDialogFragment.java
+++ b/src/com/android/contacts/editor/PickRawContactDialogFragment.java
@@ -176,7 +176,8 @@
             throw new IllegalArgumentException("Dialog created with null RawContactsMetadata");
         }
 
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()
+                , R.style.ContactsAlertDialogTheme);
         mAdapter = new RawContactAccountListAdapter(getContext(), metadata);
         if (metadata.showReadOnly) {
             builder.setTitle(R.string.contact_editor_pick_linked_contact_dialog_title);
diff --git a/src/com/android/contacts/editor/SelectAccountDialogFragment.java b/src/com/android/contacts/editor/SelectAccountDialogFragment.java
index 3b41c86..6b45444 100644
--- a/src/com/android/contacts/editor/SelectAccountDialogFragment.java
+++ b/src/com/android/contacts/editor/SelectAccountDialogFragment.java
@@ -90,7 +90,8 @@
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()
+               , R.style.ContactsAlertDialogTheme);
         final Bundle args = getArguments();
 
         mAccountsAdapter = new AccountsListAdapter(builder.getContext());
diff --git a/src/com/android/contacts/group/GroupNameEditDialogFragment.java b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
index b015b0d..4258eb5 100644
--- a/src/com/android/contacts/group/GroupNameEditDialogFragment.java
+++ b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
@@ -124,7 +124,7 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.ContactsAlertDialogThemeAppCompat);
+        setStyle(STYLE_NORMAL, R.style.ContactsAlertDialogTheme);
         final Bundle args = getArguments();
         if (savedInstanceState == null) {
             mGroupName = args.getString(KEY_GROUP_NAME);
diff --git a/src/com/android/contacts/interactions/ExportDialogFragment.java b/src/com/android/contacts/interactions/ExportDialogFragment.java
index c7ce072..aeb426c 100644
--- a/src/com/android/contacts/interactions/ExportDialogFragment.java
+++ b/src/com/android/contacts/interactions/ExportDialogFragment.java
@@ -162,7 +162,7 @@
         };
         final TextView title = (TextView) View.inflate(getActivity(), R.layout.dialog_title, null);
         title.setText(R.string.dialog_export);
-        return new AlertDialog.Builder(getActivity())
+        return new AlertDialog.Builder(getActivity(), R.style.ContactsAlertDialogTheme)
                 .setCustomTitle(title)
                 .setSingleChoiceItems(adapter, -1, clickListener)
                 .create();
diff --git a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
index 01361b2..c686da5 100644
--- a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
+++ b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
@@ -48,7 +48,7 @@
         String label = getArguments().getString(ARG_LABEL);
         String message = getActivity().getString(R.string.delete_group_dialog_message, label);
 
-        return new AlertDialog.Builder(getActivity())
+        return new AlertDialog.Builder(getActivity(), R.style.ContactsAlertDialogTheme)
                 .setIconAttribute(android.R.attr.alertDialogIcon)
                 .setMessage(message)
                 .setPositiveButton(android.R.string.ok,
diff --git a/src/com/android/contacts/list/CustomContactListFilterActivity.java b/src/com/android/contacts/list/CustomContactListFilterActivity.java
index 5bc3c35..492478f 100644
--- a/src/com/android/contacts/list/CustomContactListFilterActivity.java
+++ b/src/com/android/contacts/list/CustomContactListFilterActivity.java
@@ -41,6 +41,7 @@
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Groups;
 import android.provider.ContactsContract.Settings;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.LayoutInflater;
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 2aacabe..0b6c20f 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -77,6 +77,7 @@
 import com.android.contacts.util.ImplicitIntentsUtil;
 import com.android.contacts.util.SharedPreferenceUtil;
 import com.android.contacts.util.SyncUtil;
+import com.android.contacts.util.ViewUtil;
 import com.android.contactsbind.FeatureHighlightHelper;
 import com.android.contactsbind.experiments.Flags;
 import com.google.common.util.concurrent.Futures;
@@ -500,6 +501,7 @@
         mSearchHeaderView = inflater.inflate(R.layout.search_header, null, false);
         headerContainer.addView(mSearchHeaderView);
         getListView().addHeaderView(headerContainer, null, false);
+        ViewUtil.addBottomPaddingToListViewForFab(getListView(), getResources());
         checkHeaderViewVisibility();
 
         mSearchProgress = getView().findViewById(R.id.search_progress);
@@ -1029,9 +1031,10 @@
         // Light tint the icons for normal mode, dark tint for search or selection mode.
         for (int i = 0; i < menu.size(); ++i) {
             final Drawable icon = menu.getItem(i).getIcon();
-            if (icon != null && !isSearchOrSelectionMode) {
+            if (icon != null) {
                 icon.mutate().setColorFilter(ContextCompat.getColor(getContext(),
-                        R.color.actionbar_icon_color), PorterDuff.Mode.SRC_ATOP);
+                        !isSearchOrSelectionMode ? R.color.actionbar_icon_color :
+                        R.color.actionbar_icon_color_grey), PorterDuff.Mode.SRC_ATOP);
             }
         }
     }
diff --git a/src/com/android/contacts/preference/DisplayOrderPreference.java b/src/com/android/contacts/preference/DisplayOrderPreference.java
index 801bb24..cea81cd 100644
--- a/src/com/android/contacts/preference/DisplayOrderPreference.java
+++ b/src/com/android/contacts/preference/DisplayOrderPreference.java
@@ -85,6 +85,7 @@
     // UX recommendation is not to show cancel button on such lists.
     protected void onPrepareDialogBuilder(Builder builder) {
         super.onPrepareDialogBuilder(builder);
+        builder.getContext().setTheme(R.style.ContactsAlertDialogTheme);
         builder.setNegativeButton(null, null);
     }
 }
diff --git a/src/com/android/contacts/preference/PhoneticNameDisplayPreference.java b/src/com/android/contacts/preference/PhoneticNameDisplayPreference.java
index 42bbcc3..692d1c6 100644
--- a/src/com/android/contacts/preference/PhoneticNameDisplayPreference.java
+++ b/src/com/android/contacts/preference/PhoneticNameDisplayPreference.java
@@ -88,6 +88,7 @@
     @Override
     protected void onPrepareDialogBuilder(Builder builder) {
         super.onPrepareDialogBuilder(builder);
+        builder.getContext().setTheme(R.style.ContactsAlertDialogTheme);
         builder.setNegativeButton(null, null);
     }
 }
diff --git a/src/com/android/contacts/preference/SortOrderPreference.java b/src/com/android/contacts/preference/SortOrderPreference.java
index 3870231..08d779b 100644
--- a/src/com/android/contacts/preference/SortOrderPreference.java
+++ b/src/com/android/contacts/preference/SortOrderPreference.java
@@ -85,6 +85,7 @@
     // UX recommendation is not to show cancel button on such lists.
     protected void onPrepareDialogBuilder(Builder builder) {
         super.onPrepareDialogBuilder(builder);
+        builder.getContext().setTheme(R.style.ContactsAlertDialogTheme);
         builder.setNegativeButton(null, null);
     }
 }
diff --git a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
index d462a0e..6f5e52d 100644
--- a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
+++ b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
@@ -465,7 +465,7 @@
                 ViewGroup.LayoutParams.MATCH_PARENT, mDividerLineHeightPixels);
         // The separator is aligned with the text in the entry. This is offset by a default
         // margin. If there is an icon present, the icon's width and margin are added
-        int marginStart = res.getDimensionPixelSize(
+        /*int marginStart = res.getDimensionPixelSize(
                 R.dimen.expanding_entry_card_item_padding_start);
         ImageView entryIcon = (ImageView) entry.findViewById(R.id.icon);
         if (entryIcon.getVisibility() == View.VISIBLE) {
@@ -474,7 +474,7 @@
                     res.getDimensionPixelSize(R.dimen.expanding_entry_card_item_image_spacing);
             marginStart += imageWidthAndMargin;
         }
-        layoutParams.setMarginStart(marginStart);
+        layoutParams.setMarginStart(marginStart);*/
         separator.setLayoutParams(layoutParams);
         return separator;
     }
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 35fc2cc..f6e806f 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -40,6 +40,7 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Color;
+import android.graphics.Outline;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffColorFilter;
 import android.graphics.drawable.BitmapDrawable;
@@ -90,6 +91,7 @@
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.View.OnCreateContextMenuListener;
+import android.view.ViewOutlineProvider;
 import android.view.WindowManager;
 import android.widget.Toast;
 import android.widget.Toolbar;
@@ -472,6 +474,26 @@
         }
     };
 
+    private static class QuickContactHeaderViewOutline extends ViewOutlineProvider {
+        public int mRadius;
+        public boolean mBottomOnly;
+
+        public QuickContactHeaderViewOutline(int radius, boolean bottomOnly) {
+            mRadius = radius;
+            mBottomOnly = bottomOnly;
+        }
+        @Override
+        public void getOutline(View view, Outline outline) {
+            if (mBottomOnly) {
+                outline.setRoundRect(0, 0 - mRadius, view.getWidth(), view.getHeight(), mRadius);
+            } else {
+                outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), mRadius);
+            }
+        }
+    }
+    private QuickContactHeaderViewOutline mOutlineProviderFull;
+    private QuickContactHeaderViewOutline mOutlineProviderBottom;
+
     @Override
     public boolean onContextItemSelected(MenuItem item) {
         EntryContextMenuInfo menuInfo;
@@ -683,6 +705,11 @@
         mAboutCard.setOnCreateContextMenuListener(mEntryContextMenuListener);
 
         mPhotoView = (QuickContactImageView) findViewById(R.id.photo);
+        mOutlineProviderFull = new QuickContactHeaderViewOutline(getResources().getDimensionPixelSize(R.dimen.quickcontact_edge_radius), false);
+        mOutlineProviderBottom = new QuickContactHeaderViewOutline(getResources().getDimensionPixelSize(R.dimen.quickcontact_edge_radius), true);
+        mPhotoView.setClipToOutline(true);
+        mPhotoView.setOutlineProvider(mOutlineProviderFull);
+
         final View transparentView = findViewById(R.id.transparent_view);
         if (mScroller != null) {
             transparentView.setOnClickListener(new OnClickListener() {
@@ -692,7 +719,7 @@
                 }
             });
         }
-
+    
         // Allow a shadow to be shown under the toolbar.
         ViewUtil.addRectangularOutlineProvider(findViewById(R.id.toolbar_parent), getResources());
 
@@ -1547,7 +1574,7 @@
                 phoneContentDescription = com.android.contacts.util.ContactDisplayUtils
                         .getTelephoneTtsSpannable(primaryContentDescription.toString(), header);
                 iconResourceId = R.drawable.quantum_ic_phone_vd_theme_24;
-                icon = res.getDrawable(iconResourceId);
+                icon = context.getDrawable(iconResourceId);
                 if (PhoneCapabilityTester.isPhone(context)) {
                     intent = CallUtil.getCallIntent(phone.getNumber());
                     intent.putExtra(EXTRA_ACTION_TYPE, ActionType.CALL);
@@ -1556,7 +1583,7 @@
                         Uri.fromParts(ContactsUtils.SCHEME_SMSTO, phone.getNumber(), null));
                 alternateIntent.putExtra(EXTRA_ACTION_TYPE, ActionType.SMS);
 
-                alternateIcon = res.getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
+                alternateIcon = context.getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
                 alternateContentDescription.append(res.getString(R.string.sms_custom, header));
                 smsContentDescription = com.android.contacts.util.ContactDisplayUtils
                         .getTelephoneTtsSpannable(alternateContentDescription.toString(), header);
@@ -1570,7 +1597,7 @@
                 boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
 
                 if (CallUtil.isCallWithSubjectSupported(context)) {
-                    thirdIcon = res.getDrawable(R.drawable.quantum_ic_perm_phone_msg_vd_theme_24);
+                    thirdIcon = context.getDrawable(R.drawable.quantum_ic_perm_phone_msg_vd_theme_24);
                     thirdAction = Entry.ACTION_CALL_WITH_SUBJECT;
                     thirdContentDescription =
                             res.getString(R.string.call_with_a_note);
@@ -1592,7 +1619,7 @@
                     thirdExtras.putString(CallSubjectDialog.ARG_NUMBER_LABEL,
                             phoneLabel);
                 } else if (isVideoEnabled && (!isPresenceEnabled || isPresent)) {
-                    thirdIcon = res.getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+                    thirdIcon = context.getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
                     thirdAction = Entry.ACTION_INTENT;
                     thirdIntent = CallUtil.getVideoCallIntent(phone.getNumber(),
                             CALL_ORIGIN_QUICK_CONTACTS_ACTIVITY);
@@ -1601,7 +1628,7 @@
                             res.getString(R.string.description_video_call);
                 } else if (CallUtil.isTachyonEnabled(context)
                         && ((PhoneDataItem) dataItem).isTachyonReachable()) {
-                    thirdIcon = res.getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+                    thirdIcon = context.getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
                     thirdAction = Entry.ACTION_INTENT;
                     thirdIntent = new Intent(TACHYON_CALL_ACTION);
                     thirdIntent.setData(
@@ -1629,7 +1656,7 @@
                 }
                 primaryContentDescription.append(header);
                 iconResourceId = R.drawable.quantum_ic_email_vd_theme_24;
-                icon = res.getDrawable(iconResourceId);
+                icon = context.getDrawable(iconResourceId);
             }
         } else if (dataItem instanceof StructuredPostalDataItem) {
             StructuredPostalDataItem postal = (StructuredPostalDataItem) dataItem;
@@ -1651,11 +1678,11 @@
                 alternateIntent =
                         StructuredPostalUtils.getViewPostalAddressDirectionsIntent(postalAddress);
                 alternateIntent.putExtra(EXTRA_ACTION_TYPE, ActionType.DIRECTIONS);
-                alternateIcon = res.getDrawable(R.drawable.quantum_ic_directions_vd_theme_24);
+                alternateIcon = context.getDrawable(R.drawable.quantum_ic_directions_vd_theme_24);
                 alternateContentDescription.append(res.getString(
                         R.string.content_description_directions)).append(" ").append(header);
                 iconResourceId = R.drawable.quantum_ic_place_vd_theme_24;
-                icon = res.getDrawable(iconResourceId);
+                icon = context.getDrawable(iconResourceId);
             }
         } else if (dataItem instanceof SipAddressDataItem) {
             final SipAddressDataItem sip = (SipAddressDataItem) dataItem;
@@ -1679,7 +1706,7 @@
                 }
                 primaryContentDescription.append(header);
                 iconResourceId = R.drawable.quantum_ic_dialer_sip_vd_theme_24;
-                icon = res.getDrawable(iconResourceId);
+                icon = context.getDrawable(iconResourceId);
             }
         } else if (dataItem instanceof StructuredNameDataItem) {
             // If the name is already set and this is not the super primary value then leave the
@@ -1715,8 +1742,8 @@
                     // If a secondDataItem is available, use it to build an entry with
                     // alternate actions
                     if (secondDataItem != null) {
-                        icon = res.getDrawable(R.drawable.quantum_ic_hangout_vd_theme_24);
-                        alternateIcon = res.getDrawable(
+                        icon = context.getDrawable(R.drawable.quantum_ic_hangout_vd_theme_24);
+                        alternateIcon = context.getDrawable(
                                 R.drawable.quantum_ic_hangout_video_vd_theme_24);
                         final HangoutsDataItemModel itemModel =
                                 new HangoutsDataItemModel(intent, alternateIntent,
@@ -1731,9 +1758,9 @@
                         text = itemModel.text;
                     } else {
                         if (HANGOUTS_DATA_5_VIDEO.equals(intent.getDataString())) {
-                            icon = res.getDrawable(R.drawable.quantum_ic_hangout_video_vd_theme_24);
+                            icon = context.getDrawable(R.drawable.quantum_ic_hangout_video_vd_theme_24);
                         } else {
-                            icon = res.getDrawable(R.drawable.quantum_ic_hangout_vd_theme_24);
+                            icon = context.getDrawable(R.drawable.quantum_ic_hangout_vd_theme_24);
                         }
                     }
                 } else {
@@ -2044,9 +2071,12 @@
         // Only use a custom status bar color if QuickContacts touches the top of the viewport.
         if (mScroller.getScrollNeededToBeFullScreen() <= 0) {
             desiredStatusBarColor = mStatusBarColor;
+            mPhotoView.setOutlineProvider(mOutlineProviderBottom);
         } else {
             desiredStatusBarColor = Color.TRANSPARENT;
+            mPhotoView.setOutlineProvider(mOutlineProviderFull);
         }
+
         // Animate to the new color.
         final ObjectAnimator animation = ObjectAnimator.ofInt(getWindow(), "statusBarColor",
                 getWindow().getStatusBarColor(), desiredStatusBarColor);
diff --git a/src/com/android/contacts/util/AccountSelectionUtil.java b/src/com/android/contacts/util/AccountSelectionUtil.java
index bfe8a08..fe5e9e9 100644
--- a/src/com/android/contacts/util/AccountSelectionUtil.java
+++ b/src/com/android/contacts/util/AccountSelectionUtil.java
@@ -101,7 +101,7 @@
 
         // Wrap our context to inflate list items using correct theme
         final Context dialogContext = new ContextThemeWrapper(
-                activity, android.R.style.Theme_Light);
+                activity, android.R.style.Theme_DeviceDefault);
         final LayoutInflater dialogInflater = (LayoutInflater)dialogContext
                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         final ArrayAdapter<AccountWithDataSet> accountAdapter =
diff --git a/src/com/android/contacts/util/MaterialColorMapUtils.java b/src/com/android/contacts/util/MaterialColorMapUtils.java
index c1616ce..3fb7bbe 100644
--- a/src/com/android/contacts/util/MaterialColorMapUtils.java
+++ b/src/com/android/contacts/util/MaterialColorMapUtils.java
@@ -188,8 +188,8 @@
         final boolean isGroupView = activity instanceof PeopleActivity
                 && ((PeopleActivity) activity).isGroupView();
         return isGroupView
-                ? ContextCompat.getColor(activity, R.color.group_primary_color_dark)
-                : ContextCompat.getColor(activity, R.color.primary_color_dark);
+                ? ContextCompat.getColor(activity, R.color.group_primary_color)
+                : ContextCompat.getColor(activity, R.color.primary_color);
     }
 
     /**
diff --git a/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java b/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
index da2b468..bab2b25 100644
--- a/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
+++ b/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
@@ -185,7 +185,8 @@
             }
         };
 
-        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()
+                , R.style.ContactsAlertDialogTheme);
         ListAdapter selectAccountListAdapter = new SelectAccountListAdapter(
                 builder.getContext(),
                 R.layout.select_account_list_item,
