Merge tag 'android-15.0.0_r6' of https://android.googlesource.com/platform/packages/apps/Contacts into HEAD

Android 15.0.0 Release 6 (AP4A.241205.013)

Change-Id: Ie322e56339b2b9386cc8c0fe327469b4ecc4e51c

# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ1IssgAKCRDorT+BmrEO
# eGpNAJ9YzB31hY+Fkng6t2P18xhS+MxUpACeIr356Z5imgBxiriH0rXVZ6U+0o0=
# =80JQ
# -----END PGP SIGNATURE-----
# gpg: Signature faite le jeu 05 déc 2024 17:44:02 EST
# gpg:                avec la clef DSA 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Impossible de vérifier la signature : Pas de clef publique
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,