diff --git a/res/drawable-hdpi/ic_menu_delete.png b/res/drawable-hdpi/ic_menu_delete.png
deleted file mode 100644
index e25b44f..0000000
--- a/res/drawable-hdpi/ic_menu_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_delete.png b/res/drawable-mdpi/ic_menu_delete.png
deleted file mode 100644
index b0517ad..0000000
--- a/res/drawable-mdpi/ic_menu_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_delete.png b/res/drawable-xhdpi/ic_menu_delete.png
deleted file mode 100644
index 33010c6..0000000
--- a/res/drawable-xhdpi/ic_menu_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_delete.png b/res/drawable-xxhdpi/ic_menu_delete.png
deleted file mode 100644
index 6171b5a..0000000
--- a/res/drawable-xxhdpi/ic_menu_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_menu_delete.png b/res/drawable-xxxhdpi/ic_menu_delete.png
deleted file mode 100644
index e380101..0000000
--- a/res/drawable-xxxhdpi/ic_menu_delete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_menu_add.xml b/res/drawable/ic_menu_add.xml
new file mode 100644
index 0000000..ed58072
--- /dev/null
+++ b/res/drawable/ic_menu_add.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_menu_add_white"
+    android:tint="?android:attr/colorAccent" />
diff --git a/res/drawable/ic_menu_delete.xml b/res/drawable/ic_menu_delete.xml
new file mode 100644
index 0000000..1f211c5
--- /dev/null
+++ b/res/drawable/ic_menu_delete.xml
@@ -0,0 +1,24 @@
+<!--
+    Copyright (C) 2015 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="24.0dp"
+        android:height="24.0dp"
+        android:viewportWidth="48.0"
+        android:viewportHeight="48.0">
+    <path
+        android:fillColor="?android:attr/colorAccent"
+        android:pathData="M12.0,38.0c0.0,2.21 1.79,4.0 4.0,4.0l16.0,0.0c2.21,0.0 4.0,-1.79 4.0,-4.0L36.0,14.0L12.0,14.0l0.0,24.0zM38.0,8.0l-7.0,0.0l-2.0,-2.0L19.0,6.0l-2.0,2.0l-7.0,0.0l0.0,4.0l28.0,0.0L38.0,8.0z"/>
+</vector>
diff --git a/res/layout/data_usage_chart.xml b/res/layout/data_usage_chart.xml
index 2f9d962..648c7f8 100644
--- a/res/layout/data_usage_chart.xml
+++ b/res/layout/data_usage_chart.xml
@@ -43,7 +43,7 @@
         android:layout_height="match_parent"
         android:layout_gravity="start|bottom"
         settings:strokeColor="#00000000"
-        settings:fillColor="#ff009688"
+        settings:fillColor="?android:attr/colorAccent"
         settings:fillColorSecondary="#ff80cbc4"
         settings:safeRegion="3dp" />
 
@@ -53,8 +53,8 @@
         android:layout_height="match_parent"
         android:layout_gravity="start|bottom"
         settings:strokeColor="#00000000"
-        settings:fillColor="#ff009688"
-        settings:fillColorSecondary="#ff009688"
+        settings:fillColor="?android:attr/colorAccent"
+        settings:fillColorSecondary="?android:attr/colorAccent"
         settings:safeRegion="3dp" />
 
     <com.android.settings.widget.ChartSweepView
@@ -67,7 +67,7 @@
         settings:neighborMargin="5dip"
         settings:labelSize="60dip"
         settings:labelTemplate="@string/data_usage_sweep_warning"
-        settings:labelColor="#ff37474f"
+        settings:labelColor="?android:attr/textColorSecondary"
         settings:safeRegion="4dp" />
 
     <com.android.settings.widget.ChartSweepView
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 3bcf1ae..3508893 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -59,12 +59,12 @@
     <color name="unlock_pattern_view_regular_color">@android:color/white</color>
     <color name="unlock_pattern_view_error_color">#fff4511e</color>
 
-    <color name="fingerprint_title_area_bg">#ff009688</color>
+    <color name="fingerprint_title_area_bg">?android:attr/colorAccent</color>
     <color name="fingerprint_title_color">#ffffffff</color>
     <color name="fingerprint_message_color">#de000000</color>
-    <color name="fingerprint_progress_ring">#ff009688</color>
+    <color name="fingerprint_progress_ring">?android:attr/colorAccent</color>
     <color name="fingerprint_progress_ring_bg">#20000000</color>
-    <color name="fingerprint_dot_color">#ff009688</color>
+    <color name="fingerprint_dot_color">?android:attr/colorAccent</color>
 
     <color name="running_processes_system_ram">#ff384248</color>
     <color name="running_processes_apps_ram">#ff009587</color>
@@ -76,13 +76,12 @@
     <color name="switch_accent_color">#ff7fcac3</color>
 
     <color name="wifi_divider">#ffe0e0e0</color>
