diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 1c520b8..e63e7a6 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -777,16 +777,6 @@
     }
 
     /**
-     * Changes the visibility of the contact photo.
-     *
-     * @param isVisible {@code True} if the UI should show the contact photo.
-     */
-    @Override
-    public void setPhotoVisible(boolean isVisible) {
-        mPhoto.setVisibility(isVisible ? View.VISIBLE : View.GONE);
-    }
-
-    /**
      * Changes the visibility of the HD audio icon.
      *
      * @param visible {@code true} if the UI should show the HD audio icon.
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index 3aecca4..139398a 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -253,14 +253,6 @@
             getUi().showHdAudioIndicator(false);
         }
 
-        // Hide/show the contact photo based on the video state.
-        // If the primary call is a video call on hold, still show the contact photo.
-        // If the primary call is an active video call, hide the contact photo.
-        if (mPrimary != null) {
-            getUi().setPhotoVisible(!(mPrimary.isVideoCall(mContext) &&
-                    callState != Call.State.ONHOLD));
-        }
-
         maybeShowManageConferenceCallButton();
 
         final boolean enableEndCallButton = Call.State.isConnectingOrConnected(callState) &&
@@ -797,7 +789,6 @@
         void setPrimaryLabel(String label);
         void setEndCallButtonEnabled(boolean enabled, boolean animate);
         void setCallbackNumber(String number, boolean isEmergencyCalls);
-        void setPhotoVisible(boolean isVisible);
         void setProgressSpinnerVisible(boolean visible);
         void showHdAudioIndicator(boolean visible);
         void showManageConferenceCallButton(boolean visible);
