diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item.xml b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
index c9c1a67..794a3eb 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
@@ -45,7 +45,7 @@
       <!-- Primary area containing the contact badge and caller information -->
       <LinearLayout
         android:id="@+id/primary_action_view"
-        android:background="?android:attr/selectableItemBackground"
+        android:background="?android:attr/selectableItemBackgroundBorderless"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:paddingStart="@dimen/call_log_start_margin"
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
index 7f24594..2671d7a 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
@@ -28,10 +28,10 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"/>
 
-  <View
+  <!--<View
     android:layout_width="match_parent"
     android:layout_height="1dp"
-    android:background="@color/dialer_divider_line_color"/>
+    android:background="@color/dialer_divider_line_color"/>-->
 
   <LinearLayout
     android:id="@+id/call_action"
diff --git a/java/com/android/dialer/app/res/values-night/styles.xml b/java/com/android/dialer/app/res/values-night/styles.xml
index 0d02e41..7ca6f24 100644
--- a/java/com/android/dialer/app/res/values-night/styles.xml
+++ b/java/com/android/dialer/app/res/values-night/styles.xml
@@ -46,14 +46,6 @@
     <item name="android:fontFamily">"sans-serif-medium"</item>
   </style>
 
-  <style name="CallLogActionStyle">
-    <item name="android:layout_width">match_parent</item>
-    <item name="android:layout_height">@dimen/call_log_action_height</item>
-    <item name="android:background">@*android:color/primary_device_default_settings</item>
-    <item name="android:orientation">horizontal</item>
-    <item name="android:gravity">center_vertical</item>
-  </style>
-
   <style name="CallLogActionTextStyle" parent="Dialer.TextAppearance.Primary.Ellipsize">
     <item name="android:layout_width">match_parent</item>
     <item name="android:layout_height">wrap_content</item>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
index 3497d2a..0adf917 100644
--- a/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
@@ -33,10 +33,10 @@
         android:layout_weight="1"
         android:background="#00000000"/>
     <!-- Dialpad shadow -->
-    <View
+    <!--<View
         android:layout_width="match_parent"
         android:layout_height="@dimen/shadow_length"
-        android:background="@drawable/shadow_fade_up"/>
+        android:background="@drawable/shadow_fade_up"/>-->
     <include layout="@layout/dialpad_view"/>
     <!-- "Dialpad chooser" UI, shown only when the user brings up the
              Dialer while a call is already in progress.
diff --git a/java/com/android/dialer/dialpadview/theme/res/values-night/styles.xml b/java/com/android/dialer/dialpadview/theme/res/values-night/styles.xml
deleted file mode 100644
index a37be2d..0000000
--- a/java/com/android/dialer/dialpadview/theme/res/values-night/styles.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2018 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>
-  <style name="Dialpad">
-    <item name="dialpad_digits_adjustable_height">@dimen/dialpad_digits_height</item>
-    <item name="dialpad_digits_adjustable_text_size">@dimen/dialpad_digits_text_size</item>
-    <item name="dialpad_key_letters_size_for_dual_alphabets">
-      @dimen/dialpad_key_letters_default_size_for_dual_alphabets
-    </item>
-    <item name="dialpad_key_letters_size_for_single_alphabet">
-      @dimen/dialpad_key_letters_default_size_for_single_alphabet
-    </item>
-    <item name="dialpad_key_numbers_size">@dimen/dialpad_key_numbers_default_size</item>
-    <item name="dialpad_key_number_margin_bottom">
-      @dimen/dialpad_key_number_default_margin_bottom
-    </item>
-    <item name="dialpad_end_key_spacing">@dimen/dialpad_bottom_space_height</item>
-    <item name="dialpad_elevation">0dp</item>
-  </style>
-
-  <style name="Dialpad.Themed">
-    <item name="dialpad_text_color">?android:attr/textColorSecondary</item>
-    <item name="dialpad_text_color_primary">?android:attr/colorPrimary</item>
-    <item name="dialpad_text_color_secondary">?android:attr/textColorSecondary</item>
-    <item name="dialpad_background">@*android:color/primary_device_default_settings</item>
-  </style>
-</resources>
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index 364f5bc..bbb64ae 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -20,6 +20,8 @@
 import android.app.FragmentTransaction;
 import android.content.ActivityNotFoundException;
 import android.content.Intent;