-    <color name="wifi_signal_icon_color">#ff009688</color>
     <color name="sim_noitification">@*android:color/material_deep_teal_500</color>
 
     <color name="warning">#ff5621</color>
     <color name="confirm_device_credential_dark_background">#263238</color>
     <color name="fab_ripple">#1fffffff</color><!-- 12% white -->
-    <color name="fab_shape">#ff009688</color><!-- Teal 500 -->
+    <color name="fab_shape">?android:attr/colorAccent</color>
     <color name="voice_interaction_highlight">#33b5e5</color>
 
     <drawable name="fp_enrollment_header_landscape">#009688</drawable>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 76fc04f..c2285e2 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -93,7 +93,7 @@
         <item name="ic_menu_moreoverflow">@*android:drawable/ic_menu_moreoverflow_holo_dark</item>
         <item name="ic_wps">@drawable/ic_wps_light</item>
         <item name="wifi_signal">@drawable/wifi_signal</item>
-        <item name="wifi_signal_color">@color/wifi_signal_icon_color</item>
+        <item name="wifi_signal_color">?android:attr/colorAccent</item>
         <item name="side_margin">@dimen/settings_side_margin</item>
 
         <!-- Redefine the ActionBar style for contentInsetStart -->
diff --git a/src/com/android/settings/AccountPreference.java b/src/com/android/settings/AccountPreference.java
index 7547721..64685c0 100644
--- a/src/com/android/settings/AccountPreference.java
+++ b/src/com/android/settings/AccountPreference.java
@@ -114,7 +114,8 @@
         int res;
         switch (status) {
             case SYNC_ENABLED:
-                res = R.drawable.ic_sync_green_holo;
+            case SYNC_IN_PROGRESS:
+                res = R.drawable.ic_settings_sync;
                 break;
             case SYNC_DISABLED:
                 res = R.drawable.ic_sync_grey_holo;
@@ -122,9 +123,6 @@
             case SYNC_ERROR:
                 res = R.drawable.ic_sync_red_holo;
                 break;
-            case SYNC_IN_PROGRESS:
-                res = R.drawable.ic_sync_green_holo;
-                break;
             default:
                 res = R.drawable.ic_sync_red_holo;
                 Log.e(TAG, "Unknown sync status: " + status);
diff --git a/src/com/android/settings/accounts/AccountSettings.java b/src/com/android/settings/accounts/AccountSettings.java
index ffada53..c010a7b 100644
--- a/src/com/android/settings/accounts/AccountSettings.java
+++ b/src/com/android/settings/accounts/AccountSettings.java
@@ -296,7 +296,7 @@
     private Preference newAddAccountPreference(Context context) {
         Preference preference = new Preference(context);
         preference.setTitle(R.string.add_account_label);
-        preference.setIcon(R.drawable.ic_menu_add_dark);
+        preference.setIcon(R.drawable.ic_menu_add);
         preference.setOnPreferenceClickListener(this);
         preference.setOrder(ORDER_NEXT_TO_LAST);
         return preference;
diff --git a/src/com/android/settings/widget/ChartSweepView.java b/src/com/android/settings/widget/ChartSweepView.java
index 04fc862..e8e24aa 100644
--- a/src/com/android/settings/widget/ChartSweepView.java
+++ b/src/com/android/settings/widget/ChartSweepView.java
@@ -123,14 +123,15 @@
         final TypedArray a = context.obtainStyledAttributes(
                 attrs, R.styleable.ChartSweepView, defStyle, 0);
 
-        setSweepDrawable(a.getDrawable(R.styleable.ChartSweepView_sweepDrawable));
+        final int color = a.getColor(R.styleable.ChartSweepView_labelColor, Color.BLUE);
+        setSweepDrawable(a.getDrawable(R.styleable.ChartSweepView_sweepDrawable), color);
         setFollowAxis(a.getInt(R.styleable.ChartSweepView_followAxis, -1));
         setNeighborMargin(a.getDimensionPixelSize(R.styleable.ChartSweepView_neighborMargin, 0));
         setSafeRegion(a.getDimensionPixelSize(R.styleable.ChartSweepView_safeRegion, 0));
 
         setLabelMinSize(a.getDimensionPixelSize(R.styleable.ChartSweepView_labelSize, 0));
         setLabelTemplate(a.getResourceId(R.styleable.ChartSweepView_labelTemplate, 0));
-        setLabelColor(a.getColor(R.styleable.ChartSweepView_labelColor, Color.BLUE));
+        setLabelColor(color);
 
         // TODO: moved focused state directly into assets
         setBackgroundResource(R.drawable.data_usage_sweep_background);
@@ -213,7 +214,7 @@
         requestLayout();
     }
 
-    public void setSweepDrawable(Drawable sweep) {
+    public void setSweepDrawable(Drawable sweep, int color) {
         if (mSweep != null) {
             mSweep.setCallback(null);
             unscheduleDrawable(mSweep);
@@ -226,6 +227,8 @@
             }
             sweep.setVisible(getVisibility() == VISIBLE, false);
             mSweep = sweep;
+            // Match the text.
+            mSweep.setTint(color);
             sweep.getPadding(mSweepPadding);
         } else {
             mSweep = null;
