diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index d0762fd..10bf5e6 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -58,7 +58,7 @@
 
 import java.lang.ref.WeakReference;
 
-import static com.android.contacts.common.compat.CallSdkCompat.Details.PROPERTY_WORK_CALL;
+import static com.android.contacts.common.compat.CallSdkCompat.Details.PROPERTY_ENTERPRISE_CALL;
 /**
  * Presenter for the Call Card Fragment.
  * <p>
@@ -427,7 +427,7 @@
 
     private void updatePrimaryCallState() {
         if (getUi() != null && mPrimary != null) {
-            boolean isWorkCall = mPrimary.hasProperty(PROPERTY_WORK_CALL)
+            boolean isWorkCall = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL)
                     || (mPrimaryContactInfo == null ? false
                             : mPrimaryContactInfo.userType == ContactsUtils.USER_TYPE_WORK);
             getUi().setCallState(
@@ -759,7 +759,7 @@
                 .showIncomingVideo(mPrimary.getVideoState(), mPrimary.getState());
 
         // Call placed through a work phone account.
-        boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_WORK_CALL);
+        boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL);
 
         if (mPrimary.isConferenceCall()) {
             Log.d(TAG, "Update primary display info for conference call.");
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index a616203..0662cca 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -16,7 +16,7 @@
 
 package com.android.incallui;
 
-import static com.android.contacts.common.compat.CallSdkCompat.Details.PROPERTY_WORK_CALL;
+import static com.android.contacts.common.compat.CallSdkCompat.Details.PROPERTY_ENTERPRISE_CALL;
 import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST;
 import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ANSWER_VIDEO_INCOMING_CALL;
 import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ANSWER_VOICE_INCOMING_CALL;
@@ -537,7 +537,7 @@
         }
 
         // Is the call placed through work connection service.
-        boolean isWorkCall = call.hasProperty(PROPERTY_WORK_CALL);
+        boolean isWorkCall = call.hasProperty(PROPERTY_ENTERPRISE_CALL);
         if(userType == ContactsUtils.USER_TYPE_WORK || isWorkCall) {
             resId = getWorkStringFromPersonalString(resId);
         }