+import android.content.res.TypedArray;
+import android.graphics.Color;
 import android.os.Bundle;
 import android.speech.RecognizerIntent;
 import android.support.annotation.Nullable;
@@ -154,7 +156,7 @@
     fab.hide();
     toolbar.slideUp(animate, fragmentContainer);
     toolbar.expand(animate, Optional.absent(), /* requestFocus */ false);
-    toolbarShadow.setVisibility(View.VISIBLE);
+    //toolbarShadow.setVisibility(View.VISIBLE);
 
     activity.setTitle(R.string.dialpad_activity_title);
 
@@ -181,6 +183,12 @@
     }
     transaction.commit();
 
+    TypedArray a = activity.getTheme().obtainStyledAttributes(R.style.Dialer_ThemeBase_NoActionBar,
+        new int[] {android.R.attr.colorBackgroundFloating});
+    int bgColor = a.getColor(0, Color.TRANSPARENT);
+    a.recycle();
+    activity.getWindow().setNavigationBarColor(bgColor);
+    
     notifyListenersOnSearchOpen();
   }
 
@@ -219,6 +227,7 @@
     toolbar.slideDown(animate, fragmentContainer);
     toolbar.transferQueryFromDialpad(dialpadFragment.getQuery());
     activity.setTitle(R.string.main_activity_label);
