Showing badge icon in incall ui if it is a work call
am: 59978d307c

* commit '59978d307c8bf37d8ae7e333f0844aee5fedb329':
  Showing badge icon in incall ui if it is a work call
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 93d499e..efd4818 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -559,10 +559,12 @@
      * @param isSipCall {@code true} if this is a SIP call.
      * @param isContactPhotoShown {@code true} if the contact photo should be shown (it will be
      *      updated even if it is not shown).
+     * @param isWorkCall Whether the call is placed through a work phone account or caller is a work
+              contact.
      */
     @Override
     public void setPrimary(String number, String name, boolean nameIsNumber, String label,
-            Drawable photo, boolean isSipCall, boolean isContactPhotoShown, boolean isWorkContact) {
+            Drawable photo, boolean isSipCall, boolean isContactPhotoShown, boolean isWorkCall) {
         Log.d(this, "Setting primary call");
         // set the name field.
         setPrimaryName(name, nameIsNumber);
@@ -584,7 +586,7 @@
 
         setDrawableToImageViews(photo);
         showImageView(mPhotoLarge, isContactPhotoShown);
-        showImageView(mWorkProfileIcon, isWorkContact);
+        showImageView(mWorkProfileIcon, isWorkCall);
     }
 
     @Override
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index a52a36d..fed229d 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -56,6 +56,7 @@
 
 import java.lang.ref.WeakReference;
 
+import static com.android.contacts.common.compat.CallSdkCompat.Details.PROPERTY_WORK_CALL;
 /**
  * Presenter for the Call Card Fragment.
  * <p>
@@ -722,6 +723,9 @@
         boolean showContactPhoto = !VideoCallPresenter
                 .showIncomingVideo(mPrimary.getVideoState(), mPrimary.getState());
 
+        // Call placed through a work phone account.
+        boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_WORK_CALL);
+
         if (mPrimary.isConferenceCall()) {
             Log.d(TAG, "Update primary display info for conference call.");
 
@@ -733,7 +737,7 @@
                     getConferencePhoto(mPrimary),
                     false /* isSipCall */,
                     showContactPhoto,
-                    false /* isWorkContact */);
+                    hasWorkCallProperty);
         } else if (mPrimaryContactInfo != null) {
             Log.d(TAG, "Update primary display info for " + mPrimaryContactInfo);
 
@@ -765,6 +769,7 @@
             maybeShowHdAudioIcon();
 
             boolean nameIsNumber = name != null && name.equals(mPrimaryContactInfo.number);
+            // Call with caller that is a work contact.
             boolean isWorkContact = (mPrimaryContactInfo.userType == ContactsUtils.USER_TYPE_WORK);
             ui.setPrimary(
                     number,
@@ -774,7 +779,7 @@
                     mPrimaryContactInfo.photo,
                     mPrimaryContactInfo.isSipCall,
                     showContactPhoto,
-                    isWorkContact);
+                    hasWorkCallProperty || isWorkContact);
 
             updateContactInteractions();
         } else {
@@ -1095,8 +1100,7 @@
         void showContactContext(boolean show);
         void setCallCardVisible(boolean visible);
         void setPrimary(String number, String name, boolean nameIsNumber, String label,
-                Drawable photo, boolean isSipCall, boolean isContactPhotoShown,
-                boolean isWorkContact);
+                Drawable photo, boolean isSipCall, boolean isContactPhotoShown, boolean isWorkCall);
         void setSecondary(boolean show, String name, boolean nameIsNumber, String label,
                 String providerLabel, boolean isConference, boolean isVideoCall,
                 boolean isFullscreen);