diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java
index e40792f..fb15d67 100644
--- a/java/com/android/dialer/oem/MotorolaUtils.java
+++ b/java/com/android/dialer/oem/MotorolaUtils.java
@@ -71,10 +71,6 @@
     return isSupportingSprintHdCodec(context);
   }
 
-  public static boolean shouldShowHdIconInNotification(Context context) {
-    return isSupportingSprintHdCodec(context);
-  }
-
   public static boolean shouldShowWifiIconInCallLog(Context context, int features) {
     return (features & Calls.FEATURES_WIFI) == Calls.FEATURES_WIFI
         && isSupportingSprintWifiCall(context);
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 40449a7..5394fc1 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -630,12 +630,6 @@
             == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST
         || call.isVideoCall()) {
       return R.drawable.quantum_ic_videocam_vd_white_24;
-    } else if (call.hasProperty(PROPERTY_HIGH_DEF_AUDIO)
-        && MotorolaUtils.shouldShowHdIconInNotification(context)) {
-      // Normally when a call is ongoing the status bar displays an icon of a phone. This is a
-      // helpful hint for users so they know how to get back to the call. For Sprint HD calls, we
-      // replace this icon with an icon of a phone with a HD badge. This is a carrier requirement.
-      return R.drawable.ic_hd_call;
     } else if (call.hasProperty(Details.PROPERTY_HAS_CDMA_VOICE_PRIVACY)) {
       return R.drawable.quantum_ic_phone_locked_vd_theme_24;
     }
diff --git a/java/com/android/incallui/res/drawable/ic_hd_call.xml b/java/com/android/incallui/res/drawable/ic_hd_call.xml
deleted file mode 100644
index b887d3f..0000000
--- a/java/com/android/incallui/res/drawable/ic_hd_call.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  ~ 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
-  -->
-
-<!-- This is came from Motorola which is requested by Sprint for HD call. -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-  android:height="24dp"
-  android:viewportHeight="24.0"
-  android:viewportWidth="24.0"
-  android:width="24dp">
-
-  <path
-    android:fillColor="#fff"
-    android:pathData="M4.54,12.9A14.83,14.83 0,0 0,11 19.35l2.15,-2.15a1,1 0,0 1,1 -0.23,11.17 11.17,0 0,0 3.5,0.56 1,1 0,0 1,1 1v3.42a1,1 0,0 1,-1 1A16.64,16.64 0,0 1,1 6.25a1,1 0,0 1,1 -1H5.41a1,1 0,0 1,1 1,11.12 11.12,0 0,0 0.56,3.5 1,1 0,0 1,-0.24 1Z"/>
-  <path
-    android:fillColor="#fff"
-    android:pathData="M15.38,12.67H14.22V8.44H10.54v4.23H9.38V3.51h1.15V7.45h3.69V3.51h1.16Z"/>
-  <path
-    android:fillColor="#fff"
-    android:pathData="M17.37,12.67V3.51h2.18a3.15,3.15 0,0 1,2.49 1,4.12 4.12,0 0,1 0.89,2.82V8.87a4,4 0,0 1,-0.9 2.81,3.35 3.35,0 0,1 -2.61,1ZM18.52,4.5v7.18h0.92a2.14,2.14 0,0 0,1.77 -0.7,3.28 3.28,0 0,0 0.57,-2.06V7.3a3.32,3.32 0,0 0,-0.56 -2.12,2.05 2.05,0 0,0 -1.68,-0.68Z"/>
-</vector>
\ No newline at end of file