+    activity.getWindow().setNavigationBarColor(Color.TRANSPARENT);
 
     dialpadFragment.setAnimate(animate);
     dialpadFragment.slideDown(
@@ -409,7 +418,7 @@
     fab.hide();
     toolbar.expand(/* animate=*/ true, query, /* requestFocus */ true);
     toolbar.showKeyboard();
-    toolbarShadow.setVisibility(View.VISIBLE);
+    //toolbarShadow.setVisibility(View.VISIBLE);
     hideBottomNav();
 
     FragmentTransaction transaction = activity.getFragmentManager().beginTransaction();
diff --git a/java/com/android/dialer/main/impl/res/values-night-v27/styles.xml b/java/com/android/dialer/main/impl/res/values-night-v27/styles.xml
deleted file mode 100644
index 36b1e55..0000000
--- a/java/com/android/dialer/main/impl/res/values-night-v27/styles.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2018 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>
-
-  <!-- Used on sdk 27 and above -->
-  <!-- TODO(a bug): refactor into dialer/theme -->
-  <style name="MainActivityTheme" parent="MainActivityThemeBase">
-    <item name="android:windowLightStatusBar">false</item>
-    <item name="android:windowLightNavigationBar">false</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-
-  </style>
-
-  <!-- Used on sdk 27 and above -->
-  <!-- TODO(a bug): refactor into dialer/theme -->
-  <style name="MainActivityTheme.Dark" parent="MainActivityThemeBase.Dark">
-    <item name="android:windowLightStatusBar">false</item>
-    <item name="android:windowLightNavigationBar">false</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-  </style>
-</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/main/impl/res/values-night-v31/styles.xml b/java/com/android/dialer/main/impl/res/values-night-v31/styles.xml
index 5c4ab1d..cb0ddf9 100644
--- a/java/com/android/dialer/main/impl/res/values-night-v31/styles.xml
+++ b/java/com/android/dialer/main/impl/res/values-night-v31/styles.xml
@@ -15,60 +15,9 @@
   ~ limitations under the License
   -->
 <resources>
-  <style name="Dialer.ThemeBase.ActionBar">
-    <item name="android:windowLightStatusBar">false</item>
-    <item name="android:windowLightNavigationBar">false</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-    
-    <!-- These are used to style all actionbars in Dialer. These aren't needed in Dialer.ThemeBase.NoActionBar -->
-    <item name="actionBarStyle">@style/DialerActionBarBaseStyle</item>
-    <item name="actionBarSize">@dimen/action_bar_height</item>
-
-    <!-- Pulled from Theme.AppCompat.Light.DarkActionbar-->
-    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Dark</item>
-    <item name="actionBarWidgetTheme">@null</item>
-    <item name="actionBarTheme">@style/DialerActionBarBaseTheme</item>
-    <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
+  <style name="MainActivityTheme" parent="MainActivityThemeBase">
   </style>
-  
-  <style name="Dialer.ThemeBase">
-    <item name="android:windowLightStatusBar">false</item>
-    <item name="android:windowLightNavigationBar">false</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-    
-    <!-- These values should be used to color all backgrounds. -->
-    <item name="android:colorBackground">@color/dialer_background_color</item>
-    <item name="android:colorBackgroundFloating">@color/dialer_background_floating_color</item>
 
-    <!-- These values should be used to set text color. -->
-    <item name="android:textColorPrimary">@color/dialer_primary_text_color</item>
-    <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item>
-    <item name="android:textColorPrimaryInverse">@color/google_grey_300</item>
-    <item name="android:textColorSecondaryInverse">@color/google_grey_400</item>
-    <item name="android:textColorHint">@color/google_grey_600</item>
-
-    <!-- These will be automatically used to color most Appcompat/Material widgets. -->
-    <item name="android:colorPrimary">@color/dialer_theme_color</item>
-    <item name="colorPrimary">@color/dialer_theme_color</item>
-    <item name="android:colorPrimaryDark">@color/dialer_theme_color</item>
-    <item name="colorPrimaryDark">@color/dialer_theme_color</item>
-    <item name="android:colorAccent">@color/dialer_secondary_color</item>
-    <item name="colorAccent">@color/dialer_secondary_color</item>
-
-    <!-- Used to automatically style check/selected checkbox, switches and radio buttons -->
-    <item name="colorControlActivated">?android:attr/colorPrimary</item>
-
-    <!-- Dialer specific attributes. -->
-    <item name="colorIcon">@color/google_grey_700</item>
-    <item name="colorIconSecondary">@color/google_grey_400</item>
-    <item name="colorTextOnUnthemedDarkBackground">@android:color/white</item>
-    <item name="colorIconOnUnthemedDarkBackground">@android:color/white</item>
-    <item name="colorMobileTerminatingChatText">@color/google_grey_900</item>
-    <item name="colorMobileTerminatingChatBackground">@color/google_grey_100</item>
-    <item name="colorMobileOriginatingChatText">@color/google_blue_900</item>
-    <item name="colorMobileOriginatingChatBackground">@color/google_blue_100</item>
-    <item name="colorPrimary20pct">@color/dialer_theme_color_20pct</item>
+  <style name="MainActivityTheme.Dark" parent="MainActivityThemeBase.Dark">
   </style>
 </resources>
diff --git a/java/com/android/dialer/main/impl/res/values-v27/styles.xml b/java/com/android/dialer/main/impl/res/values-v27/styles.xml
index 7fd220f..b0e9c7c 100644
--- a/java/com/android/dialer/main/impl/res/values-v27/styles.xml
+++ b/java/com/android/dialer/main/impl/res/values-v27/styles.xml
@@ -19,19 +19,18 @@
   <!-- Used on sdk 27 and above -->
   <!-- TODO(a bug): refactor into dialer/theme -->
   <style name="MainActivityTheme" parent="MainActivityThemeBase">
-    <item name="android:windowLightStatusBar">true</item>
+    <!-- Used to change the navigation bar color -->
     <item name="android:windowLightNavigationBar">true</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-
+    <item name="android:navigationBarColor">?android:attr/colorBackgroundFloating</item>
+    <item name="android:navigationBarDividerColor">#E0E0E0</item>
   </style>
 
   <!-- Used on sdk 27 and above -->
   <!-- TODO(a bug): refactor into dialer/theme -->
   <style name="MainActivityTheme.Dark" parent="MainActivityThemeBase.Dark">
-    <item name="android:windowLightStatusBar">true</item>
+    <!-- Used to change the navigation bar color -->
     <item name="android:windowLightNavigationBar">true</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
+    <item name="android:navigationBarColor">?android:attr/colorBackgroundFloating</item>
+    <item name="android:navigationBarDividerColor">#E0E0E0</item>
   </style>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-v31/styles.xml b/java/com/android/dialer/main/impl/res/values-v31/styles.xml
index 36218c0..cb0ddf9 100644
--- a/java/com/android/dialer/main/impl/res/values-v31/styles.xml
+++ b/java/com/android/dialer/main/impl/res/values-v31/styles.xml
@@ -15,59 +15,9 @@
   ~ limitations under the License
   -->
 <resources>
-  <style name="Dialer.ThemeBase.ActionBar">
-    <item name="android:windowLightStatusBar">true</item>
-    <item name="android:windowLightNavigationBar">true</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-    <!-- These are used to style all actionbars in Dialer. These aren't needed in Dialer.ThemeBase.NoActionBar -->
-    <item name="actionBarStyle">@style/DialerActionBarBaseStyle</item>
-    <item name="actionBarSize">@dimen/action_bar_height</item>
-
-    <!-- Pulled from Theme.AppCompat.Light.DarkActionbar-->
-    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
-    <item name="actionBarWidgetTheme">@null</item>
-    <item name="actionBarTheme">@style/DialerActionBarBaseTheme</item>
-    <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
+  <style name="MainActivityTheme" parent="MainActivityThemeBase">
   </style>
-  
-  <style name="Dialer.ThemeBase">
-    <item name="android:windowLightStatusBar">true</item>
-    <item name="android:windowLightNavigationBar">true</item>
-    <item name="android:statusBarColor">@android:color/transparent</item>
-    <item name="android:navigationBarColor">@android:color/transparent</item>
-    
-    <!-- These values should be used to color all backgrounds. -->
-    <item name="android:colorBackground">@color/dialer_background_color</item>
-    <item name="android:colorBackgroundFloating">@color/dialer_background_floating_color</item>
 
-    <!-- These values should be used to set text color. -->
-    <item name="android:textColorPrimary">@color/dialer_primary_text_color</item>
-    <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item>
-    <item name="android:textColorPrimaryInverse">@color/google_grey_300</item>
-    <item name="android:textColorSecondaryInverse">@color/google_grey_400</item>
-    <item name="android:textColorHint">@color/google_grey_600</item>
-
-    <!-- These will be automatically used to color most Appcompat/Material widgets. -->
-    <item name="android:colorPrimary">@color/dialer_theme_color</item>
-    <item name="colorPrimary">@color/dialer_theme_color</item>
-    <item name="android:colorPrimaryDark">@color/dialer_theme_color</item>
-    <item name="colorPrimaryDark">@color/dialer_theme_color</item>
-    <item name="android:colorAccent">@color/dialer_secondary_color</item>
-    <item name="colorAccent">@color/dialer_secondary_color</item>
-
-    <!-- Used to automatically style check/selected checkbox, switches and radio buttons -->
-    <item name="colorControlActivated">?android:attr/colorPrimary</item>
-
-    <!-- Dialer specific attributes. -->
-    <item name="colorIcon">@color/google_grey_700</item>
-    <item name="colorIconSecondary">@color/google_grey_400</item>
-    <item name="colorTextOnUnthemedDarkBackground">@android:color/white</item>
-    <item name="colorIconOnUnthemedDarkBackground">@android:color/white</item>
-    <item name="colorMobileTerminatingChatText">@color/google_grey_900</item>
-    <item name="colorMobileTerminatingChatBackground">@color/google_grey_100</item>
-    <item name="colorMobileOriginatingChatText">@color/google_blue_900</item>
-    <item name="colorMobileOriginatingChatBackground">@color/google_blue_100</item>
-    <item name="colorPrimary20pct">@color/dialer_theme_color_20pct</item>
+  <style name="MainActivityTheme.Dark" parent="MainActivityThemeBase.Dark">
   </style>
 </resources>
diff --git a/java/com/android/dialer/main/impl/toolbar/SearchBarView.java b/java/com/android/dialer/main/impl/toolbar/SearchBarView.java
index 60b0673..fb59e54 100644
--- a/java/com/android/dialer/main/impl/toolbar/SearchBarView.java
+++ b/java/com/android/dialer/main/impl/toolbar/SearchBarView.java
@@ -16,10 +16,12 @@
 
 package com.android.dialer.main.impl.toolbar;
 
+import android.app.Activity;
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ValueAnimator;
 import android.content.Context;
+import android.graphics.Color;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.annotation.StringRes;
@@ -143,6 +145,9 @@
               searchBox.requestFocus();
             }
             setBackgroundResource(R.drawable.search_bar_background);
