diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index a4479da..d3fd365 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -54,7 +54,6 @@
 import android.view.ViewGroup;
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.preference.ContactsPreferences;
-import com.android.dialer.app.DialtactsActivity;
 import com.android.dialer.app.R;
 import com.android.dialer.app.calllog.CallLogFragment.CallLogFragmentListener;
 import com.android.dialer.app.calllog.CallLogGroupBuilder.GroupCreator;
@@ -395,16 +394,15 @@
             if (viewHolder.callType == CallLog.Calls.MISSED_TYPE) {
               CallLogAsyncTaskUtil.markCallAsRead(activity, viewHolder.callIds);
               if (activityType == ACTIVITY_TYPE_DIALTACTS) {
-                if (v.getContext() instanceof MainActivityPeer.PeerSupplier) {
-                  // This is really bad, but we must do this to prevent a dependency cycle, enforce
-                  // best practices in new code, and avoid refactoring DialtactsActivity.
-                  ((FragmentUtilListener)
-                          ((MainActivityPeer.PeerSupplier) v.getContext()).getPeer())
-                      .getImpl(CallLogFragmentListener.class)
-                      .updateTabUnreadCounts();
-                } else {
-                  ((DialtactsActivity) v.getContext()).updateTabUnreadCounts();
-                }
+                Assert.checkState(
+                    v.getContext() instanceof MainActivityPeer.PeerSupplier,
+                    "%s is not a PeerSupplier",
+                    v.getContext().getClass());
+                // This is really bad, but we must do this to prevent a dependency cycle, enforce
+                // best practices in new code, and avoid refactoring DialtactsActivity.
+                ((FragmentUtilListener) ((MainActivityPeer.PeerSupplier) v.getContext()).getPeer())
+                    .getImpl(CallLogFragmentListener.class)
+                    .updateTabUnreadCounts();
               }
             }
             expandViewHolderActions(viewHolder);
diff --git a/java/com/android/incallui/incall/impl/CheckableLabeledButton.java b/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
index 03e6e37..bfc2781 100644
--- a/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
+++ b/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
@@ -67,8 +67,10 @@
     CharSequence labelText;
     boolean enabled;
 
-    backgroundMore = getResources().getDrawable(R.drawable.incall_button_background_more, null);
-    background = getResources().getDrawable(R.drawable.incall_button_background, null);
+    backgroundMore =
+        getResources().getDrawable(R.drawable.incall_button_background_more, context.getTheme());
+    background =
+        getResources().getDrawable(R.drawable.incall_button_background, context.getTheme());
 
     TypedArray typedArray =
         context.obtainStyledAttributes(attrs, R.styleable.CheckableLabeledButton);
@@ -92,9 +94,11 @@
     iconView.setPadding(iconPadding, iconPadding, iconPadding, iconPadding);
     iconView.setImageDrawable(icon);
     iconView.setImageTintMode(Mode.SRC_IN);
-    iconView.setImageTintList(getResources().getColorStateList(R.color.incall_button_icon, null));
+    iconView.setImageTintList(
+        getResources().getColorStateList(R.color.incall_button_icon, context.getTheme()));
 
-    iconView.setBackground(getResources().getDrawable(R.drawable.incall_button_background, null));
+    iconView.setBackground(
+        getResources().getDrawable(R.drawable.incall_button_background, context.getTheme()));
     iconView.setDuplicateParentStateEnabled(true);
     iconView.setElevation(getResources().getDimension(R.dimen.incall_button_elevation));
     iconView.setStateListAnimator(
diff --git a/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml b/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml
index 68b34c8..000525f 100644
--- a/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml
+++ b/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml
@@ -17,5 +17,5 @@
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:color="?android:attr/colorPrimaryDark" android:state_checked="true"/>
-  <item android:color="?android:attr/colorBackgroundFloating"/>
+  <item android:color="?android:attr/textColorPrimary"/>
 </selector>
