diff --git a/assets/quantum/res/drawable/quantum_ic_arrow_drop_down_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_arrow_drop_down_vd_theme_24.xml
new file mode 100644
index 0000000..0c1c4f0
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_arrow_drop_down_vd_theme_24.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ 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:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M7,10l5,5 5,-5z"/>
+</vector>
\ No newline at end of file
diff --git a/java/com/android/incallui/NewReturnToCallController.java b/java/com/android/incallui/NewReturnToCallController.java
index 0b637f8..e37b147 100644
--- a/java/com/android/incallui/NewReturnToCallController.java
+++ b/java/com/android/incallui/NewReturnToCallController.java
@@ -275,6 +275,10 @@
     actions.add(
         Action.builder()
             .setIconDrawable(context.getDrawable(speakerButtonInfo.icon))
+            .setSecondaryIconDrawable(
+                speakerButtonInfo.checkable
+                    ? null
+                    : context.getDrawable(R.drawable.quantum_ic_arrow_drop_down_vd_theme_24))
             .setName(context.getText(speakerButtonInfo.label))
             .setCheckable(speakerButtonInfo.checkable)
             .setChecked(speakerButtonInfo.isChecked)
diff --git a/java/com/android/newbubble/NewBubbleInfo.java b/java/com/android/newbubble/NewBubbleInfo.java
index cc7ac7c..d9232a5 100644
--- a/java/com/android/newbubble/NewBubbleInfo.java
+++ b/java/com/android/newbubble/NewBubbleInfo.java
@@ -80,6 +80,9 @@
 
     public abstract Drawable getIconDrawable();
 
+    @Nullable
+    public abstract Drawable getSecondaryIconDrawable();
+
     @NonNull
     public abstract CharSequence getName();
 
@@ -100,7 +103,8 @@
           .setChecked(action.isChecked())
           .setCheckable(action.isCheckable())
           .setName(action.getName())
-          .setIconDrawable(action.getIconDrawable());
+          .setIconDrawable(action.getIconDrawable())
+          .setSecondaryIconDrawable(action.getSecondaryIconDrawable());
     }
 
     /** Builder for {@link Action} */
@@ -109,6 +113,8 @@
 
       public abstract Builder setIconDrawable(Drawable iconDrawable);
 
+      public abstract Builder setSecondaryIconDrawable(@Nullable Drawable secondaryIconDrawable);
+
       public abstract Builder setName(@NonNull CharSequence name);
 
       public abstract Builder setIntent(@NonNull PendingIntent intent);