+            if (getContext() instanceof Activity) {
+              ((Activity )getContext()).getWindow().setStatusBarColor(getContext().getResources().getColor(R.color.search_bar_background_color));
+            }
           }
         });
     animator.start();
@@ -175,6 +180,9 @@
             searchBox.setText("");
             searchBoxExpanded.setVisibility(INVISIBLE);
             setBackgroundResource(R.drawable.search_bar_background_rounded_corners);
+            if (getContext() instanceof Activity) {
+              ((Activity )getContext()).getWindow().setStatusBarColor(Color.TRANSPARENT);
+            }
           }
         });
     animator.start();
diff --git a/java/com/android/dialer/main/impl/toolbar/res/drawable-v31/search_bar_background.xml b/java/com/android/dialer/main/impl/toolbar/res/drawable-v31/search_bar_background.xml
index 8bc21c4..9f547da 100644
--- a/java/com/android/dialer/main/impl/toolbar/res/drawable-v31/search_bar_background.xml
+++ b/java/com/android/dialer/main/impl/toolbar/res/drawable-v31/search_bar_background.xml
@@ -16,5 +16,5 @@
   -->
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
-  <solid android:color="?android:attr/colorBackground"/>
+  <solid android:color="@color/search_bar_background_color"/>
 </shape>
