diff --git a/java/com/android/dialer/voicemail/settings/RecordButton.java b/java/com/android/dialer/voicemail/settings/RecordButton.java
index d626370..ac64cde 100644
--- a/java/com/android/dialer/voicemail/settings/RecordButton.java
+++ b/java/com/android/dialer/voicemail/settings/RecordButton.java
@@ -18,10 +18,12 @@
 
 import android.content.Context;
 import android.graphics.Canvas;
+import android.graphics.Color;
 import android.graphics.Paint;
 import android.graphics.Rect;
 import android.graphics.RectF;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
 import android.support.v4.content.ContextCompat;
 import android.util.AttributeSet;
 import android.widget.Button;
@@ -94,6 +96,8 @@
     recordedDrawable = ContextCompat.getDrawable(getContext(), R.drawable.start_playback_drawable);
     playingDrawable = ContextCompat.getDrawable(getContext(), R.drawable.stop_playback_drawable);
 
+    fixQuantumIconTint(Color.WHITE);
+
     mainTrackPaint = getBasePaint(R.color.dialer_call_green);
     secondaryTrackPaint = getBasePaint(R.color.dialer_call_green);
     secondaryTrackPaint.setAlpha(secondaryTrackAlpha);
@@ -101,6 +105,16 @@
     setState(RecordVoicemailGreetingActivity.RECORD_GREETING_INIT);
   }
 
+  private void fixQuantumIconTint(int color) {
+    Drawable playArrow = ((LayerDrawable) recordedDrawable).findDrawableByLayerId(R.id.play_icon);
+    playArrow.mutate().setTint(color);
+    ((LayerDrawable) recordedDrawable).setDrawableByLayerId(R.id.play_icon, playArrow);
+
+    Drawable micIcon = ((LayerDrawable) readyDrawable).findDrawableByLayerId(R.id.record_icon);
+    micIcon.mutate().setTint(color);
+    ((LayerDrawable) readyDrawable).setDrawableByLayerId(R.id.record_icon, micIcon);
+  }
+
   /** Returns Paint with base attributes for drawing the main and secondary tracks */
   private Paint getBasePaint(int id) {
     Paint paint = new Paint();
diff --git a/java/com/android/dialer/voicemail/settings/res/drawable/start_playback_drawable.xml b/java/com/android/dialer/voicemail/settings/res/drawable/start_playback_drawable.xml
index 2a7ec4a..9791746 100644
--- a/java/com/android/dialer/voicemail/settings/res/drawable/start_playback_drawable.xml
+++ b/java/com/android/dialer/voicemail/settings/res/drawable/start_playback_drawable.xml
@@ -21,6 +21,7 @@
     </shape>
   </item>
   <item
+      android:id="@+id/play_icon"
       android:top="24dp"
       android:bottom="24dp"
       android:left="24dp"
diff --git a/java/com/android/dialer/voicemail/settings/res/drawable/start_recording_drawable.xml b/java/com/android/dialer/voicemail/settings/res/drawable/start_recording_drawable.xml
index 42d27fc..8a4d9e7 100644
--- a/java/com/android/dialer/voicemail/settings/res/drawable/start_recording_drawable.xml
+++ b/java/com/android/dialer/voicemail/settings/res/drawable/start_recording_drawable.xml
@@ -21,6 +21,7 @@
     </shape>
   </item>
   <item
+      android:id="@+id/record_icon"
       android:top="24dp"
       android:bottom="24dp"
       android:left="24dp"
diff --git a/java/com/android/incallui/calllocation/impl/LocationHelper.java b/java/com/android/incallui/calllocation/impl/LocationHelper.java
index 7fbd60d..5c105e4 100644
--- a/java/com/android/incallui/calllocation/impl/LocationHelper.java
+++ b/java/com/android/incallui/calllocation/impl/LocationHelper.java
@@ -49,6 +49,7 @@
   public static final int LOCATION_STATUS_STALE = 2;
   public static final int LOCATION_STATUS_INACCURATE = 3;
   public static final int LOCATION_STATUS_NO_LOCATION = 4;
+  public static final int LOCATION_STATUS_MOCK = 5;
 
   /** Possible return values for {@code checkLocation()} */
   @IntDef({
@@ -56,7 +57,8 @@
     LOCATION_STATUS_OK,
     LOCATION_STATUS_STALE,
     LOCATION_STATUS_INACCURATE,
-    LOCATION_STATUS_NO_LOCATION
+    LOCATION_STATUS_NO_LOCATION,
+    LOCATION_STATUS_MOCK
   })
   @Retention(RetentionPolicy.SOURCE)
   public @interface LocationStatus {}
@@ -118,6 +120,11 @@
       return LOCATION_STATUS_INACCURATE;
     }
 
+    if (location.isFromMockProvider()) {
+      LogUtil.i("LocationHelper.checkLocation", "from mock provider");
+      return LOCATION_STATUS_MOCK;
+    }
+
     return LOCATION_STATUS_OK;
   }
 