diff --git a/java/com/android/dialer/main/impl/res/values-night-v31/colors.xml b/java/com/android/dialer/theme/base/res/values-night-v31/colors.xml
similarity index 80%
rename from java/com/android/dialer/main/impl/res/values-night-v31/colors.xml
rename to java/com/android/dialer/theme/base/res/values-night-v31/colors.xml
index eab68a0..b13410d 100644
--- a/java/com/android/dialer/main/impl/res/values-night-v31/colors.xml
+++ b/java/com/android/dialer/theme/base/res/values-night-v31/colors.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <color name="colorPrimary">@android:color/system_accent1_100</color>
+    <color name="colorPrimary">@android:color/system_accent1_200</color>
     <color name="dialer_theme_color">@color/colorPrimary</color>
-    <color name="dialer_theme_color_20pct">@android:color/system_accent1_800</color>
+    <color name="dialer_theme_color_20pct">@color/dialer_theme_color</color>
     <color name="dialer_theme_color_dark">@color/colorPrimary</color>
     <color name="dialer_secondary_color">@color/colorPrimary</color>
     <color name="dialer_background_color">@android:color/system_neutral1_900</color>
diff --git a/java/com/android/dialer/theme/base/res/values-night-v31/styles.xml b/java/com/android/dialer/theme/base/res/values-night-v31/styles.xml
index be8ee71..8130c88 100644
--- a/java/com/android/dialer/theme/base/res/values-night-v31/styles.xml
+++ b/java/com/android/dialer/theme/base/res/values-night-v31/styles.xml
@@ -32,9 +32,73 @@
     <item name="android:textColorSecondary">@color/settings_text_color_secondary</item>
     <item name="android:windowBackground">?android:attr/colorBackground</item>
     <item name="android:colorAccent">?android:attr/colorPrimary</item>
+  </style>
+  
+    <style name="Dialer.ThemeBase.ActionBar">
     <item name="android:windowLightStatusBar">false</item>
     <item name="android:windowLightNavigationBar">false</item>
     <item name="android:statusBarColor">@android:color/transparent</item>
     <item name="android:navigationBarColor">@android:color/transparent</item>
+    
+    <!-- These are used to style all actionbars in Dialer. These aren't needed in Dialer.ThemeBase.NoActionBar -->
+    <item name="actionBarStyle">@style/DialerActionBarBaseStyle</item>
+    <item name="actionBarSize">@dimen/action_bar_height</item>
+
+    <!-- Pulled from Theme.AppCompat.Light.DarkActionbar-->
+    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Dark</item>
+    <item name="actionBarWidgetTheme">@null</item>
+    <item name="actionBarTheme">@style/DialerActionBarBaseTheme</item>
+    <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
+  </style>
+
+  <style name="Dialer.ThemeBase.NoActionBar">
+    <item name="android:windowLightStatusBar">false</item>
+    <item name="android:windowLightNavigationBar">false</item>
+    <item name="android:statusBarColor">@android:color/transparent</item>
+    <item name="android:navigationBarColor">@android:color/transparent</item>
+    <!-- Copied from Theme.AppCompat.Light.NoActionBar. We can remove this and update the Dialer
+        base style once none of our activities depend on ActionBar anymore. -->
+    <item name="windowActionBar">false</item>
+    <item name="windowNoTitle">true</item>
+  </style>
+  
+  <style name="Dialer.ThemeBase">
+    <item name="android:windowLightStatusBar">false</item>
+    <item name="android:windowLightNavigationBar">false</item>
+    <item name="android:statusBarColor">@android:color/transparent</item>
+    <item name="android:navigationBarColor">@android:color/transparent</item>
+    
+    <!-- These values should be used to color all backgrounds. -->
+    <item name="android:colorBackground">@color/dialer_background_color</item>
+    <item name="android:colorBackgroundFloating">@color/dialer_background_floating_color</item>
+
+    <!-- These values should be used to set text color. -->
+    <item name="android:textColorPrimary">@color/dialer_primary_text_color</item>
+    <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item>
+    <item name="android:textColorPrimaryInverse">@color/google_grey_300</item>
+    <item name="android:textColorSecondaryInverse">@color/google_grey_400</item>
+    <item name="android:textColorHint">@color/google_grey_600</item>
+
+    <!-- These will be automatically used to color most Appcompat/Material widgets. -->
+    <item name="android:colorPrimary">@color/dialer_theme_color</item>
+    <item name="colorPrimary">@color/dialer_theme_color</item>
+    <item name="android:colorPrimaryDark">@color/dialer_theme_color</item>
+    <item name="colorPrimaryDark">@color/dialer_theme_color</item>
+    <item name="android:colorAccent">@color/dialer_secondary_color</item>
+    <item name="colorAccent">@color/dialer_secondary_color</item>
+
+    <!-- Used to automatically style check/selected checkbox, switches and radio buttons -->
+    <item name="colorControlActivated">?android:attr/colorPrimary</item>
+
+    <!-- Dialer specific attributes. -->
+    <item name="colorIcon">@color/google_grey_700</item>
+    <item name="colorIconSecondary">@color/google_grey_400</item>
+    <item name="colorTextOnUnthemedDarkBackground">@android:color/white</item>
+    <item name="colorIconOnUnthemedDarkBackground">@android:color/white</item>
+    <item name="colorMobileTerminatingChatText">@color/google_grey_900</item>
+    <item name="colorMobileTerminatingChatBackground">@color/google_grey_100</item>
+    <item name="colorMobileOriginatingChatText">@color/google_blue_900</item>
+    <item name="colorMobileOriginatingChatBackground">@color/google_blue_100</item>
+    <item name="colorPrimary20pct">@color/dialer_theme_color_20pct</item>
   </style>
 </resources>
diff --git a/java/com/android/dialer/main/impl/res/values-v31/colors.xml b/java/com/android/dialer/theme/base/res/values-v31/colors.xml
similarity index 88%
rename from java/com/android/dialer/main/impl/res/values-v31/colors.xml
rename to java/com/android/dialer/theme/base/res/values-v31/colors.xml
index ee9dd3c..dd699a9 100644
--- a/java/com/android/dialer/main/impl/res/values-v31/colors.xml
+++ b/java/com/android/dialer/theme/base/res/values-v31/colors.xml
@@ -2,7 +2,7 @@
 <resources>
     <color name="colorPrimary">@android:color/system_accent1_600</color>
     <color name="dialer_theme_color">@color/colorPrimary</color>
-    <color name="dialer_theme_color_20pct">@android:color/system_accent1_200</color>
+    <color name="dialer_theme_color_20pct">@color/dialer_theme_color</color>
     <color name="dialer_theme_color_dark">@color/colorPrimary</color>
     <color name="dialer_secondary_color">@color/colorPrimary</color>
     <color name="dialer_background_color">@android:color/system_neutral1_10</color>
diff --git a/java/com/android/dialer/theme/base/res/values-v31/styles.xml b/java/com/android/dialer/theme/base/res/values-v31/styles.xml
index 861b133..b811508 100644
--- a/java/com/android/dialer/theme/base/res/values-v31/styles.xml
+++ b/java/com/android/dialer/theme/base/res/values-v31/styles.xml
@@ -32,9 +32,72 @@
     <item name="android:textColorSecondary">@color/settings_text_color_secondary</item>
     <item name="android:windowBackground">?android:attr/colorBackground</item>
     <item name="android:colorAccent">?android:attr/colorPrimary</item>
+  </style>
+  
+    <style name="Dialer.ThemeBase.ActionBar">
     <item name="android:windowLightStatusBar">true</item>
     <item name="android:windowLightNavigationBar">true</item>
     <item name="android:statusBarColor">@android:color/transparent</item>
     <item name="android:navigationBarColor">@android:color/transparent</item>
+    <!-- These are used to style all actionbars in Dialer. These aren't needed in Dialer.ThemeBase.NoActionBar -->
+    <item name="actionBarStyle">@style/DialerActionBarBaseStyle</item>
+    <item name="actionBarSize">@dimen/action_bar_height</item>
+
+    <!-- Pulled from Theme.AppCompat.Light.DarkActionbar-->
+    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
+    <item name="actionBarWidgetTheme">@null</item>
+    <item name="actionBarTheme">@style/DialerActionBarBaseTheme</item>
+    <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
+  </style>
+  
+  <style name="Dialer.ThemeBase.NoActionBar">
+    <item name="android:windowLightStatusBar">true</item>
+    <item name="android:windowLightNavigationBar">true</item>
+    <item name="android:statusBarColor">@android:color/transparent</item>
+    <item name="android:navigationBarColor">@android:color/transparent</item>
+    <!-- Copied from Theme.AppCompat.Light.NoActionBar. We can remove this and update the Dialer
+        base style once none of our activities depend on ActionBar anymore. -->
+    <item name="windowActionBar">false</item>
+    <item name="windowNoTitle">true</item>
+  </style>
+  
+  <style name="Dialer.ThemeBase">
+    <item name="android:windowLightStatusBar">true</item>
+    <item name="android:windowLightNavigationBar">true</item>
+    <item name="android:statusBarColor">@android:color/transparent</item>
+    <item name="android:navigationBarColor">@android:color/transparent</item>
+    
+    <!-- These values should be used to color all backgrounds. -->
+    <item name="android:colorBackground">@color/dialer_background_color</item>
+    <item name="android:colorBackgroundFloating">@color/dialer_background_floating_color</item>
+
+    <!-- These values should be used to set text color. -->
+    <item name="android:textColorPrimary">@color/dialer_primary_text_color</item>
+    <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item>
+    <item name="android:textColorPrimaryInverse">@color/google_grey_300</item>
+    <item name="android:textColorSecondaryInverse">@color/google_grey_400</item>
+    <item name="android:textColorHint">@color/google_grey_600</item>
+
+    <!-- These will be automatically used to color most Appcompat/Material widgets. -->
+    <item name="android:colorPrimary">@color/dialer_theme_color</item>
+    <item name="colorPrimary">@color/dialer_theme_color</item>
+    <item name="android:colorPrimaryDark">@color/dialer_theme_color</item>
+    <item name="colorPrimaryDark">@color/dialer_theme_color</item>
+    <item name="android:colorAccent">@color/dialer_secondary_color</item>
+    <item name="colorAccent">@color/dialer_secondary_color</item>
+
+    <!-- Used to automatically style check/selected checkbox, switches and radio buttons -->
+    <item name="colorControlActivated">?android:attr/colorPrimary</item>
+
+    <!-- Dialer specific attributes. -->
+    <item name="colorIcon">@color/google_grey_700</item>
+    <item name="colorIconSecondary">@color/google_grey_400</item>
+    <item name="colorTextOnUnthemedDarkBackground">@android:color/white</item>
+    <item name="colorIconOnUnthemedDarkBackground">@android:color/white</item>
+    <item name="colorMobileTerminatingChatText">@color/google_grey_900</item>
+    <item name="colorMobileTerminatingChatBackground">@color/google_grey_100</item>
+    <item name="colorMobileOriginatingChatText">@color/google_blue_900</item>
+    <item name="colorMobileOriginatingChatBackground">@color/google_blue_100</item>
+    <item name="colorPrimary20pct">@color/dialer_theme_color_20pct</item>
   </style>
 </resources>
diff --git a/java/com/android/dialer/theme/common/res/values-night-v31/colors.xml b/java/com/android/dialer/theme/common/res/values-night-v31/colors.xml
new file mode 100644
index 0000000..0cd1105
--- /dev/null
+++ b/java/com/android/dialer/theme/common/res/values-night-v31/colors.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2012 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
+  -->
+<!-- The colors in this file aren't configured at the theme level. -->
+<resources>
+  <color name="dialer_divider_line_color">@android:color/white</color>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/theme/common/res/values-v31/colors.xml b/java/com/android/dialer/theme/common/res/values-v31/colors.xml
new file mode 100644
index 0000000..8ee0a61
--- /dev/null
+++ b/java/com/android/dialer/theme/common/res/values-v31/colors.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2012 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
+  -->
+<!-- The colors in this file aren't configured at the theme level. -->
+<resources>
+  <color name="dialer_divider_line_color">@android:color/black</color>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/widget/DialerToolbar.java b/java/com/android/dialer/widget/DialerToolbar.java
index 40dabe8..82128f6 100644
--- a/java/com/android/dialer/widget/DialerToolbar.java
+++ b/java/com/android/dialer/widget/DialerToolbar.java
@@ -38,8 +38,8 @@
     subtitle = (BidiTextView) findViewById(R.id.subtitle);
 
     setElevation(getResources().getDimensionPixelSize(R.dimen.toolbar_elevation));
-    setBackgroundColor(ThemeComponent.get(context).theme().getColorPrimary());
-    setNavigationIcon(R.drawable.quantum_ic_close_white_24);
+    //setBackgroundColor(ThemeComponent.get(context).theme().getColorPrimary());
+    setNavigationIcon(R.drawable.back_arrow);
     setNavigationContentDescription(R.string.toolbar_close);
     setNavigationOnClickListener(v -> ((Activity) context).finish());
     setPaddingRelative(
diff --git a/java/com/android/dialer/widget/res/drawable/back_arrow.xml b/java/com/android/dialer/widget/res/drawable/back_arrow.xml
new file mode 100644
index 0000000..628543f
--- /dev/null
+++ b/java/com/android/dialer/widget/res/drawable/back_arrow.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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0"
+    android:autoMirrored="true"
+    android:tint="?attr/textColorPrimary">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
+</vector>
diff --git a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
index 3b4d136..9112e15 100755
--- a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
+++ b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
@@ -28,14 +28,14 @@
         android:layout_height="wrap_content"
         android:gravity="top"
         android:textSize="@dimen/toolbar_title_text_size"
-        android:textColor="?android:attr/textColorPrimaryInverse"
+        android:textColor="?android:attr/textColorPrimary"
         style="@style/Dialer.TextAppearance.Header2"/>
 
     <com.android.dialer.widget.BidiTextView
         android:id="@+id/subtitle"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:textColor="?android:attr/textColorPrimaryInverse"
+        android:textColor="?android:attr/textColorPrimary"
         android:visibility="gone"
         style="@style/Dialer.TextAppearance.Secondary.Ellipsize"/>
   </LinearLayout>
diff --git a/java/com/android/dialer/widget/res/values/dimens.xml b/java/com/android/dialer/widget/res/values/dimens.xml
index d29f0fa..f6d758c 100644
--- a/java/com/android/dialer/widget/res/values/dimens.xml
+++ b/java/com/android/dialer/widget/res/values/dimens.xml
@@ -22,9 +22,9 @@
   <dimen name="message_divider_height">1dp</dimen>
   <dimen name="send_container_width">48dp</dimen>
 
-  <dimen name="toolbar_title_text_size">20sp</dimen>
+  <dimen name="toolbar_title_text_size">18sp</dimen>
   <dimen name="toolbar_subtitle_text_size">12sp</dimen>
-  <dimen name="toolbar_elevation">4dp</dimen>
+  <dimen name="toolbar_elevation">0dp</dimen>
   <dimen name="toolbar_end_padding">4dp</dimen>
 
   <!-- Empty List -->
